DOC PREVIEW
UNC-Chapel Hill COMP 401 - COMP 401 General information

This preview shows page 1 out of 3 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

InstructorTimesLectures: Mondays and Wednesdays 11-12:15 FB 009.Required MaterialWhat you should hand in for programs: You must submit a paper printout of your program (with pledge signed) and screens showing executions of the program on test data and upload the programs if required. You will also do demos at certain stages of your project.Independent programming in lectures:Comp 401 General InformationThis course is intended for people who have learned to program. Its goal is to teach how toprogram well. The common programming strategy of beginners is to write the first solution theycan think of without carefully identifying and weighing different alternatives. For all but thesimplest problems, this approach of writing ‘’quick and dirty’’ programs will take you to thedebugging stage very quickly, but will make debugging slow. For large, complex programs, youneed to identify multiple alternative solutions to the problem, choose an alternative that mostdirectly solves the problem, and think carefully what your solution does, and how it works. Theclaim is that, although “quick and dirty’’ programming may produce a program faster, theconcepts we teach will help you produce a correct program faster. Moreover, they will lead toprograms that are easy to change and reuse.We assume you have learned the following basic programming concepts: primitive types(integers, real numbers, Booleans), variables, constants, assignments, comments, expressions,arrays, loops, arrays, and procedures/functions/methods. These concepts are taught in most ifnot all introductory programming courses regardless of whether they teach conventional orobject-oriented programming. This course will teach you the next-level programming concepts.These include objects, classes, interfaces, packages, inheritance, delegation, design patterns,exceptions, assertions, pointers, and formal correctness. These concepts will not help you solvenew problems; rather, they will help you solve problems in new ways. The skills that will enableyou to use these concepts will form a large part of the challenge you face in this course. Afterthis course, you will have a much deeper understanding of the programming and learn some ofthe ideas that can make programming a science. We will be using Java as a vehicle for learningthese concepts. InstructorPrasun Dewan (You can call me by my first name, which rhymes with bassoon)Office: FB150 Phone: 962-1823(office).Office Hours: MW 3:30-4:45pm, and by appointment. Electronic mail: [email protected]. TimesLectures: Mondays and Wednesdays 11-12:15 FB 009.Recitation: Friday, 11-12:15pm FB 009.Required MaterialClass notes and slides: I plan to provide notes and PPT slides on the material I cover accessible from www.cs.unc.edu/~dewan/comp114/f10. These should suffice for the course.Grading and Honor Code Final grades will be based on the following formula:22% Midterm Exam 122% Midterm Exam 210% Recitation Exercises46% Project (Programming and Written Assignments).Programming and Written Assignments: The material you learn makes little sense when you write small programs. Thus, in this class, you will exercise it in a large project you will build incrementally over the course of the semester. Each increment will be an assignment that builds on the software you have implemented as part of previous assignments. Because this is a programming course, unless all programs are submitted and work, you may not pass. Point values of assignments and programs will be in accordance with their length and difficulty.Fudge factor: The above percentages add up to 100%, but I reserve the right to apply a 10% fudge factorto give consideration to things such as good class participation, stellar programs, and early submission and extra credit. Exams: Examinations are closed book, notes and program listings; computers and collaboration are not allowed either.Attendance: Students are responsible for all material, including homework assignments, given in lecture or recitation classes.What you should hand in for programs: You must submit a paper printout of your program (with pledgesigned) and screens showing executions of the program on test data and upload the programs if required. You will also do demos at certain stages of your project.Late Homework Policy: Assignments are due at the beginning of class on each specified due date. Programs and homework assignments will be penalized 10% if one class session late and 25% if two class sessions late. No credit will be given for assignments submitted after the start of the second class period following the due date, although you are advised to submit work whenever it is finished. It’s always better to hand in a program, even if it is very late, than to hand in nothing, especially because later assignments will build on others. To help people who get irreversibly behind, we will allow you to apply the due date of a subsequent assignment to the current assignment without late penalty, with thecaveat that each time you do this, you sacrifice one more assignment. For example, if there are 6 assignments, and you realize that there is no way you can finish assignment 4 a week after it is due, you can apply the due date of assignment 5 to assignment 4, and the due date of assignment 6 to assignment 5. In this case, you will get no credit for assignment 6. You are welcome to finish assignment 6 and get it graded, but the grade you get will count as extra rather than normal credit. We expect each of you to finish each assignment in time – these rules are given because assignments build on each other. Independent programming in lectures:1. You are encouraged and expected to discuss the assignments among yourselves. (If you don't think it's neat stuff, you either don't understand it, or you don't belong here.2. You are permitted to discuss all aspects of the Java programming language with anyone.3. You are permitted to discuss solutions at the design level but not at the code level. For example, you are allowed to tell others that you have separate classes in your program for scanning and evaluating expressions, or that you are using a loop instead of recursion for scanning, but are not allowed to show them Java interfaces, classes, while loops or other Java code in your solution. A general rule of thumb is that if you are communicating using a natural language, you are discussing at the design level, but if


View Full Document

UNC-Chapel Hill COMP 401 - COMP 401 General information

Documents in this Course
Objects

Objects

36 pages

Recursion

Recursion

45 pages

Load more
Download COMP 401 General information
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view COMP 401 General information and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view COMP 401 General information 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?