CS 112 Syllabus

Course Info:
Time: MWF - 11:35-1:20
Place: HRN 235
Professor: Chris Brooks
Office: Harney 541
Phone: 422-5221
email: cbrooks (at) cs.usfca.edu
Office Hours: Tues 4:30-5:30, Wed 1:30-2:30 or by appointment
Course Objectives:
Grade Breakdown
The class consists of the following graded components:

Grading
I'll give you a number of labs to work on in class throughout the course of the semester; these will typically be due at the end of the week and will be graded as 'done' or 'not done.'

You'll have two midterms and a final, approximately one every five weeks.

Class participation is essential; attendance is a required portion of the class. To get an 'A' in participation, you must not only come to class on time and prepared, but also participate in class discussion when appropriate.

You will also receive 5 programming assignments to be completed over the course of the semester. You'll have 2-3 weeks to do each of them. You wll be required to submit both electronic and paper versions of your code. Late programs that are submitted within 24 hours after the due date can earn 50% credit. Programs submitted more than 24 hours late will receive no credit.

Interactive grading will be used to evaluate your programs. Your interactive grading session will occur in class on the due date, or a grading session will be scheduled for a later time/date. At the session, the grader will download your submitted program and evaluate it. You may not submit or show the grader a new version of the program. Bring a hardcopy of your program with you to the grading session. This hardcopy must be exactly the same as the submitted program.
Attendance
Attendance is mandatory. That includes showing up on time at the start of class. If you need to miss a class for a valid reason, you need to talk with me IN ADVANCE. Lack of attendance will lead to a drop in your grade, or your being dropped from the class altogether.
Text
John Lewis and William Loftus, Java Software Solutions: Foundations of Program Design, Addison Wesley, 2004.
Kernighan and Ritchie, The C Programming Language, 2nd Edition, Prentice Hall,1988

Collaboration
In general, I expect students to behave responsibly and do their own work. I'm willing to assume this is the case until proven wrong. More specifically, it is OK to talk with each other about the general parameters or approach of the assignment. It is NOT OK to share source code, to do part of an assignment for another person, or to directly copy another person't work. If you are unsure as to whether something is considered fair game or not, please ask me and we can discuss it.

A few examples:

"On question 4, are we supposed to use an array or a linked list?" This is fine; it's a clarification of the assignment. Feel free to talk about this sort of thing with your classmates.

"I don't understand how linked lists work! Can you explain it to me?" Also fine; you're talking about the course material generally; I think students should help each other with this sort of thing - you're great resources for each other.

"Question 3 is really hard. How did you do it?" Now we're getting into a gray area. If you're talking in generalities here ("Well, you have to process the input and break it into tokens.") that's fine; you're not telling the other person exactly how to do the assignment, you're just discussing approaches. If you're talking specifics ("Here's the code for parsing an input stream.") then we're moving into unacceptable territory. The question to ask is: does the person I'm talking to still need to think for themselves in order to solve the problem, or have I just given them the entire answer? I strongly recommend erring on the conservative side here; if you're unsure whether you're sharing too much, tell the question-asker that they should talk to me. I'm always happy to help people with problems.

"Can I just look at/use/copy your code?" Definitely not acceptable. Keep in mind that both participants are cheating here; the person who is copying and the person who is allowing their friends to copy. Students that I feel are cheating in this manner (this is cheating) will not be treated nicely.

Also note that using code that you get off the web, from a friend, etc. and turning it in as your own is considered plagiarism, just as if you did it in a paper. This will result in (at least) a zero for that assignment.
Computing facilities
The computer science department has general purpose computing laboratories in Harney 530 and Harney 535. Harney 235 is also open for use at certain times, mostly in the late evening. Each student in CS 112 has an account on these systems, and they can be used for all of your programming in this class.