This course is an introduction to fundamental data structures in Computer Science. These data structures, and the algorithms that go with them, make up the standard toolkit for programmers regardless of language and application. We will use the Java programming language for representing both the data structures and also for developing simple programming projects that put them to use. Expect to do a significant amount of programming, as well as paper and pencil exercises.

Class is on Zoom through January 30th; office hours are currently planned exclusively for Zoom, though this may change once we’re back in person.

MondayTuesdayWednesdayThursdayFriday
11am-12:15pm class11am-12:15pm class
1pm Prof. Greenberg (Zoom)12:15pm Prof. Greenberg (GS)1pm RE
2:30pm Venkat (Zoom)2pm Cindy (GS 252)2:30pm Venkat (Zoom)2pm Cindy (GS 224)2pm RF

CS 284-A is associated with the recitations CS 284-RE (McLean 218B at 1pm on Fridays) and CS 284-RF (Morton 103 at 2pm on Fridays). If you are not in one of these sections, contact the registrar as soon as possible to switch recitation sections.

Course Schedule

WeekDateTopicsWork
1Jan 18/20JavaHW1 out; recitation 1
lecture notes, Rectangle.java, Main.java
2Jan 25/27More Java!recitation 2
lecture notes pt1, source code pt1, Exceptions.java, Quiz.java
lecture notes pt2
3Feb 1/3Efficiency and asymptoticsHW1 due Thursday 11:59pm; HW2 out; recitation 3
lecture notes (software lifecycle), Two.java
lecture notes (efficiency)
4Feb 8/10Lists using arraysrecitation 4
lecture notes pt1, AL.java
5Feb 15/17Linked listsrecitation 5
lecture notes, AL.java (with iterators) LL.java
6Feb XX/24Stacks (no class on Tuesday)HW2 due Tuesday 11:59pm; recitation 6
7Mar 1/3Queues; recursionHW3 out; recitation 7
lecture notes (stacks), lecture notes (queues), Factorial.java, RLL.java, LL.java (open recursion)
8Mar 8/10MidtermHW3 due Tuesday 11:59pm
9Mar 15/17Spring break
10Mar 22/24Binary trees; search treesHW4; recitation 10
lecture notes (BSTs)
11Mar 29/31More trees; heapsrecitation 11
12Apr 5/7SortingHW4 due Thursday 11:59pm; recitation 12
guest lecture notes; lecture (pt 1), lecture (pt 2)
13Apr 12/14More sorting; sets and mapsHW5 out
lecture notes
14Apr 19/21Hashingrecitation 14
lecture notes
15Apr 26/28Balanced treesHW5 due Thursday 11:59pm
16May 3/XXReview

According to the Spring 2022 final exam schedule, our exam is 8am-11am in X-X-218B on 5/12/2022, i.e., in our classroom (McLean 218B) on Thursday, May 12th.