Elaboration: The main emphasis of the class will be the study of a number of important data structures, such as stacks, queues, linked lists, hash tables, trees and graphs; algorithmic techniques, such as recursion; and program analysis. In the process, we will learn the Java programming language, though the course will focus more on language-invariant concepts than on the details of Java. The rationale for this is simple: programming languages change frequently, while concepts such as recursion remain. My parents (who studied CS in the 1970s) by now have used over a dozen languages each--that's a new language every three years. Since you go to college only once, the best two things you can learn are the language-invariant concepts and the skill of picking up the language du jour.
The class assumes working knowledge of CS 111 and a reasonable level of comfort with programming. If you are unsure you have those skills, talk to us as soon as possible.
Instructor: Professor Leo Reyzin,
(617-35)3-3283, MCS (111 Cummington St) 135E. Office hours
Teaching Fellows (TFs): Abhyudaya Alva
Office hours: TBA
Course Assistants (CAs): Amalia Safer (A2), Ben Gaudiosi (A3), Kylie Moses (A4), Adriana D'Souza (A5), Adnrew Quan (A6), Chloe Fortuna (B2), Chamath Dharmasiri (B3), Wjdan Alharthi (B4), Justin Ingwersen (B5), Tyrone Hou (B6). Office hours TBA.
CS 112 B1 Instructor: Abbas Attarwala. B1 is another lecture secion of CS 112. Abbas and I coordinate loosely, and he is not responsible for our section, but I thought you at least should know his name, since he may also answer some of your questions on Piazza.
We encourage you to come to our office hours. If you need to talk to us but can't make the office hours, please use Piazza.
You should have also selected a lab when you registered (if not, add it to your schedule!); make sure you have an "A" lab, not a "B" lab. Labs, which meet on Thursdays and Fridays in EMA (730 Commonwealth Ave) 304 are headed by a TF, are a required part of the course. You will get the most out of lab if you come having read the homework assignment.
The class has a home page: http://www.cs.bu.edu/~reyzin/teaching/s17cs112b/. We will also be using Piazza for course discussions and homework questions; you will get more info as soon as it is set up. You are responsible for announcements we post on Piazza.
We understand, however, that sometimes circumstances are beyond your control. For just such an occaion, we will drop the lowest homework grade provided we see than you actually made an effort on that homework. In other words, a 0 will not be dropped. Do not use the dropped grade option without a good reason--if you use it up early and then get a cold later in the semester, it's too late. Exceptions to this policy will be granted only in serious circumstances (such as hospital stays or family emergencies) that I hope none of you will have.
Violations of collaboration policy fall into two categories: ones that are acknowledged at the time they occur (for example, in clearly marked comments in your code) and ones that are unacknowledged. Acknowledged violations (e.g., using someone else's code for a method you didn't know how to write yourself, and stating clearly in your code that this is not your own work) will result in an appropriate reduction in the grade, but will not be considered cheating.
Unacknowledged violations of the collaboration policy--for example, not stating the names of your collaborators, or any other attempt to represent the work of another as your own--will result in an automatic failing grade and will be reported to the Academic Conduct Committee (ACC). The ACC often suspends or expels students deemed guilty of plagiarism or other forms of cheating. I have served on the ACC and have seen it happen. I will assume that you understand the BU Academic Conduct Codei (read it if you haven't).
If you are uncertain as to whether a particular kind of interaction with someone else constitutes illegal collaboration or academic dishonesty, please ask me before taking any action that might violate the rules; if you can't reach me in time, then at the very least include a clear explanation of what happened in your homework write-up to avoid being treated as a cheater. Citing your sources is usually the easiest way out of trouble.