CS 15-111 – Intermediate/Advanced Programming
1:30-2:30 & 2:30-3:30
Fall 2001
Faculty:  Ananda Gunawardena, Ph.D.
  Computer Science Department, Carnegie-Mellon University
Course Assistants: Catalog Description

An introduction to the process of program design and analysis using the Java programming language for students with some prior programming experience in any other language. Topics to be covered include an overview of fundamental programming concepts using Java as well as object-based programming techniques, data aggregates, self-referential data structures (e.g., linked lists, stacks, queues, trees, and graphs), and an introduction to the analysis of algorithms that operate on those data structures. Prerequisite: prior experience in any programming language.

Course Material

Assignments and Due Dates

Note that labs are generally assigned on Wednesday and are due the following wednesday midnight. All electronic handins are due by midnight and must be handed in via the Dropoff Assignments utility.

See University Calendar

Grading

Your grade in the course will be determined by a combination of your Coursework grade and your grade on the Mastery exam (the course final).

Coursework Grade Coursework Grading Scale:
Course Work Grade
Final Course Work Percentage
A
90-100
B
80-89
C
70-79
D
60-69

Exams (50%)
3 Exams - 10% each - total 30%
Final Assessment - 20%

Programming Assignments (50%)

There will be 8 programming assignments in this course. Labs must be completed within a week and are generally due midnight Wednesday.

 
Keeping Current

Your success in this course will mainly depend on your ability to keep current with material and projects. All programming courses are very time consuming. In addition to attending classes, you must be prepared to spend at least another 3 to 5 hours/week on reading and programming assignments. One of the common mistakes students make in this class is waiting till the last minute to start a programming assignment. Although projects in many other courses can be handled that way, programming projects are different. You are almost certain to run into 3 types of problems: logistical, algorithmic, and coding. Logistical problems frequently occur with computers you use - they're often unavailable. Therefore waiting till last minute may be hazardous to your health. Secondly, most program algorithms are not trivial. They need back and forth discussions with your instructor, course assistants and your colleagues. Even if there are no logistical or algorithmic problems, there is no guarantee that your program will work. Students frequently run into syntax problems in a program. Programs don’t always necessarily give the correct output. Making a program almost "perfect" requires many hours of testing. Therefore START AND FINISH YOUR PROGRAMS EARLY.

Student Responsibilities

Certain constraints on behavior must be followed in any community of individuals who share space and limited resources (with our apologies to the vast majority of responsible students). Please be aware of the following standards of behavior. Violations will not be tolerated. Appropriate disciplinary actions include loss of computing privileges, course failure, and ineligibility for subsequent courses offered by the Computer Science Department,dismissal from the University and/or criminal prosecution. At minimum, any student who violates these rules can expect to find his/her access to facilities revoked.

Prohibited behavior includes but is not limited to

WeH 5419 Clusters

Please refrain from behavior that is unduly loud and boisterous when using the facilities in Wean 5419. This room isn't a library and we want you to feel comfortable when you're there, but please respect the rights of your fellow students who are trying to work. The tutors are in Wean 5419 to help you. Please don't make undue demands on them. There is a difference between asking questions versus expecting a tutor to replicate a lecture or write your program for you. Since you are required to work with computers in this course, you must remember that computers frequently break . Also remember that the cluster is shared with the students from other courses, so it is clearly to your advantage to complete labs and program assignments in advance of their due date. We will do everything reasonable to ensure a high level of support, but remember that occasions arise when the computers are simply not available, so we solicit your patience. If you notice a machine that is inoperable, please inform the staff.

Cheating Policy

All assignments must completed individually. However you may discuss assignments with your colleagues if necessary. But you MUST write your own programs. In-class on-line exams and the Mastery exam prohibit the use of any notes or other material. Please read the Intro cheating policy.