Carnegie
Mellon
Management
90-875 Computer
Programming Methods I
Class Hours: Wednesday, 5:30 – 8:30 PM
Class Location: Rm. HBH 1001, Hamburg Hall
Course Instructor: Michael J. McCarthy
Office: A002 Hamburg Hall
Office Hours: T. R. 1:30 – 3:30 or by appointment
Phone: 268-4657 (office), 344-5137 (home)
E-mail: mm6@andrew.cmu.edu
Teaching Assistants:
Anand Kadekuzhi WX Ding (Amy)
Office hours: TBA TBA
anandk@andrew.cmu.edu wding@andrew.cmu.edu
This course is designed to introduce the student to computers, computer programming, and rudimentary data structures using the Java language. In particular, we will be using Sun Microsystem’s Java compiler JDK1.2.1 (this program is also called Java 2 SDK, Standard EditionVersion 1.2.1). The Java compiler and documentation are available for free from Sun and can be downloaded for home use from www.javasoft.com. The compiler is available for use in the lab at the Heinz School.
This course assumes only limited prior experience with computers (word processing, etc.).
Most of the course will be spent learning the fundamentals of problem solving as it relates to computer programming and the Java programming language. By the end of the mini you should be able to write and implement simple programs in the Java language. You will also be exposed to a number of fundamental computer concepts that transcend programming and the Java programming language.
Keep in mind that this is only an introductory course. More advanced topics will be covered in 90-876 Computer Programming Methods II. I will assume that the student is new to programming.
The course is organized around two types of class activities:
Lectures, where the specific topics will be presented and discussed with the students. The theory, issues, and practices related to each topic will be reviewed in class.
Programming Labs and Projects. The emphasis here will be on actual programming using the Java language. In 90-876 Programming Methods II, at least one of the labs will involve building a home page (some HTML and some Unix will be covered) and placing a Java Applet on that home page. All students are required to have an active Andrew account.
Required Textbook: Java Gently (2nd edition), by Judy Bishop
The student is responsible for any missed material.
There will be two programming projects and two lab exercises. Each of the assignments will have a suggested due date (see schedule below). If you turn an assignment in after the suggested due date, it will be accepted and graded but with a one-time penalty of 5%. Thus, there is some flexibility for late work. However, it is not a good idea to lose 5% on each assignment. In general, it is to your advantage to turn work in on or before the due date. No programs or labs will be accepted after the night of the final exam (October 13).
Collaboration is permitted when working on labs.
Collaboration is not permitted on projects.
Grades will be computed as follows: `
Programming Project 1 (20%)
Programming Project 2 (30%)
Labs (2) (10% each)
Final Examination (20%)
Quizzes (2) 5% each
97.5 - 100 A+
92.5 - 97.4 A
90.0 - 92.4 A-
87.5 – 89.9 B+
82.5 – 87.4 B
80.0 - 82.4 B-
:
:
Each programming problem will contain a specific point distribution. In general, the programming assignments will be graded based on the following criteria:
1.Validity of the algorithm and its implementation
2.Programming Style
3.Documentation and presentation
The final examination will be held during Heinz finals week. The examination will be a closed book exam and will be comprehensive. There will be programming problems on the final exam. The approximate time for the examination will be 2 hours.
This is a tentative outline. I plan on making updates to the topic list as the course proceeds. The topic list will be found on the course web site. The course web site location will be announced soon.
Date |
Readings/Topics/Quizzes |
In |
Out |
Aug. 25 |
2.3 Beginning with output 2.4 All About Assignment |
|
Prior to next class, visit the two web sites http://www.cs.up.ac.za/javagently and http://java.sun.com/docs/books/tutorial/ |
Sept. 1 |
3.1 Properties of a good program 3.2 Talking about types 3.3 Repetition with for loops |
|
Lab 0 Assigned |
Sept. 8 |
Quiz 1 at end of class 3.4 Making Methods 3.5 Passing parameters |
|
Project 1 Assigned |
Sept. 15 |
3.6 Guidelines for designing classes 3.7 Case Study I 2.2 Fundamentals of Object-Oriented Programming |
Lab 0 Due |
Lab 1 Assigned |
Sept. 22 |
5.1 Conditional loops with while and do 5.2 the switch statement 7.1 Strings and string handling |
Project 1 Due |
Project 2 Assigned |
Sept. 29 |
Quiz 2 at end of class 6.1 Simple Arrays 6.2 Tables 6.3 Sorting and Searching |
Lab 1 Due |
|
Oct. 6 |
Review for final exam |
Project 2 Due |
|
Oct. 13 |
Final Exam |
|
|