CS171: Introduction to Computer Science II: Introduction to Data Structures and Algorithms
Spring 2007

Tuesdays and Thursdays, 10am-11:15am
Math & Science Center
W303

[ Course Overview ] [ Lecture Notes and Schedule ] [ Assignments ] [ Discussion Board ] [ Announcements ]

Recent Announcements

Course Description: A continuation of CS170, where we implement and begin to analyze some of the fundamental data structures and algorithms. We will primarily use Java, but will also use C for some assignments. Details information available in the Handout #1: Class Information
Prerequisites: CS170 or equivalent; Working knowledge of Java
 
Topics:  ▪ Basic algorithm analysis: Big-Oh notation, recurrences
 ▪ Basic data structures: arrays, linked lists
 ▪ Low-level issues (in C) e.g., memory allocation, pointer arithmetic
 ▪ Abstract data types (in Java), with some material on OOP and design issues
 ▪ Recursion
 ▪ Trees: properties, traversal
 ▪ Sorting: basic sorting algorithms, performance characteristics
 ▪ More sorting: Quicksort, Mergesort, Heapsort, Radix
 ▪ Searching: basic searching algorithms, *intro to hashing*
 ▪ Graph traversal and *search*

* tentative topics - may not get to this
Textbook: Required: Robert Sedgewick, Algorithms in Java (Parts 1-4) (3rd ed). (also used in CS253).
Recommended: Kernighan and Ritchie, The C Programming Language (2nd ed.) 
Grading: 50% homework: Approximately weekly, most assignments will involve programming.
30% midterms: 2 Midterm exams, each worth 15%
20% final: Final exam
Instructor:
Eugene Agichtein
 
Office: N420 Math & Science Center. Telephone: (404) 727-7962
Office Hours: Tuesdays: 12:00pm-2:00pm
Thursdays: 12pm-2pm
Wednesdays: 5:00pm-6:30pm

Email: eugene@mathcs.emory.edu