This site is for both 12A and 12L. If you are enrolled in just one or the other but not both, please see me (Charlie McDowell).

Instructor Information

Charlie McDowell
Office: Engineering 2, 347B
Office Hours: Tues 10:30-11:30am, Wed 1-2pm

TA Information

1. Dhawal Joharapurkar


Office Hours: Wednesdays 11am - 1pm at Graduate Student Commons Room 208 (across from the Baytree Bookstore, the entry door is right next to Cafe Iveta) + by email appointment.

2. Rongwen Zhao


Office Hours:

Mondays: Baskin Engineering, Room 312C/D
4:00 pm - 5:30 pm
Tuesdays: Baskin Engineering, Room 119
4:00 pm - 5:30 pm

3. Fahim Hasan Khan


Office Hours:

Wednesdays: Baskin Engineering, Room 119

9.30 am - 11 am


Fridays: Baskin Engineering, Room 118

9.30 am - 11 am


Online Support Systems

The Canvas course managment system is where you can find your grades.

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email

Find our piazza class page at:

Web casts of the class lecture (audio + screen capture) will be available using the Web Casts link in the main menu.

Lab Information

The lab times and locations are listed below. The names you see are the first names of your TA/tutors. You may send private questions to the TA/tutors by making private posts in piazza and select "instructors" as the recipient. The first name listed is the head TA for that section and the person you should contact with administrative questions.

Soc Sci I Windows Lab (Room 135)
01A: Mondays, 12:50-2:20pm Dhawal, Fahim, and Priya
01B: Mondays, 5:30-7:00pm Dhawal, Nelson, and Kayla
01C: Tuesdays, 9:00am-10:30am Charlie and Kayla
01D: Wednesdays, 6:00-7:30pm Rongwen, Priya, and Nelson
01E: Thursdays, 7:00-8:30pm Fahim, Priya, and Kayla

You are guaranteed a seat on your assigned lab day, but are welcome to attend additional lab sections on a first come, first serve basis. Although attendance will not be taken, you are strongly encouraged to attend lab regularly. This is your best time to get help with lab excercises, programming assignments, a good time to meet your partner for the programming assignments, and to get any other help you need with the course material.


Interactive Textbook by ZyBooks ($40 subscription 12/23/18-4/4/19)
1. Sign in or create an account at
2. Enter zyBook code: UCSCCMPS12AMcDowellWinter2019
3. Subscribe
Supplementary Texts (as needed to help you with the lab assignments):
Your Unix (2nd edition) Sumitabha Das. McGraw-Hill 2006 (ISBN 978007250422).
Java By Dissection Ira Pohl and Charlie McDowell. 2006.


For this offering your grade for both 12A and 12L will be the same and based on the following (note: if you previously passed one or the other and are thus enrolled in only one of the two this term, see the instructor and special arrangements will be made for you):

  • Zybooks challenge/participation/labs (10%)
  • 12L Lab assignments (10%)
  • Programming assignments (10%).
  • Bi-Weekly quizzes (best four out of five) (30%).
  • Final (40%).

or (whichever gives you the highest score)

  • Zybooks challenge/participation/labs (10%)
  • 12L Lab assignments (10%)
  • Programming assignments (10%).
  • Bi-Weekly quizzes (best four out of five) (40%).
  • Final (30%).

Working Together:

You are strongly encouraged to complete the programming projects in two person teams following the pair programming guidelines. You are free to pick your own partner, or if you don't have anyone in mind, ask your TA to find you a partner from your lab section. If you do work with a partner, and I hope you will, be sure and include your partner's name and email address in the opening block comment of any programs you submit. Failing to do so could result in a charge of academic misconduct for improper sharing of code.

You may freely give and receive help with the computer facilities, editors, debugging techniques, the meaning and proper use of programming language constructs, built-in functions, 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 the due date for that assignment. 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.

If you should happen to use some actual code you got from someone other than your partner (such as the TA or some tutor or a previous partner or your room mate or on online resource) you MUST credit that person with a comment preceding the code in question (see "Giving Credit Where Credit is Due"). This could also come up if you were discussing a program with another student from the class and ended up writing some code on scrap paper or a white board. The safe and proper thing to do in this situation would be to insert a comment in your program where that code snippet is used. At worst you might lose a few percentage points if it was a really key part of the assignment. Failure to draw attention to the code snippet with a comment could result in a charge of academic dishonesty. Give credit where credit is due.

It is highly recommended that you read

All I Really Need to Know about Pair Programming I Learned In Kindergarten

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.

Programming Assignments:

Everyone should submit their own programming log by pasting the log into the text area provided in Canvas for the assignment. The log should be created by copying and modifying as appropriate, one of the template logs from log templates.

The programs you submit this quarter should be original programs created just for this class. It is NOT acceptable to submit programs that you (or someone else) has written previously. As indicated above, if you incorporate any portions of programs written by someone else, or by you for a prior course or assignment, then that should be clearly noted in the program via comments. (See "Giving Credit Where Credit is Due".)


There will be a quiz approximately every other week. See the class Syllabus for details.

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At that time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089, or by email at