CMP338: Data Structures and Algorithms

Syllabus

Fall 2003

I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.

--Morpheus, The Matrix

The prerequisites for this course are one year of a high level object oriented programming language, preferably Java.  If you have studied C++ but not Java you will need to do some additional work during the first few weeks of the semester. There will be little review of topics that should have been covered in CMP 326.  If you have not studied either Java or C++, please see me immediately!

Instructor

Nancy Griffeth

Department of Mathematics and Computer Science

Gillet 201C

Email: ngriffet@lehman.cuny.edu

Telephone: 718 960-8787

Office Hours: Tuesday and Thursday, 2-3 pm, and by appointment

 

You can also leave messages for me in my mailbox in the department office, Gillet 211.

Exams

One midterm and a final

The midterm is tentatively scheduled for:

October 23

Please do not miss a scheduled exam.  The makeup will be harder.

Assignments and Quizzes

There will be programming exercises and weekly exercises to do on your own.  The programs will be collected and graded.  I will not collect the exercises, but I will give occasional pop quizzes using questions from the assignments.  Doing the exercises as they are assigned will help you understand class better and help you do well on the exams.

Textbook

Frank M. Carrano and Janet Pritchard, Data Abstraction and Problem Solving with Java, Walls and Mirrors, Updated Edition, 2004.

Course Description and Objectives

In this course, we will begin to develop your skills with the basic tools of the computer scientist – data structures and algorithms.  Algorithms are just methods for doing things, and a data structure is a technique for organizing the data that your algorithms use.  You will learn about the most useful data structures and you will also learn some of the classical algorithms of computer science. 

Class Attendance

I will take attendance in every class.  Please e-mail, phone, or leave me a note if you have to miss a class.

Course Outline

This represents my best guess at how we will approach the course, but we may modify it as the term progresses.

Week

Topic

Reading

Sep 2

Review:

Programming

Recursion

Abstract Data Types

Measuring Algorithm Running Time

 

Chapter 1

Chapter 2

Chapter 3

pp 374-384

Sep 9

Lists

Chapter 4

Sep 23

Stacks

Chapter 6

Oct 9

Queues

Chapter 7

Oct 23

Midterm

 

Oct 28

Sorting

Chapter 9

Nov 11

Trees

Chapter 10

Nov 25

Graphs

Chapter 13

Dec 9

Advanced Topics

?