CMPS 012a: Introduction to Programming - Fall 2007


[Homepage] | [Lab Info] | [FAQ's] | [Supplements] [Programming Projects] | [Exams]

Instructor Information

Charlie McDowell
Office: E2 349B
Hours: Tuesday/Thursday 11-12
E-mail: charlie@cs.ucsc.edu
Dean Bailey
Office: E2 249B
Hours: Monday/Wednesday/Friday 12-1
E-mail: dbailey@soe.ucsc.edu
Course Notes

Teaching Assistant

Suchit Agarwal
E-mail: agarwal@soe.ucsc.edu
Office hours: TuTh 10-11, BE314B

Class and Lab Location

ROOM CHANGED to E2-180 (the Simularium), effective immediately.
Lab meets in either BE105 or BE109. If there is room the 2-3:30 sections will be combined into one section in BE105.

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

Class notes on Ubiquitous Presenter

I plan to use Ubiquitous Presenter (UP) for posting live class notes and student participation during and after class. Please go to up.ucsd.edu and enroll in cmps012aF07. (Please note that is ucsD not ucsC.) The password will be given out during class.

Class notes for printing

The class notes will be made available in pdf for printing to bring to class. These are NOT intended as a substitute for coming to class but instead serve as a note taking aid during class.

Audio and screen shots from class

I also hope to be posting "movies" with audio of the primary computer display from class. These will appear in class recordings. It appears these work best from windows machines but may be of some use under Mac OSX.

Lab Information

Lab attendance is required. You will be completing specific lab exercises on most days. See Lab Information for more details.

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 a few questions about this class that students frequently ask.

Required Text:

Java by Dissection 2nd Edition. Pohl and McDowell (http://www.lulu.com/JavaByDissection)
On to C. McDowell. A pdf version of "On to C" can be found in the WebCT materials for this class, under "Course Content/Lab Materials". (I also recently saw a number of copies available very inexpensively at abebooks.com. I don't know anything about this reseller and this is not an endorsement. Shop at your own risk.)

Evaluation:

Whichever gives you the highest score.

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 four parts (programming assignments, quizzes, review questions, 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 following the pair programming guidelines. You will be assigned a partner from you same lab section sometime prior to your second lab meeting which is on October 3rd. You will be expected to work with this partner both on the lab assignments (which will be part of your 12L grade) and on the programming projects (which will be part of your 12A grade). Your partner must be enrolled in the same lab section. New lab partner assignments will be posted the Friday following each programming project due date. The normal policy is for all students to be assigned new partners after each project, however, if you feel strongly that you want to continue with your current partner, you may petition the instructor as described in the pair programming guidelines. 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 successfully completing that assignment (see below). 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.

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. Programs will be submitted through WebCT.

Programming assignments, grading policy, 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 October, 8th.
Audience: This course is designed for SoE majors, and prospective majors. These are disciplines which emphasize mathematics and problem solving. There are computer literacy and computer programming courses that are designed for other majors (e.g. CMPS60G and CMPS60N). If you are shaky in your preparation you should consider taking CMPS010, which is highly recommended for all CS majors.

Syllabus

Date Topic Reading
September 28 Developing Software Chapter 1
October 1, 3, 5 Program Fundamentals Sections 2.1-2.10,2.14
October 8, 10, 12 Conditionals and Loops Sections 3.1-3.10
October 15, 17, 19 Methods Sectiosn 4.1, 4.2, 4.3
October 22, 24, 26 Methods and Classes Sections 6.5, 6.6, 6.7, 6.8
October 29, 31, November 2 ArrayList, and Methods and Classes continued Sections 5.13, 4.4, 4.5, 4.8, 6.13, 6.14
November 5, 7, 9 Methods and Classes continued All of Chapter 4, Sections 6.9, 6.10
November 12(holiday), 14, 16 One Dimensional Arrays Sections 5.1-5.6, 5.12
November 19, 21 Enum, Review Classes and Methods Sections 6.1, 6.2, 6.3, 6.4, 6.12, 6.13, 6.14
November 26, 28, 30 2-D Arrays Section 5.10, 5.11
December 3, 5, 7 TBD TBD
December 10 Final Exam 4-7pm Chapters 1-6

[Homepage] | [Lab Info] | [FAQ's] | [Supplements] [Programming Projects] | [Exams]

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