
CSCE 221: “Data Structures and Algorithms”
Fall 2011
Instructor: Dr. Teresa Leyk
Office: 901E Richardson Bldg.
Phone: 845-4456
Office Hours: MWF 10:00 am – 11:00 am, other times by appointment, 901E Richardson
Course web page: (all information about the course will be there):
http://courses.cs.tamu.edu/teresa/csce221/csce221-index.html
Class Time and Place for sections 501–504: MWF 3:00 am – 3:50 pm, 124 HRBB
Class Time and Place for sections 504–506: MW 4:10 pm – 5:25 pm, 113 HRBB
Lab Time: see the course web page
Course Description: Credit 4. Specification, analysis and implementation of abstract data types for lists, stacks,
queues, trees, hash tables, graphs, and their associated algorithms. Performance trade-offs of different implementa-
tions; asymptotic analysis of running time and memory usage. Includes the execution of students programs written in
C++; emphasis on adherence to good software engineering principles.
Prerequisites:
•CSCE 222 "Discrete Structures" or
MATH 302 "Discrete Mathematics" (co-requisite)
•CSCE 121 “Introduction to Program Design and Concepts” or
ENGR 112 “Foundations of Engineering” and CSCE 113 “Intermediate Programming & Design”
Required Textbook: "Data Structures and Algorithms in C++" by M.T. Goodrich, R. Tamassia and D. Mount, 2011,
John Wiley & Sons, Inc., ISBN 13978-0-470-38327-8. Also, you may need a textbook on C++ language from the
previous semester, or any good C++ reference books.
Learning Objectives:
1. Provide students with knowledge of basic abstract data types and associated algorithms: stacks, queues, lists,
trees, graphs, hashing and sorting, selection and searching.
2. Provide students with practice by specifying and implementing these data structures and algorithms in C++.
3. Provide students with skills needed to understand and analyze performance trade-offs of different algorithms
implementations and asymptotic analysis of their running time and memory usage.
4. Provide students with exposure to the latest events in Computer Science and Engineering and their impact on
society or the economy.
Expected Learning Outcomes: At the end of this course students should be able to
1. Design and implement different data structures that allow easy access and manipulation of data using C++
programming language.
2. Apply the Big-O asymptotic notation to analyze and select efficient algorithms for solvin g a given problem with
respect to time and memory usage.
3. Identify the latest developments in the Computer Science area or be familiar with Turing awards winners.
1