Department of Computer Science

CS 240: Data Structures - Summer 2007

Home Syllabus Course Schedule Assignments Notes Blackboard

Course Description:
CS 240 is a gateway course in the Computer Science department to the upper-level courses. As such, this course builds upon conceptual material from previous courses within the department to provide the students with the following skills:
An understanding of data abstraction, information hiding, encapsulation.
Comfort with creating reusable code using an object-centered design methodology.
The ability to translate specifications into working code and the ability to create those specifications.
Observe the relationship between data structures and the decomposition of a problem into smaller parts.
Knowledge of the environment and features in which programs are executed.
Algorithm and complexity analysis.

a) CS 140 (Introduction to Programming) and
CS 220 (Computer Systems II: Architecture and Programming)
or b) CS 211 (Introduction to Engineering Program)

Course Information:
Meeting Times: May 29th - August 10th
Lecture: TR 4:00-6:00, SL210
Lab: M 4:00-6:00, LNG103 (ignore BUSI)
Instructor: Jason Loew
Office Hours: TR 1:00-2:30, EBN13 and by appointment (possibly in a different room).
Phone: 777-4613 (74613 on campus)
Course Assistant: Greg Stoddard,
Listserv: TBA

Course Materials:
Required Materials: "Objects, Abstraction, Data Structures and Design Using C++" by Elliot B. Koffman and Paul A.T. Wolfgang, Wiley 2005 (ISBN-13: 978-0471467557). Electronic Edition available here - make sure you understand the system requirements before purchase!
Recommended: "Absolute C++" by Walter Savitch, 3rd Edition, Addison-Wesley 2007 (ISBN-13: 978-0321468932)
Optional Materials: We will be using g++ in class but through the MSDNAA our students have access to the suite of Visual Studio compilers that they may use on their own machines and for future programming endeavors.
Students will significant Java experience may want to consider "C++ for Java Programmers" by Mark Allen Weiss - Prentice Hall 2003.

Course Objectives and Goals:
This course aims to provide students with the following skills and growth:
Students will learn to use and create algorithms to solve various problems.
Students will learn how to look at a problem and break it down into smaller subproblems.
Students will use requirement specifications and learn how their creation can simplify a problem.
Students will use documentation to make their programs readable and maintainable.
Students will become familiar with a linux environment.
Students will modify their own code to create new solutions and will observe the software life cycle.
Students will seek out available resources to help them with their assignments.
Students will design abstract data types and implement data structures.