|Office||5121 Wean Hall|
|Office Hours||TWR: 3pm - 4pm|
|TA||Joshua Hailpern||Jordan Clifford|
| Office Hours
| Tuesday 6-8 Weh 7th Floor
Wednesday 6-8 Weh 7th Floor
Thursday 6-8 Weh 7th Floor
Sunday 3--7 Weh 5419
|Lecture||MTWRF||Lec. 1||01:30pm - 02:50pm||PH 226B|
Mark A. Weiss, Data Structures and Problem Solving Using Java , Second Edition, Addison Wesley, 2001. ISBN # 0201748355.
Michael T. Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, Third Edition, John Wiley & Sons, 2003. ISBN # 0471469831.
Course Home Page: http://www.andrew.cmu.edu/course/15-211
Course Bboard: academic.cs.15-211
You may use any programming environments available to you such as CodeWarrior, Eclipse, Project Builder, TextPad, Emacs and others. We recommend you to look at a free open-source Java environment available from Eclipse . You need to install the Java 2 SDK first before installing Eclipse.
Participation in this course consists of the following activities
- Attending and participating in lectures and recitations
- Reading the lecture notes
- Reading the textbook
- Carrying out homework assignments
- Taking the quizzes, midterm, and final.
- Discussing appropriate aspects of course content with other students
- Staying up to date on announcements on the bboard
Attendance is strongly encouraged. You will be responsible for all materials presented in lectures. You should not expect that all lecture materials will be given to you in written form, nor should you expect that lectures will be drawn form the textbook.
Grades for the course will be determined by a curve. First, we will compute a weighted total of each student's scores on assignments and exams. These will be plotted as a histogram, and then approximate cutoff points for the different letter grades will be determined. Individual cases, especially those near the cutoff points may then be adjusted upward or downward based on factors such as extra credit and participation in recitation discussions (TA discretion). Very roughly, we expect to give about 25-30% A's, 30-40% B's, 20-25% C's, and about 10% ``other.'' This is not a requirement; we could (and indeed, we want to) give all A's if performance warrants it.
The homework assignments is critical part of the course. Experience has shown that concepts are best learned by direct engagement---in our case by applying them to example problems or by implementing them in computer programs. All homework assignments are to be handed in electronically. The deadline for each assignment typically will be on a Sunday night at 11:59pm. A homework may be turned in up to 24 hours late; these late assignments will be graded and then assessed a 25% penalty. After 24 hours past the deadline, no further homework assignments will be accepted.
Programming assignments will be graded based on style (modularity, effective use of data abstraction, readability, commenting, etc.) and functionality (orrectness and efficiency of the program on the test inputs.) A working program is not sufficient for full credit. Make sure you do a thorough data validation. Your code should be properly annotated with comments. Your assignmenets will be graded by TAs.
Check and post to the bboard with questions about assignments. The TA's will check the bboard and respond to questions. Please do not post code to the bboard. There may be announcements about assignments posted to the bboard, so checking it is highly recommended.
We do allow a collaboration on programming assignments, though it is limited to max 2 students per group. You may only work with each person in the class, as a partner, once. If you work as part of a group, you only submit one copy of the program with both names in it. In addition, please submit in the header of the main file a description of the work each partner has done. Please be specific. We expect that both partners in the group are actively involved in the coding and debugging of all parts in some way. Your TA may ask you to explain the code and how you debugged and tested it.
One possibility is that each person in the group becomes a lead programmer for at least one part. After you have debugged your part, your partner is responsible for testing your part. Having someone who did not write the code test the code is a standard quality assurance approach used in industry. Alternatively you can do pair programming (two people, one computer). Another approach is to divide up the programming into parts, and then do a "code review," where the one who did the programming explains the code to the other, line by line. Code reviews are common in industry, as is pair programming, which is an "extreme programming" practice.
For homework assignments, students are encouraged to talk to each other, to the course staff, or to anyone else about the assignments. This assistance, though, is limited to the discussion of the problem and perhaps sketching of general approaches to a solution. Each student must develop his or her own solutions to the homework. Consulting another student's solution is prohibited, and submitted solutions may not be copied from any source.
The issue of cheating will be taken seriously by the instructor and TAs, and homerwork asignments will be routinely checked for violations, which will be handled in accordance with the University regulations.
Last updated Monday, March 21, 2005
|Victor S. Adamchik,
Computer Science Department,
Carnegie Mellon University, Pittsburgh, PA.