Welcome to Comp 116.
Catalog Descritpion: An introduction to the theoretical and practical aspects of data structures. Emphasis is on abstract data types and the use of the C++ class mechanism to support their implementations. Examples include stacks, queues, linked lists, binary search trees and general trees and their applications. Pointers and recursion are used in some implementations. Three hours of lecture and a two-hour laboratory per week.
Course Basics
Lecture: |
Mon/Wed/Fri 10:30AM-11:20AM, Science Center 1315 |
Lab: |
Wed 3:30PM - 5:20PM, Science Center 1315 |
Instructor: |
Zhou Tong |
Email: |
tong_tony at wheatoncollege dot edu |
Office: |
Science Center 1340 |
Course Textbook
Required textbook:
You could also have a look at this other textbook that is freely available if you want an additional reference:
The first one will be used as the main textbook for the course, and I will occasional post suggested readings. It is a pretty solid reference both for the C++ language and the data structures we will cover in the course.
The second book explores only data structures and algorithms (also in C++) and is useful for coming at the material from a different view point than lecture.
In addition, you may want to use A Transition
Guide from Python 2.x to C++ by Michael Goldwasser and David Letscher
for the first week or two, it will highlight the differences between Python and C++.
Additional references
This course provides an introduction to object oriented programming
as well as the C++ program language. Each could warrant their own course of
study and we highly recommend you study them further. Some references of use:
- The online C++ reference for
when it's 3am and you can't remember how to use cout. A great
source for looking up C++ routines with examples.
- www.cplusplus.com, another very useful references on the C++ language. If you google a C++ language feature, this is the site that you will usually get as the frist link.
- C++ Programming Language reference on Bjarne Stroustrup's page - this is the guy who developed the C++ language
- cprogramming.com beginner-friendly tutorials, articles, and exercises.
- The tutorial from the site above. Be warned, it goes FAST, so it's really better as a reference than a tutorial.
- Google C++ Style Guide Read this if you want to learn more about coding style.
- How to Think Like a Computer Scientist, based on the work of Jeffrey Elkner, Allen B. Downey, and Chris Meyers, if you feel a bit nostalgic about the good old days of Comp 115 and Python. Not everything translates neatly to C++, but you may want to remember some of that stuff before seeing it again in C++.