DOC PREVIEW
UNC-Chapel Hill COMP 401 - COMP 401 Syllabus

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:

Comp 401 (the course formerly called 114): Foundations of Programming, Spring 2008General Information401-1.1Comp 401 (the course formerly called 114): Foundations of Programming, Spring 2008 General InformationThis 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 morequickly 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 strategywill 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 thrillof "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 othertopics: object oriented programming, data structures, abstract data structures, algorithms, design patterns, and mathematical analysis techniques, all of which are fundamental to programming in languagessuch as Java or C++. This is intended to be a hard course, and one that will introduce you to some of theideas 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. WeissOffice: 159 Sitterson HallPhone: 962-1888 (office) Please do not call me at home except in a dire emergency.Office Hours: TBAMailbox: 107 Sitterson Hall; electronic mail: [email protected] AssistantsCatalin Constantin ([email protected]), Sitterson 024, 843-7417Joshua Markwordt ([email protected]), Sitterson 024, 843-7437Lectures: Tuesdays and Thursdays, 11:00am-12:15pm in Bingham 103Recitations: Section 601: Fridays at 11 a.m. in SN 011Section 602: Fridays at 12:00 noon in SN 011401-1.2Official 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 freefor 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.eduYou will need an Onyen and password (see onyen.unc.edu).HandoutsAll 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, fordocumentation standards.Cooperation and Honor Code1. 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.3Grading: 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 #110% Midterm exam #220% Final Examat most 10% Written Assignments50% Program AssignmentsExaminations 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


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
Download COMP 401 Syllabus
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 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 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?