CMPS 12A: Introduction to Programming
Winter 2012

Prof. Scott A. Brandt

Computer Science Department
University of California, Santa Cruz


NEWS:

 

2/1/12 - Midterm 1 today.

Here is a link to the current version of Javadoc


 

1/25/12 - Interesting talk today: The Chief Information Officer of the New York Stock Exchange will be talking today at 1:00 in E2-180 about some of the real-time computing needs of the stock exchange. I encourage all of you to attend, if you are free at that time. It should be very interesting and highlights some of the impact of our work as Computer Scientists in the real world.


 

1/23/12 - As explained in class on Friday, we will use eCommons for all homework assignments and submissions. The assignments will be posted there and all submissions must be via eCommons.

All assignments starting with #1 will be graded and all must be turned in before the lab following the one in which the assignment is discussed. (The due date posted on eCommons is the latest possible, but your actual due date depends upon which lab you are registered for).


 

1/18/12 - To log into the Unversity UNIX systems from your own computer, you need an ssh program. To get putty, a good ssh program for the PC, click here. To use it, enter "unix.ucsc.edu" in the Host Name box, then click on the Open button. Then log in with your username and CruzId Blue password. Now you can start entering unix commands to run on the University's unix systems. Any files you create will be in your Unix home directory on the University systems.


1/12/12 - Click here for a $5 ebook version of the book!


1/12/12 - Click on the "Labs" link at the top of this page to get information about how to get started with the programming assignments. I also recommend that you read the FAQ and Info sections of the site.


1/12/12 - Click here for the HelloWorld program we wrote in class.


1/9/12 - Welcome to CMPS 12A. Look here for important news about the class.


Ongoing - I am in the process of updating these web pages. They currently contain information from a previous quarter. I'll let you know when everything is current. In the mean time, feel free to browse around, as relatively little will change.



Time: MWF 2:00-3:10
Location: Kresge 321
Instructor: Prof. Scott A. Brandt (sbrandt@cs.ucsc.edu)
Office/Office Hours: E2-347B, Mondays 3:30-5:00 and Wednesdays 10:30-12:00
TAs: Sali Serdar (sali@soe.ucsc.edu) and Dimitris Skourtis (skourtis@soe.ucsc.edu)
TA Office/Office Hours: Sali: Tuesdays 12-2 in E2-392, Dimitris: Thursdays 2-4 in E2-375
Lab Hours: BE 105: M 4-6, T 2-4, W 4-6, Th 12-2, Fr 10-12
Prerequisites: Eligibility to enroll in Mathematics 19A (Mathematics 2B or 3 or 40 or higher on mathematics placement exam) or Mathematics 19A or 11A or Economics 11A or Applied Mathematics and Statistics 11A.Concurrent enrollment in course 12L required.
Required Text: Java by Dissection, 2nd Edition, by Pohl and McDowell
Optional Text: Any other Java book
Course Web Page: http://www.cs.ucsc.edu/~sbrandt/12A
Class Newsgroup: ucsc.class.cmp12a

Course Notes

This page contains the lecture notes for the course. I will put them up as soon as possible, but I may not always be able to do so before the corresponding class period.

General Lab Information

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. If you don't yet have a CATS account, click here to register.

TAs and Tutors

This section contains information about the lab times and when the TAs 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 (Frequently Asked Questions): See if your question is here!

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

Required Text:

Java by Dissection, 2nd edition
Pohl and McDowell
Lulu Marketplace

Optional Supplemental Text:

Thinking in Java, 3rd edition
Eckel

 

12A Evaluation:

  • Weekly homework assignments (10%)
  • 2 Midterms (40%).
  • Cumulative Final (50%).
A minimum of 50% on all three 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, final), you will not pass, however, just because you score at least 50% on each part does not imply that you will pass. For example, someone that scored 51% on each of the three parts would almost certainly, NOT pass. The policy is intended primarily to prevent students from "blowing off" the homework because it only counts 20% of the grade. You cannot pass this class if you do not do the homework, and you are unlikely to do well on the exams if you don't do well on the homeworks.

Ungraded practice assignments: In addition to the four graded programming assignments, there will be four, ungraded programming assignments. For these assignments you are free to consult freely with any of your classmates. The experience gained in completing these assignments will help you with the graded assignments and the exams, which must be solely your own work.

12L evaluation:

  • Attendance (25%)
  • Assignments (75%)

You must pass 12A to pass 12L and vice versa.

Academic Honesty

All course work, excluding pair programming assignments, are intended as individual effort and are graded as such. It's okay to discuss general approaches and algorithms with other students, but this must be done without sharing code. Do not look at or copy other people's programs or allow them to look at or read yours. An automatic program may be used to detect copying. Cheating or plagiarism in any form will not be tolerated. Punishment may include an automatic FAIL with an explicit discussion in the permanent narrative evaluation records. You are responsible for protecting your homework solutions and programs from being copied by others. Do not discard printouts in public places. And don't forget to logout. Look at the campus policies regarding academic integrity for more details.

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 may 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. You will use submit for turning in homework.

Homework: Turn in homework by using the submit procedures. It will not allow late work. 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. Homework is graded in terms of it being done in a good style, being correct, being concise, being readable, and being efficient.

THERE WILL BE NO MAKE-UP EXAMS OR PROGRAMS.
THERE WILL BE NO INCOMPLETES GIVEN IN THE CLASS.

Audience: This course is for CS, CE and ISM majors and prospective majors. These are disciplines which emphasizes 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
Week 1 Class Overview, Introduction Chapter 1
Week 2 Program Fundamentals Chapter 2
Week 3 Statements and Control Flow Sections 3.1-3.4
Week 4 Statements and Control Flow (cont) Chapter 3.5-3.10
Week 5 Functional Abstraction Chapter 4
Week 6 Functional Abstraction Chapter 4 (read it again)
Week 7 Arrays Chapter 5
Week 8 Arrays (cont), Data Abstraction Chapter 5, Sections 6.1-6.8
Week 9 Data Abstraction (cont) Chapter 6
Week 10 Data Abstraction Chapter 6

Telephone: (831) 459-5042 / FAX: (831) 459-4829 / sbrandt@cs.ucsc.edu