Unformatted text preview:

Comp 401 General Information This course is intended for people who have learned to program Its goal is to teach how to program well The common programming strategy of beginners is to write the first solution they can think of without carefully identifying and weighing different alternatives For all but the simplest problems this approach of writing quick and dirty programs will take you to the debugging stage very quickly but will make debugging slow For large complex programs you need to identify multiple alternative solutions to the problem choose an alternative that most directly solves the problem and think carefully what your solution does and how it works The claim is that although quick and dirty programming may produce a program faster the concepts we teach will help you produce a correct program faster Moreover they will lead to programs 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 if not all introductory programming courses regardless of whether they teach conventional or object 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 solve new problems rather they will help you solve problems in new ways The skills that will enable you to use these concepts will form a large part of the challenge you face in this course After this course you will have a much deeper understanding of the programming and learn some of the ideas that can make programming a science We will be using Java as a vehicle for learning these concepts Instructor Prasun 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 dewan cs unc edu Times Lectures Mondays and Wednesdays 11 12 15 FB 009 Recitation Friday 11 12 15pm FB 009 Required Material Class 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 1 22 Midterm Exam 2 10 Recitation Exercises 46 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 factor to 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 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 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 the caveat 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 you are communicating using pseudo or actual code you are discussing at the code level For details on how the Honor Code applies to programs consult the handout Honor Code Observation in Computer Science Courses Pair programming in recitations There is considerable evidence to show that students who program together learn faster infecting each other with their knowledge Therefore we will try the following In each recitation you will do small exercises with a partner Moreover you will switch partners to ensure the knowledge infection proceeds rapidly in each recitation you


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
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 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?