- Assignments.Assignments, always listed in the course calendar, are always revealed at midnight on Monday morning and due at midnight on Sunday night. Assignments that are programs must operate correctly on the student server hills. Late assignments are not accepted. All work must be submitted by running the ~abrick/send program. Submissions that complete the assignment prompt earn full credit. The peer review mechanism produces detailed feedback on assignments. I review and confirm your work and peer review comments by hand. See also Free Passes and Peer Review.
- Canvas.The college provides a Learning Management System called Canvas for online courses. We rely upon it for our discussion and announcements. All assignments and peer review take place on the student server. Canvas displays the same syllabus, calendar, and grade data published on my web site. This data is not integrated with Canvas's 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 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.You are welcome to enroll in my courses. During the first two weeks of the semester, as long as a classroom is not overfull, I approve all requests to add my courses. You are responsible for dropping yourself if you decide to leave a class.
- Exam.Final exam in all courses is equivalent to the final assignment and peer review cycle. It has equal weight as all other assignment & review cycles.
- Extra Credit.To earn extra credit while enrolled in my class, propose to me an interesting or useful project you want to pursue. See also independent study.
- Free Passes.To accommodate the many small things that come up in life, you have the right to skip up to one fifth of course deliverables without effect on your final grade. You do not need to take any action to use a free pass; they are applied automatically. One pass is released after every five deliverables.
Your final grade represents your constancy in the course. It is the fraction of the assignments and peer reviews that you complete, one letter grade per decile, after accounting for free passes. Access your current scores and comments on your work by running the ~abrick/tally program.
- Help.Regardless of our preparation and background, we all need help. 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.
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 so that we can discuss its scope and goals. See also extra credit.
- Interactive programs.In programming courses, your programs must be non-interactive; they cannot prompt the user for input. This rule ensures that all programs have similar invocations and do not require special handling to test.
- Office hours.For the time being office hours are held by appointment over Zoom. The file ~abrick/resources/zoom on hills contains the passwordless conference URL. See also Services.
- 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. No campus attendance is required. Online courses run every week during the semester.
See also in-person classes.
- Peer Review.
You and your course peers anonymously review each others' work for its clarity and correctness.
This exposes you to others' useful design ideas and offers you meticulous feedback on weekly assignments.
The review consists of examining, comparing, critiquing, and ranking seven files of peer work from the previous week; to see them, run the ~abrick/tally program.
Your identity will not be revealed to your classmates unless you sign your comments, which is allowed.
One batch of peer reviews per week earns full credit; additional batches earn 10% more each.
Peer review files have the extension .pr.
The long lines of the file have two fields: the file code, and a specific, constructive commentary in complete sentences, which should be both supportive and critical (see an example file).
If you describe an error, make sure you include the input that triggered it.
Mark any irrelevant or dishonest submission with a comment that begins with the special marker WTF, and explain the problem.
- Plagiarism.You must do your own work. If you turn in plagiarized work, be prepared to receive a zero.
See the Rules of Student Conduct.
- Python version.All my Python programming courses use Python 3 (python3) only; the extension for Python filenames is .py. The end-of-life of Python 2 (python) has passed.
Every class 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.
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.
If you need your password to be reset, call the helpdesk on the phone.
- Teaching Assistants.Teaching assistants who have already excelled in a class can contribute peer reviews and help students in a forum or in person. The college pays minimum wage. Contact me if you think you are a good candidate for this job.