CS140 -- Data Structures & Algorithms I: Spring, 2014
Lecture: TT: Min Kao 524, 9:40 - 10:55
Min Kao 320, firstname.lastname@example.org. Office hours are
by appointment only -- send email.
- Adam Disney.
Office hours in MK 317:
- Allen McBride.
Office hours in MK 204:
- Tuesdays: 11:00 - 2:00
- Wednesdays: 10:00 - 12:00
- Thursdays: 11:00 - 2:00
- Shawn Cox.
Office hours in MK 214:
- Mondays: 2:00 - 5:00
- Wednesdays: 2:00 - 5:00
- Fridays: 12:00 - 5:00
- Zheng Lu.
Office hours in MK 205:
- Tuesdays: 2:00 - 5:00
- Thursdays: 2:00 - 5:00
There are three labs for this course. You should be enrolled in one of them.
There has been confusion about the labs, below is the correct lab information:
- Mondays, 10:10 - 12:05 in Min Kao 421
- Wednesdays, 12:20 - 2:15 in Min Kao 421
- Fridays, 9:05 to 11:00 in Min Kao 421
Lab attendance is mandatory.
I'm going without a textbook because they are too expensive. I maintain
copious lecture notes and they are your primary reference material. If you
want additional material, I'll suggest
Data Structures and Algorithm Analysis, by
Mark Allen Weiss, Addison Wesley. At this point, they should be giving old
editions away on Ebay/Amazon. The textbook is completely supplementary though.
The following are the goals that I have set for teaching this class
-- they represent what I'd like you all to get out of the class.
When the semester is over, go over this list, and see how well these
goals were met. If you feel like it, send me email with comments --
it's more useful after the semester than in the middle of it, I
- To start becoming self-sufficient C++ programmers.
This means that when you see a problem that needs to be coded, you
have a good idea of how to go about it by writing a C++ program.
This includes understanding the logistics of compiling, linking,
including, etc., plus setting up the data structures, organizing
the I/O, and using standard tools and libraries where appropriate.
In case you're wondering, this includes understanding pointers,
recursion and new/delete.
- To understand basic data structures.
Frankly, there are only three to four basic data structures that
can carry you through a lifetime of programming. All the rest
are variations on a theme. By the end of this class, you should
understand the basics and be prepared to tweak them when necessary.
- To understand basic algorithm analysis.
Knowing how to set up your data structures is one thing.
Understanding how fast your program should run is another.
This class get you started with algorithm analysis.