



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Introduction to Computer Science, Lectures Handout for Programming Abstractions. General informations. Prof. Zelenski
Typology: Study notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




CS106B Handout # J Zelenski Jan 9, 2008
Welcome!
On behalf of the entire staff, I'd like to welcome to you to CS106B! We're glad to see you enjoyed CS106A and you're inspired to go on further. Moving from Java to C++ is a fun and worthwhile challenge and the material in the second course is even more awesome than the first and I'm excited to share these things with you. Building on the background from your first course, you will become acquainted with the C++ programming language, learn more advanced programming techniques, explore classic data structures and algorithms, and apply these tools to solving complex problems. The assignments do get more intense as we move onward, but we have our excellent section leaders and lots of helper hours in the LaIR to keep you moving forward. I hope you will find the time worth your investment and that you enjoy your growing mastery of the art of programming!
Lecturer: Julie Zelenski
Lectures: MWF 2:15-3:05 pm Skilling Aud
Pre-reqs: The prerequisite for CS106B is solid performance in CS106A and readiness to move on to advanced programming topics. A comparable introductory programming course (including high school AP courses) is often a reasonable substitute for our CS106A. Feel free to talk with me if you're unsure if your background will be sufficient to enable you to succeed in CS106B.
Sections: In addition to lecture, you’ll also attend a weekly discussion section. The person leading your section will grade your assignments and work closely with you throughout the quarter. I consider our excellent section leaders to be one of the best features of CS106 and I hope you agree! You must sign up for section by visiting anytime from Thursday, Jan 10 5:00 P .M. through Sunday, Jan 13 5:00 P .M.
to enter your section preferences. Don't miss the signups! If you miss signing up, the limited selection for late adds may make it impossible for you to enroll. SCPD students have the option of being assigned to the televised section or attending a regular section on-campus.
Optional lab: CS106B is a course in programming abstractions and although we use C++, there is much more to the language that fits with our pedagogical goals. CS106L is a 1-unit S/NC lab designed to accompany CS106B/X and provide additional coverage of advanced features of the C++ language and standard libraries. It meets MW 4:15-5:05pm in Hewlett 103. The lab is optional and you are welcome to attend even if you don't choose to enroll for credit.
Units: CS106B is offered for 3 to 5 units. Undergraduates must take the course for 5 units of credit. Graduate students may enroll for fewer units to squeeze into a limited tuition allowance, however this is solely a bookkeeping change and has no effect on the course requirements.
Readings: The required text for this class is a C++-updated version of Eric Roberts' marvelous textbook Programming Abstractions in C. The draft version is available as a custom course reader from the Stanford bookstore. We will also distribute some material in the form of course handouts in lecture. Any leftover copies will be put in the bins in the Gates B-wing entryway around the corner from Julie's office. If you miss class and don’t get to the bins before the leftovers run out, you can always get a PDF version from the class web site.
E-mail: Every now and then we may have time-critical information that can't wait until the next class meeting, in which case we will send e-mail to the class mailing list. The registrar creates the class mailing list using their registration database. Please make sure your Axess registration is current so you won't miss these important announcements.
Web site: Our course web site is the place to catch- up on current announcements, grab copies of handouts, view the syllabus, and find course information. The site includes a "Policies " section which gives details on things as how the lateness is handled, specific examples of acceptable and unacceptable collaboration, and so on. Please make an effort to review these important policies. You should also check the web page periodically for course announcements, especially when you have to miss lecture.
Wiki: We started a class Wiki with CS106X last quarter that we plan on continuing. We envision this collaborative website becoming a repository of information helpful to current and future students. Right now, we're focusing on two topic areas: C++ compiler error messages and tips and tricks for using our development tools. We hope you will both benefit from and contribute to our new endeavor! The wiki is linked to our class web site.
Exams: The midterm and final will be open-book/open-note examinations. The midterm will be held in out of class Tuesday Feb 19th^ 7-9pm. We hope most of you will be able to attend the regular exam, but we will make alternate arrangements for those with unavoidable conflicts.
later than 24 hours before the program is due. Only the head TA is authorized to approve extensions, not your section leader.
Grading: This class is offered with either letter grade or CR/NC grading option. Course grades will be determined using the following weights:
50% Assignments 15% Midterm 30% Final 5% Participation in discussion section and interactive grading To receive a passing grade in the course, you must complete satisfactory work for both the assignment and the exam portions.
Honor Code: This Stanford Honor Code informs all of us how to conduct ourselves in such a way to ensure the academic integrity of community. I believe this to be very important and not wanting to skim on details, please see our handout on "CS and the Honor Code" for a detailed explanation of our course policies on what constitutes honorable work.
Online: CS106B is being offered over through SCPD this quarter, which means the lectures are taped and broadcast/posted online for our industry partners. As a side-effect, on-campus students can use the online videos to review lectures or make up for missed classes. My feeling is that on- campus students should plan to attend class in-person for best benefit. I don't recommend taking the class solely by video because of a scheduling conflict. Also note that university policy prohibits students from registering for classes with conflicting final exams and CS106B will not offer an alternate final exam.
Syllabus: A rough outline to give you an idea of what is planned—expect adjustments as we go. Reading should be done in advance of the lectures for maximum benefit.
Week Topics Reading 1 Admin, transitioning to C++, syntax, procedural paradigm Ch. 1 2 Libraries: standard C++ and CS106 2, 3 3 Client use of classes and templates, CS106 ADTs handouts 4 Functional and procedural recursion 4, 5 5 Recursive backtracking, recursive data 6 6 Algorithm analysis, sorting, template functions 7 7 Midterm : Tue Feb 19th 7-9pm Class implementation, dynamic arrays, linked lists
8
8 Implementing vector, stack, and queue 10, 9 9 Trees, hashing, implementing map and set, graphs 13, 11, 15 10 Advanced topics, wrap Final : Fri Mar 21st 12:15-3:15pm
This tag cannot be removed under penalty of law except by the consumer. Do not eat this paper. Recycle it.