CS171: Introduction to Computer Science II: Introduction to Data Structures and Algorithms
Fall 2008

Tuesdays and Thursdays, 1:00pm-2:15pm
Math & Science Center
W302

[ Lecture Notes, Assignments, and Schedule ] [ Blackboard ]

Latest Announcements

Course Description: We will implement and begin to analyze some of the fundamental data structures and algorithms. We will use Java for most of the course, but will also learn and use the C language to "peek under the hood" of program compilation, execution, and memory management. This course is required for all more advanced CS courses, as well as for anyone who wants to do serious programming for fun or profit.
Prerequisites: CS170 or equivalent; Working knowledge of Java
 
Topics:
  • Review of Java, object-oriented design
  • Basic software engineering issues: debugging, testing, exceptions, profiling
  • Basic algorithm analysis: Big-Oh notation, recurrences
  • Architecture and memory (in C): compilation/execution, memory allocation, pointers and references
  • Basic data structures: arrays, linked lists, analysis
  • Abstract data types (in Java), generics, and design issues
  • Basic Java UI/graphics
  • Recursion: implementation, analysis
  • Trees and Graphs: representation, properties, traversal, searching
  • Dictionaries and Maps: Binary search trees, Hashing
  • Sorting: basic sorting algorithms, performance characteristics
  • Applications: social networks, search, visualization
Textbooks:

 

 

 

 

 

Required
Michael Goodrich & Roberto Tamassia,
Data Structures and Algorithms in Java
(4th edition)

 

 

 

 

 

 

Required
Brian Kernighan and Dennis Ritchie,
The C Programming Language
(2nd edition) 
 

Grading: 50% homework: Approximately weekly, most assignments will involve programming.
30% midterms: 2 Midterm exams, each worth 15%
20% final: Final exam

Late homework policy: Up to 3 days (72 hours) late, 10% off for each late day.
 

Instructor:
 
Eugene Agichtein
http://www.mathcs.emory.edu/~eugene/
 
Office: N420 Math & Science Center. Telephone: (404) 727-7962
Office Hours: Tuesdays: 3-5pm, N420 Math & Science center (Unless cancelled. Check Google calendar above)
Wednesdays: 4-6pm, N420  Math & Science center
Otherwise: by appointment. Email: eugene@mathcs.emory.edu
   

Last modified: 9 September 2008