CMPS 012a: Introduction to Programming - Spring 2004


[Homepage] | [Lab Info] | [TA's & Tutors] | [FAQ's] | [Supplements] [Programming Projects] | [Sample Program Solutions] | [Exams]

Instructor Information

Office: BE 239
Hours: Monday/Thursday 12:30-1:30pm, Tuesday 12-1pm (Tuesday June 1st my office hour will be 2-3)
E-mail: charlie@cs.ucsc.edu
Course Notes

Here is a link to WebCT for the online discussions, daily review questions, program submission, and programming logs.

MSI (Modified Supplemental Instruction)

Here is the info about the MSI tutoring sessions. Tutor: Philip Rose

Tuesday 4 - 5:15pm
Wednesday 5 - 6:15pm
Location: the Baskin Whiteboards (first floor near the internal stairway)

Distributed Pair Programming Experiment

Here is a link to the support page for the Distributed Pair Programming Experiment that many of you have volunteered to participate in.

Lab Information

For the first time this quarter, this class is accompanied by a mandatory 2 unit lab. Lab attendance is required. You will be completing specific lab exercises on most days. See Lab Information for more details. This section contains general information about things you will need to know how to do in order to do well in this class (and future classes as well). It includes information on using Unix, creating a program, and submitting homework assignments.
If you need additional background information, you should definitely check out the resources CATS (Communications and Technology Services) provides. They are located downstairs in the Communications building.

TA's and Tutors

This section contains information about the lab times and when the TA's and tutors are available.

Lecture Supplements

This section contains additional information from the instructor to supplement the lectures. Materials will be added here as they become necessary.

FAQ's (Frequently Asked Questions): See if your question is here!

This section contains questions pertaining to programming which students frequently ask.

Required Text:

Java by Dissection. Pohl and McDowell Addison-Wesley, 2000.
On to C. McDowell - this comes packaged with Java by Dissection. If you have a used copy of Java by Dissection but no "On to C", a pdf version of "On to C" can be found in the WebCT materials for this class, under "Course Content/Lab Materials".

Evaluation:

A minimum of 50% on all four 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 (hw, quizzes, pop-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 that scored 51% on each of the four parts would almost certainly, NOT pass. The policy is intended primariliy to prevent students from "blowing off" the homework or programming assignments because they only count 10% and 20% of the grade respectively. You cannot pass this class if you do not do the homework and programmming assignments.

Working Together: The programming assignments are to be done in two person teams. You are free to choose your own partner, but you and your partner must be enrolled in the same lab section. 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 your design or implementation of the programming assignments with students other than your partner until after they are turned in. In particular you should not view another person/pair's program, or allow someone (other than your partner) to view any part of your program, prior to turning it in. Obviously, copying any part of another person/pair's program, or allowing your program to be copied is not permitted. A program, Moss, will be in use to detect copying. If you have any questions on this important point, please see me.

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. Programs will be submitted through WebCT.
Programming Projects: BOTH partners in a pair should submit the program. This is required for two reasons. First, it avoids the "I thought my partner was going to submit it" problem. Second, it facilitates the online grading by letting WebCT know that each student has actually submitted a solution. 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. WebCT will allow you to make repeated submissions. You are strongly encouraged to submit something well in advance (many hours or better a day) of the actual deadline. Programming projects are graded in terms of it being done in a good style, being correct, being concise, being readable, and being efficient.

Programming assignments and due dates can be found on the class web page homework section.

Quizzes: There will be a quiz every other Monday with the first quiz on April, 5th.
Audience: This course is for CS, CE and ISM majors and prospective majors. These are disciplines which emphasize 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.

Syllabus

Date Topic Reading
March 29 Developing Software Chapter 1
March 31, April 2 Program Fundamentals Chapter 2
April 5-9 Conditionals and Loops Sections 3.1-3.5
April 12 Loops and Conditionals (cont) Chapter 3.6-3.10
April 14-16 Functional Abstraction Chapter 4.1-4.4
April 19-23 Functional Abstraction (cont) Chapter 4.5-4.13
April 26-30 Functional Abstraction (cont) Chapter 4 (read it again)
May 3-7 One Dimensional Arrays Chapter 5.1-5.6
May 10-14 Two Dimensional Arrays Chapter 5.8-5.12
May 17-21 Data Abstraction Sections 6.1-6.5
May 24-26 Data Abstraction (cont) Chapter 6.6-6.8
May 28-June 4 OOP Chapter 6.9-6.15
June 8 Final Exam 4-7pm Chapters 1-6

[Homepage] | [Lab Info] | [TA's & Tutors] | [FAQ's] | [Supplements] [Programming Projects] | [Sample Program Solutions] | [Exams]

This page maintained by Charlie McDowell. Email regarding this site.