Mar 20: Answer Keys to the final exams are available on the
Exams page
Mar 14:
Sanjit Jhala: Tuesday, March 18, 2-4 PM, BE 105
Karl Brandt: Tuesday, March 18, 4-6 PM, Crown CATS lab
Mar 8: *** REMINDER! You must get at least 50% on the programming
assignment portion of this class to pass. Obviously, if you only do
two of the graded assignments, you will not satisfy this requirement.
If you have only turned in 2 graded assignments, make sure you turn in
homework 9. NO EXCEPTIONS ***
Feb 17: Tired of always having to find a place to meet your partner?
Volunteer for a pilot study on distributed pair
programming.
Java by Dissection. Pohl and McDowell, Addison-Wesley, 2000.
The textbook for this class is available from both the Baytree Bookstore and Slug Books Co-op. In this course we will be using the first six chapters. The first three chapters of the textbook are available online.
This is the first printing of this book, and sad to say, there are a few errors. A list of them can be found here.
A minimum of 50% on all three aspects of the grade is necessary but not sufficient to pass this class. This means, if you receive less than 50% on any one of the three parts (homework, quizzes, or final), you will not pass.
However, just because you score at least 50% on each part does not imply that you will necessarily pass. For example, someone who scored 51% on each of the three parts would almost certainly NOT pass.
Lab attendence is mandatory. Absence from lab will affect your programming assignment grade.
In this class, all students will work with a partner on their programming and lab assignments. You will work with the same partner for the entire quarter. You may be asking yourself "Why do I have to work with someone else?" Experience and research into using pair programming in introductory programming courses has shown that:
What is pair programming?
In pair programming, two people work together to develop a single computer program. One of the programmers is called the driver and sits at the keyboard. The other programmer is called the navigator and sits next to the driver where she can see the screen clearly. The programmers change roles regularly - a good rule of thumb is every 20 to 30 minutes.
The navigator is responsible for watching the driver. She notes mistakes that the driver is making (for example, forgetting to enter the ';' at the end of a line), as well as assists in designing the code, making suggestions for improvement, and asking questions if the driver seems to be getting off-course.
Pair Programming in this class
In this class, when you sit down to work on one of the programming assignments, you must be working with your partner at one computer. One of you will sit at the keyboard while the other observes. This does not mean that one of you is doing all the work
While you are pairing, you should be talking to each other about what you are doing. Both partners should be actively involved.
Remember to trade roles regularly.
The following are not pair programming:
Instances of the above will be considered as cheating in this class, and will be treated as such.
IMPORTANT: If you are having problems working with your partner, please contact the professor or one of the TAs immediately. For example, if your partner stops showing up to work together, let us know so that we can address the situation.
If you have any questions on this section, please see me. This is very important, and instances of academic dishonesty will not be tolerated.
The graded programming assignments are to be done by each student pair, working by themselves. You should treat these assignments like takehome exams. You may freely give and receive help with the computer facilities, editors, UNIX, debugging techniques, the meaning and proper use of Java constructs, etc.. You should not discuss the graded programming assignments with other students until after they are turned in. In particular you should not view another pair's program, or allow someone to view any part of your program, prior to turning it in. Obviously, copying any part of another pair's program, or allowing your program to be copied is not permitted.
A program will be in use to detect copying. This program is very good at finding programs that are copies of each other.
Ungraded practice assignments: In addition to the five graded programming assignments, there will be four, ungraded programming assignments. For these assignments you are free to consult freely with any of your classmates. You are encouraged to try and complete the assignments on your own. The experience gained in completing these assignments will help you with the graded assignments and the exams, which must be solely your own work.
All other work in this class must be done by students working alone.
Academic Dishonesty: Any confirmed academic dishonesty including but not limited to copying programs or cheating on exams, will constitute a failure of the computer ethics portion of this class and result in a no-pass or failing grade. You are encouraged to read the campus policies regarding academic integrity.
Facilities: This quarter you will using the Unix operating system for your programming assignments. You will use submit for turning in homework.
Homework: Turn in homework by using the submit procedures. It will not allow late work. Late work will not be accepted or graded. The program should be submitted in whatever form it is in - it is possible to receive some partial credit for a program that is not working. Homework is graded in terms of it being done in a good style, being correct, being concise, being readable, and being efficient. In addition to your program, you are required to submit logs indicating how much time you spent working on each assignment.
Quizzes: The first quiz will be on Monday, January 13th. The remaining quizzes will be on alternate Fridays, beginning with the second quiz on Friday, January 24th.
Audience: This course is for CS, CE and ISM majors and prospective majors. These are disciplines which emphasizes mathematics and problem solving. There are computer literacy and computer programming courses that are offered for the non-major. If you are shaky in your preparation you should consider taking CMPS010, which is highly recommended for all CS majors.
| Date | Topic | Reading |
|---|---|---|
| January 3, 6 | Introduction, Developing Software | Chapter 1, "Kindergarten" Paper |
| January 8, 10, 13 | Program Fundamentals | Chapter 2 |
| January 15, 17, 22, 24 | Statements and Control Flow | Chapter 3 |
| January 27, 29, 31, February 3, 5, 7, 10 |
Functional Abstraction | Chapter 4 |
| February 12, 14, 19 | Arrays | Chapter 5 |
| February 21 | Review | Chapters 2-5 |
| February 24, 26, 28, March 3, 5, 7, 10, 12, 14 |
Data Abstraction | Chapter 6 |
| Thursday, March 20, 8:00 AM | Final Exam | Chapters 1-6 |
Holidays: January 20 and February 17.
Many Thanks to Charlie McDowell for permitting the use of this material from previous instances of the course.