COM1201, Algorithms & Data Structures 2

Winter 1998, Professor Futrelle

Course (Catalog) Description

Continues the study of algorithms, data structures, abstraction, and encapsulation. Introduces structures that utilize arrays and/or links in more sophisticated ways. Studies linked lists, trees, heaps, priority queues, and hashing. Discusses efficient sorting (quicksort and heapsort) and introduces experimental analysis or algorithms. Examines several design issues, including selection of structures based on what operations need to be optimized (insertion, deletion, traversal, searching, sorting, evaluation), encapsulation of algorithms using class and template techniques, and how and when to use recursion (versus explicit stack-based techniques). Introduces graph algorithms and structures if time permits. Prereq. COM 1101 or equivalent.

Description of this winter's course

The goals of this course are first, to introduce you to advanced data structures and algorithms described in the catalog description above. The second goal is to understand how these structures and algorithms are translated into a contemporary programming language. The take-home lesson is that the study of algorithms and data structures is fundamental and goes beyond their implementation in any particular language.

C++ is the language for the course. Despite its shortcomings, it has close relations to C and is widely used. (Many professionals feel that Lisp, Smalltalk, and Java deal with object-oriented programming in more sophisticated ways than C++.)

Check this website and your email frequently, to hear the latest ( Read all the COM1201 pages and reread any for which an update is indicated (below). If you do something wrong because you never read the pages, it's your problem -- but I'm sure you'll do fine :-)

Major updates of these pages:

1/7/98: Posted (based on earlier COM1201 web pages).

Northeastern University, College of Computer Science, Boston, MA.
Professor Robert P. Futrelle   Email me at:
Teaching assistant:
Xing Xiong. Room 53CN, phone 373-4607, email:
115/149 Cullinane
Hardcopy mailbox:
161 Cullinane
Class email:
You can also send mail to the ENTIRE COM1201 class.
Office 373-4239 (voice mail), Lab 373-2076, Home 244-8261
Course calendar:

COM1201 course calendar

and you can access the official University Calendar


Platform and development system:
This course will use Macintoshes, room 229CN and 201CN, and develop C++ programs using MetroWerks Code Warrior Pro, an excellent C/C++ development system. See also, our College's Freshman C++ Curriculum page. You can also look at these Macintosh Programming Pages.  Some students may elect to use Lisp for their work (Macintosh Common Lisp).
Robert Sedgewick. Algorithms in C++  Addison-Wesley, 1992.
Books on algorithms in the library:
Algorithms is a big and important subject. Even the fastest computer in the world is useless without good algorithms. There are over one hundred books about algorithms in Snell library, at every level from beginner to research-level. Use NULIS at the Snell Library to check out what's there.
Personal Help:
If you need help at any time, find me in my office or lab, call, or send email, or ask in class to set up an appointment. My office/advising hours are Tuesdays, 9:30-11:30.
On-line help:
On-line help is available from many sources. All the Code Warrior manuals are on-line on the big Mac server, Ambassador, accessible via the Documents folder. For more info on most anything, search the net.
Project/Code Resources:
All project files, source code, project documentation, etc. can be found in Ambassador:Course Directories:COM1201 :Student. Here's an on-line copy of Sedgewick's C++ source code.
Mondays, Tuesdays, Thursdays, 3:30-5:10 in room 245CN.
There will be quizzes, a midterm, and a final. All are closed-book. First quiz, 15 January.
Midterm: 20%. Final: 35%. Quizzes: 20%. Machine problems: 25%.
There will be a variety of written assignments and some machine problems (details in preparation)
I will take attendance and it can affect your grade. When in doubt, come to class!

Return to Prof. Futrelle's home page