CS35: Data Structures and Algorithms

Announcements

Basics

People

Times

Resources

Schedule

WEEK DAY ANNOUNCEMENTS TOPIC & READING LABS     
1

Aug 31

Github Setup

Intro to C++, Data Structures, & Algorithms
  • Ch. 1-6 of Python 2.x to C++
  • Schaffer 1
Lab 1 (C++ Intro)

Sep 01

(Video)

Sep 03

(Video)

2

Sep 07

lab-activity-2-<username>

Arrays, Objects, and Memory
  • Ch. 7, 8, 12 of Python 2.x to C++
Lab 2 (Testing)

Sep 08

(Video)

Sep 10

(Video)

Drop/add ends (Sep 11)

3

Sep 14

  Complexity Analysis
  • Schaffer 3
Lab 3 (Enigma)

Sep 15

(Video)

Sep 17

(Video)

4

Sep 21

  Lists
  • Schaffer 4.1
Lab 4 (Complexity)

Sep 22

(Video)

Sep 24

(Video)

5

Sep 28

First Quiz (Practice)

Stacks and Queues
  • Schaffer 4.2, 4.3
Lab 5 (Spell Checker)

Sep 29

(Video)

Oct 01

Final Exam Date Announced

(Video)

6

Oct 05

  Sorting
  • Schaffer 7.1, 7.2, 7.4, 7.5
Lab 6 (Maze Solver)

Oct 06

(Video)

Oct 08

(Video)

 

Oct 12

Fall Break

Oct 13

Oct 15

7

Oct 19

  Binary Trees
  • Schaffer 5.1—5.4

Oct 20

 

Oct 22

(Video)

8

Oct 26

  Balanced Binary Trees
  • Schaffer 13.2
Lab 7 (BST)

Oct 27

(Video)

Oct 29

(Video)

9

Nov 02

Second Quiz (Practice)

Priority Queues
  • Schaffer 5.5, 7.6

Nov 03

(Video)

Nov 05

(Video)

CR/NC/W Deadline (Nov 06)

10

Nov 09

  Hash Tables
  • Schaffer 9.4
Lab 9 (Priority Queue)

Nov 10

(Video)

Nov 12

(Video)

11

Nov 16

  Graphs
  • Schaffer 11-11.3
Lab 10 (Hash Table)
due Nov 24

Nov 17

(Video)

Nov 19

(Video)

12

Nov 23

Third Quiz (Practice)

(break)

Nov 24

(Video)

Nov 26

Thanksgiving

13

Nov 30

  Graphs
  • Schaffer 11.4-11.5
Lab 11 (Graphs)
due Dec 8

Dec 01

(Video)

Dec 03

(Video)

14

Dec 07

No Lab (Friday Schedule)

Miscellaneous  

Dec 08

 

Dec 12

Final Exam (9am-12pm, SC199)

Policies

Piazza

There is a discussion group on Piazza for this course. Use it to ask questions about clarifications on the lectures and labs, and do answer questions from your classmates if you know the answer! Keep in mind that the discussion group has the same academic integrity policy as the course, so you shouldn’t, for example, share code from your solution in a public Piazza question. You can share examples from lecture, lab, or the book to ask questions, but never copy your own code into a public question. If you aren’t sure if your question is OK to post publicly, it's fine to send it as a private message and the course staff can promote it to be publicly visible (and answerable). In fact, a private message to the Piazza board is the best place to ask a course or lab content question.

Late Work

Late lab and written assignments will not normally be accepted. There are a few reasons for this: Sometimes, an assignment and its solution will be discussed in the lecture immediately after it is due, so it’s infeasible to grade late work fairly. In addition, many assignments build on one another, so it’s best to avoid a policy that lets you slip behind. Special exceptions can be made if you contact me well in advance of the deadline (having a lot of work in other classes does not qualify for a special exception). Even if you do not fully complete an assignment, you should submit what you have done to receive partial credit.

Some labs may take a considerable amount of time, so you are strongly encouraged to begin working on assignments well before the due date.

Academic Accommodations

If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 113) or e-mail lhempli1 to set up an appointment to discuss your needs. As appropriate, she will issue students with documented disabilities a formal Accommodation Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the Student Disabilities Service and the accommodations process, visit http://www.swarthmore.edu/student-life/academic-advising-and-support/student-disability-services.xml. You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through Leslie Hempling in the Office Of Student Disability Services. To receive an accommodation for a course activity, you must have an Accommodation Authorization letter from Leslie Hempling and you need to meet with me to work out the details of your accommodation at least two weeks prior to any activity requiring accommodations.

Academic Integrity

This course is governed by the college’s policies on academic honesty and computing, which you can find at http://www.swarthmore.edu/student-handbook/academic-policies. I will pursue disciplinary action in cases of misconduct.

As a general rule, you should not look at, or provide advice on, code or prose that doesn’t belong to you or your lab partner.

Grading

Your grade will be calculated from:

There is no midterm exam.

Participation

Participation includes:

Lab Assignments

Lab assignments are typically handed out at the beginning of the lab period on Monday, and due at 11:59pm the following Sunday. We’ll let you know in advance about deviations from this pattern. Assignments will be handed in via Github, which you will get practice and instruction on using over the first few labs. Several labs will be done in pairs, with the partner policy discussed on a per-assignment basis. The distribution of the assignment will make it clear which assignments are solo and which are in pairs. Some lab assignments may involve a significant written component instead of or in addition to the programs you write.

Quizzes

Quizzes will be announced well in advance, and will take place in either lecture or lab on the scheduled date. Notify the professor at least a week in advance if you cannot attend on the day of a quiz – if you don't give this much warning and don't show up, you get a zero on the quiz. Quizzes will come with a study guide.