INSTRUCTOR.
  • Aaron Brick, abrick@ccsf.edu
  • M.I.M.S., Berkeley, 2005; B.S., Johns Hopkins, 2000
  • Batmale Hall 462, office hours Monday, 10 – 12
POLICIES.

Assignments.Assignments are listed in the course calendar and syllabus and are always due Sunday night at midnight. Programs must operate correctly on the student server hills. Late assignments are not accepted. Source code or response text for each assignment must be submitted using the ~abrick/send program. Your grade will not suffer due to incapacitation or a system bug. See also Peer Review.

Canvas.The college provides a Learning Management System called Canvas for for online courses. We rely upon it for our discussion, announcements, and exams. All assignments and peer review take place on the student server. Canvas incorporates the syllabus, calendar, and grade data published on my web site (disregard Canvas's own gradebook).

Caveats.All dates, scores, and texts published on this site are provisional. Please inquire if you think there may be an error.

Contact.I am always available to students by email and at my office hours. I generally respond to messages within three working days. You can make contact with me on LinkedIn when you pass one of my courses.

Enrollment.During the first two weeks of the semester, I offer add codes at my office to any students, wait listed or not, who need one. You are responsible for dropping yourself if you decide to leave the class.

Exams.Expect two comprehensive exams per semester, each one hour in duration and consisting of five conceptual and technical problems. Books, notes, and computers are permitted. You will not be asked to compose complete programs. Prepare for exams by reviewing the assigned reading. Online classes' exams are online and vice-versa. Late exams are not possible but early ones can be taken during office hours.

Extra Credit.To earn extra credit while enrolled in my class, catch up on your homework assignments and propose to me an interesting or useful project you want to pursue. See also independent study.

Grades. Your current grades and detailed comments on your work will be published on this site through the semester. Click or mouse over an italicized score to see details pop up in a tooltip. Correctness and readability scores reflect the mean of peer and instructor reviews. Assignment grades are 25% correctness, 25% readability, and 50% peer review performance. Term grades are 80% assignments, lowest one dropped, 10% midterm exam, and 10% final exam. A, B, C, and D grades represent final scores in the first, second, third, and fourth deciles of the range.

Help.We all need help, all the time. Every course has group discussion in a classroom or an online forum. The Academic Computing Resource Center in Batmale Hall offers orientations and peer tutoring. You may always come to the instructor's office hours with your questions and without making an appointment.

In-person classes.Studying in person, on campus, means having more personal interaction and interchange with your peers and instructor. This context is conducive to group discussion, but requires class attendance at certain hours, which is logistically challenging for many students. The college's academic calendar cancels classes on certain days such that a week might go by with no class meeting happening. See also online classes.

Independent Study.I supervise independent study projects. They have to be useful, novel, and serious to be worth our time. Propose your project to me in person so that we can discuss it. See also extra credit. Here are some project ideas to get you started: a tally of the property taxes paid on each city block; a ranked-choice peer evaluation system; a model of the flight of a Frisbee; an improved search API for MediaWiki; a microtonal tilt audiogame; a long-running location detection app.

Online classes.Online study is a learning experience suited for self-starters and remote learners, including the same readings and assignments that your peers in an in-person class see. You will interact with the class community each week by reviewing completed programs and talking in a message forum. There is always an optional evening in-person orientation when the course begins, and no campus attendance is required. Online courses run every week during the semester. See also in-person classes.

Peer Review. Students collaborate to anonymously review each others' work. On the same weekly schedule as assignments, you will use the ~abrick/review tool to read and test each other's work. This mechanism exposes you to others' useful design ideas and offers you meticulous feedback on weekly assignments. Your identity will not be revealed to your classmates if you do not include it in your submissions. For information on what types of comments are allowed, see the Rules of Student Conduct.

Plagiarism.All students must do their own work. If you turn in plagiarized work, be prepared to receive a zero or even negative credit at the instructor's discretion. See the Rules of Student Conduct.

Readability.Learning to program requires adopting stylistic conventions to enhance readability. A program earning a low readability score would lack sufficient comments in the source code; violate norms of indentation, or name capitalization; or contain redundant, copy-and-pasted code. A program earning a high score will have copious comments, good indentation and capitalization, well-chosen names, and be concise.

Schedule. Every week is named and contains resources or tasks. Begin with the assigned reading, and in an online class, read the Instructor’s Notes afterwards. Use class time or the class forum to clear up anything you found mysterious. Exercises and assignments are designed to be tackled using each week's own concepts and techniques.

Services. You will need to access the student Linux server hills.ccsf.edu using an ssh client. On Linux and Mac systems one is preinstalled with the name ssh. On Windows you can try PuTTY and on Android, ConnectBot; any alternative is fine. Your hills username is the same as your CCSF email name: up to eight characters long. Your initial password is based on your birthday and first and last initials, in the form jan0188.fl. Passwords will not be shown as you type them, and you will have to change the default right away. If you mean to connect wirelessly on campus, the network to use is CCSF Student.