Computer Science S-111b
Intensive Introduction to Data Structures

Announcements

August 25
Congratulations to Zach for winning the programming contest! To evaluate the submissions, we used random seeds of 124, 223, and 2008. Zach's submission earned amazing scores of 18610, 9174, and 4254 on those seeds.

The final letter grades for the course are available using the Summer School's online services.

August 13
The final exam will be held tomorrow from 8:30-11:30 a.m. in Science Center A (our original lecture hall). Please arrive early so that we can begin on time.

The solutions to PS 9 are now posted.

August 12
The practice final exam (plus solutions) has been posted to the section exercises page.

There will be office hours today from 2-4 pm, but there will be no regular office hours tomorrow with the TFs. However, Dr. Sullivan will be holding some extra office hours tonight from 7-8:30 pm and tomorrow night from 7-8:30 pm in Science Center room 101e.

The unit 9 retest will be held tomorrow, August 13 at 1 pm in 51 Brattle St., room 119.

August 9
We'll be holding extra office hours from 1-3 PM, Sunday August 10th in the Science Center basement lab.

August 8
The unit 9 practice test (plus solutions) has been posted to the section exercises page.

The unit 9 test will be held at 10:00 AM in the lecture hall on Monday, August 11.

There will also be a section meeting on Monday at the usual time/place, followed by office hours in the Science Center lab.

August 7
We've posted a FAQ for Problem Set 9 -- please look it over!

August 6
The Problem Set 8 solutions have been posted to the solutions page.

August 5
The unit 8 practice test (plus solutions) has been posted to the section exercises page.

August 2
Due to popular demand, we'll be holding extra office hours tomorrow August 3rd from 1-3 pm in the Science Center basement lab.

August 1
We've posted a complete solution set for Problem Set 7 to the solutions page.

We've also posted a FAQ page for Problem Set 8. Please look it over, as it contains a number of hints and clarifications.

July 31
We've posted the unit 7 practice test (plus solutions) to the section exercises page. The actual exam will be held promptly at 8:20 AM tomorrow morning in the lecture hall.

July 29
We've posted a complete solution set for Problem Set 6 to the Solutions page.

July 28
We've posted a FAQ for Problem Set 7. Please look it over as you work on the PS7 written and programming problems.

July 27
The unit 6 quiz will be held tomorrow before lecture from 8:30-9:30 AM in the lecture hall (Maxwell Dworkin G-125). It will be open-book/open-notes, but not "open-computer." The solutions to the unit 6 practice test have been posted to the lectures and sections pages.

July 26
We've updated the Section Assignments to reflect the final course enrollment. Please take another look at it (especially if you hadn't already been officially assigned to a section) to determine which section to go to, and who will grade your homeworks. Note that you'll need the course username/password to access that page.

July 24
We've posted a Frequently-Asked Questions page (FAQ) for Problem Set 6. It contains a number of hints and clarifications on the assignment, so please be sure to look it over before submitting your work.

We've also posted our grading standards for the programming assignments, explaining the factors that your grades will depend on.

July 23
Beginning tomorrow (Thursday), lectures will be held in Maxwell Dworkin G-125. Maxwell Dworkin is down Oxford Street from the Science Center (map).

July 22
Important reminders:
1. Coursepacks should be purchased ASAP from FlashPrint at 99 Mt. Auburn Street. The cost is roughly $25.
2. The Unit 6 Problem Set has been posted. Use the assignments link in the left-hand navigation bar to go to the assignments page of this site.
3. Problem Set 0 should be completed ASAP. It should only take you about 10 minutes to do so.
4. Sections meet daily from 1-2 p.m. Check the sections page to see which section you should attend or email libs111 at fas dot harvard dot edu.
5. Office hours begin today. See the staff page for more detail.

Welcome!
The first lecture for this course will be on Monday, July 21, 2008, at 9:30 a.m. in Science Center A.

The key details of the course are summarized below. For more information, consult the syllabus or contact Dr. Sullivan.

Please check this page regularly throughout the course for announcements and course materials.

Course Information

Description
A fast-paced second course in computer science using the Java programming language. The course covers fundamental data structures, including lists, stacks, queues, trees, and graphs, and it examines classic algorithms that use these structures for tasks such as sorting, searching, pattern matching, and data compression. Techniques for analyzing the efficiency of algorithms are also studied. Key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized. Problem sets require a minimum of 20 hours of programming each week in a Unix environment. Graduate-credit students are expected to complete additional work. Together with Computer Science S-111a, this course provides complete coverage of the syllabus for the Advanced Placement examination in computer science.

Instructor
David G. Sullivan, Ph.D.
Lecturer on Computer Science, Boston University
see the staff page for contact info.

Prerequisites
CSCI S-111a or equivalent experience with Java or C++, and familiarity with precalculus mathematics. If your background is in C++, you will need to quickly come up to speed with Java. You may want to consider first taking CSCI S-111a or CSCI E-50b to solidify your knowledge of Java.

Requirements
  • problem sets: five assignments including a combination of written exercises and programming problems. All programs that you write must compile and run on the nice.fas.harvard.edu cluster of Linux machines in the Science Center. While you are welcome to use your own computer to work on the assignments, you will need to upload the programs to the nice.fas machines and test and submit them there. Graduate-credit students will complete extra problems on each problem set.
    Important note: You should plan on devoting a minimum of 20 hours of work per week to completing the problem sets. If you have other major time commitments, you should reconsider whether to take this course. Working at a half-time job is inadvisable; working more than that is a virtual guarantee of failure.
  • four open-book unit tests
  • open-book final exam
  • programming contest: required for graduate credit; extra credit otherwise.

Policies
  • Policy on collaboration and academic honesty
  • Lateness:
    • If you are ill, or should some other emergency arise, you must make special arrangements with your teaching fellow ahead of time to turn work in late.
    • For two of the problem sets, you may hand in the programming part of the assignment at most 24 hours late without being penalized. We encourage you to save these extensions for the later problem sets!
    • Any other homework (including all written parts of the assignments) can be turned in up to 24 hours late for a 10% deduction.
    • Any homework that is more than 24 hours late will not be accepted.
    • Plan your time carefully, and don't wait until the last minute to begin an assignment. Starting early will give you ample time to ask questions and obtain assistance from members of the course staff.
  • Determining the final grade:
    • problem sets: 50%
    • unit tests: 17%
    • final exam: 33%
    The exams will count for somewhat larger percentages if doing so improves your final grade.

Textbooks