This is the archived website of SI 413 from the Fall 2013 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.
Written homeworks in this class are provided primarily as an opportunity to get things wrong, to reinforce topics in lectures and the readings, and as a template for what to expect on exams. They will be marked according to the following simple rubric:
Your coding style will be judged in three categories: readability, documentation, and organization. The purpose is to get in the habit of producing high-quality, understandable, maintainable programs. Keep in mind that there are many audiences for the code you write: the compiler or interpreter, programmers familiar with your code (including yourself in the future), and programmers unfamiliar with your code (including your instructor).
We usually focus on getting correct code, treating on the compiler or interpreter as the primary audience. This may be reasonable, but remember that source code will also be reviewed by humans — including yourself in a week or a month or a year from now. Following the guidelines below will help make sure that the human readers and maintainers of your code are well-informed and happy.
ClassNamesin Java or ending Scheme
predicates?with a question mark). When not obvious from the names, the role of each function, method, and class is stated alongside the definition. Extra comments are included to explain especially tricky or involved sections of code.
For the oral presentations in Part III of your project, we will follow the CS department's standard rubric.