These goals will be reached in part by reexamination of techniques learned in the previous quarter in a new light. Broader, more technical treatments of these topics, in particular algorithm analysis, are presented in later undergraduate courses.
We use the C programming language in our studies. C is the lingua franca of computer programmers, and one of the historic and ongoing successes in the design of practical programming languages. Having learned a second programming language well, and having viewed a variety of common problems from two distinct vantage points, students who complete CS152 will begin to see past the superficial characteristics of computer programs to appreciate their deeper properties.
We do not make use of Chalk in CS152. We will use piazza instead. We know most of you are familiar with piazza already, but please ask your instructor for help getting started with it as needed.
If you have questions about the course, and those questions are in a sense impersonal — that is, they are about course material or course logistics — we ask that you post those questions publicly on piazza, rather than contacting any of the staff members directly. This ensures you will receive the fastest, most consistent possible response from the staff. Since students usually have common questions, posting public questions is also very efficient for your classmates as well. As yet another advantage, it avoids duplication of work on the part of the staff.
In cases where you have a question that is about your own personal situation and not relevant to the class as a whole, you may ask a “private question” on piazza, which is invisible to your classmates, or send email to your instructor directly.
In addition to the office hours we provide ourselves, the College Core Tutor Program (aka “Harper Tutors”) employs computer science tutors Sunday through Thursday nights from 7pm–11pm, starting in the second week.
Students must register for and attend lab sessions each week. Lab sessions are held in the Computer Science Instructional Laboratory (also known as the CSIL); it is located on the first floor of Crerar Library. Attendance at the lab session for which you are registered is mandatory.
If you need to switch your lab time, there will be a way to do so online early in the quarter; details to follow. You will work on a department’s Macintosh computer during your lab session. You must use the department’s computer during lab and may not use your own laptop.
Textbooks: 1 (required). The C Programming Language (Second Edition), Kernighan, Ritchie. The textbook is available on campus at the Seminary Co-op Bookstore1 ; you can of course find new and used copies at your favorite online bookstore as well. 2 (optional). Data Structures in C, Kalicharan. You may order the book on Amazon.
Software All the software we use in this course is available free of charge for all common platforms. We will mainly use vi, clang and subversion. Windowsusers will need to download and install Cygwin, and will be able to include subversion in their Cygwin installations.
There will be weekly assignments. There will also be a project that is a multi-week endeavor - make sure that you complete the suggested parts each week so you don't get behind.
Each student’s final grade will be computed according to the following formula: weekly assignments 35%, lab attendance 5%, exams 20% each. We will scale the grades, so what precisely constitutes an A, B, etc. will be determined by the collective performance of the class. You are guaranteed not to get lower than straight scale (A>=93%, A- (90->93), B+ (97->90), etc.).
There will be two midterms and a final exam. All exams are in class, and there will be no make-up exams. Hospitalization and death in the family are the only excused absences from exams.
We are serious about enforcing academic honesty. If you break any of these rules, you will face tough consequences. Please note that sharing your work publicly (such as posting it to the web) definitely breaks the second rule. With respect to the third rule, you may discuss the general strategy of how to solve a particular problem with another student (in which case, you must document it per the fourth rule), but you may not share your work directly, and when it comes time to sit down and start typing, you must do the work by yourself. If you ever have any questions or concerns about honesty issues, raise them with your instructor, early.
Starting this quarter, we will enforce the following rule as well: any student who is determined to have violated academic honesty rules will not be allowed to withdraw from this course.