Unformatted text preview:

401 1 1 Comp 401 the course formerly called 114 Foundations of Programming Spring 2008 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 a program and test it If tests show that a program doesn t work then it is modified and re tested repeatedly until the program apparently passes all the tests Even for simple programs and problems this strategy has an obvious flaw because there is generally no sound basis for deciding that a program has been sufficiently well tested Another less obvious flaw is that for more complicated programs and problems it may be difficult to determine whether the program has produced the correct answer for a test case because the computation is too long and tedious and the programmer is unwilling or unable to carry it out independently This course is based on the belief that one can write better programs and produce a correct program more quickly by thinking carefully about what the program does and how it works This requires that the programmer state the purpose of each program far more carefully than is easy or common and make similar careful assertions about how the program works The claim is that although your current strategy will produce a program faster the strategy we advocate will produce a correct program faster The skills that will enable you to use this strategy form a large part of the challenge you face in this course I hope you will accept the challenge and replace the thrill of It finally works for all my test cases with the thrill of Now I understand how the problem should be solved and my program implements that solution This deep understanding of the programming process will accompany and be applied to a number of other topics object oriented programming data structures abstract data structures algorithms design patterns and mathematical analysis techniques all of which are fundamental to programming in languages such as Java or C This is intended to be a hard course and one that will introduce you to some of the ideas that can make programming a science We will be using Java for our programs Although it is assumed that you already know how to program prior knowledge of Java is not essential Instructor Stephen F Weiss Office 159 Sitterson Hall Phone 962 1888 office Please do not call me at home except in a dire emergency Office Hours TBA Mailbox 107 Sitterson Hall electronic mail weiss cs unc edu Teaching Assistants Catalin Constantin catalinc cs unc edu Sitterson 024 843 7417 Joshua Markwordt jdmarkwo cs unc edu Sitterson 024 843 7437 Lectures Tuesdays and Thursdays 11 00am 12 15pm in Bingham 103 Recitations Section 601 Fridays at 11 a m in SN 011 Section 602 Fridays at 12 00 noon in SN 011 401 1 2 Official prerequisite We assume that you already know how to program in some language If you don t know Java you ll have a little catching up to do The first chapter of the Stanat and Weiss manuscript is a good review If you have difficulty with this review please see me Required materials Stanat Weiss manuscript available on the web Software Eclipse This is installed on all UNC public machines and is available free for your own PC See the course web page for instructions on downloading Eclipse to your computer A Java reference text for example the COMP 110 text Course web page Most course material will be posted on the web at www cs unc edu weiss COMP401 We will also use the University Blackboard system for announcements and for submitting programs and assignments blackboard unc edu You will need an Onyen and password see onyen unc edu Handouts All of the handouts will be available on the web not all will be passed out in class Check the list on the web page periodically to see what s new You should take a look at handout 401 05 Style Guidelines for documentation standards Cooperation and Honor Code 1 You are encouraged and expected to discuss the material presented in class and all 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 Keys for nearly all homework and programs will be posted about a week after the due date You are not permitted to use the homework or program keys from previous semesters nor to share the ones received in this course with 401 students in future semesters 4 You are encouraged and permitted to discuss and cooperate on all written assignments but you are expected to understand all material that you submit Examinations will consist primarily of material similar to that of the written assignments 5 You are encouraged to discuss all programming assignments but not your solution to the later assignments Specifically a To make learning Java easier you are free to seek help from any source for the first two programming assignments number 0 and 1 The programs you hand in must be your own work but they can be based on unlimited help in all aspects from any sources whatsoever b The rest of the programs are to be done independently by each student For details on how the Honor Code applies to these programs consult the handout Honor Code Observation in Computer Science Courses 401 1 3 Grading Because this is a programming course program assignments are required unless all programs are submitted and work you may not pass Given that all programs are submitted and work final grades will be based on the following formula 10 Midterm exam 1 10 Midterm exam 2 20 Final Exam at most 10 Written Assignments 50 Program Assignments Examinations are closed book notes and program listings computers cell phones and collaboration are not allowed either 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 improving program scores over the semester and bona fide extenuating circumstances Point values of assignments and programs will be in accordance with their length and difficulty Students are responsible for all material including homework assignments given in lecture or recitation classes What you should hand in for programs Each program assignment will have a designated due date and time Here s how you will turn in a program This procedure will change over the course of the semester as documentation standards evolve a Turn your program the


View Full Document

UNC-Chapel Hill COMP 401 - COMP 401 Syllabus

Documents in this Course
Objects

Objects

36 pages

Recursion

Recursion

45 pages

Load more
Loading Unlocking...
Login

Join to view COMP 401 Syllabus 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 Syllabus 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?