CSC301/CSC403: Syllabus

Contact Information

Instructor:James Riely
Home Page:http://fpl.cs.depaul.edu/jriely
Email:jriely@cs.depaul.edu
Phone:1.312.362.5251
Address: School of Computing, DePaul University
243 South Wabash Avenue
Chicago, IL 60604-2301
Office:CDM 846
Office Hours: Tue/Thu 12:30pm-1:20pm in CDM 846
Mon/Wed 2:00pm-3:00pm in CDM 846
Class Page:http://fpl.cs.depaul.edu/jriely/ds2/
Class Hours: Tue/Thu 1:30pm-3:00pm in CDM 226 [Section 501 (undergrad)]
Mon/Wed 3:10pm-4:40pm in CDM 220 [Section 502 (undergrad)]
Wed 5:45pm-9:00pm in Lewis 1007 [Section 801 (grad)]
Online, Anytime [Section 810 (grad)]

Mailing List

We will use Piazza for online discussion.

You should have received an invitation to join the class. If you have not, please contact me.

Overview

This is the second course in a two-course sequence on data structures using Java. The course focuses mainly on the following data structures, their analysis, and their applications: trees (search trees, balanced search trees), heaps, associative arrays, hash tables, and data structures for representing graphs. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications discussed highlight and exploit the unique characteristics of the different data structures, and emphasize problem solving and recursive thinking.

Objectives

Plus

Lecture Plan

The following lecture plan is tentative and subject to change as the course progresses.

Lecture slides will be available after each lecture. They will not normally be available before the lecture.

Prerequisites

CSC300/402 C- or better.

Textbooks

If you are delayed in getting the texts, you can view them online via Safari.

Required Books

Algorithms 4e [Amazon, AddAll]

by Robert Sedgewick and Kevin Wayne (Addison-Wesley, 2011)

The book has a great companion site.

Do not get any prior edition!

Available as Ebook

Available online via Safari

How to Think Like a Computer Scientist

by Allen B. Downey.

Free!

An good introduction to Java.

Skip the GridWorld chapters, which are intended to help with the AP exam in CS.

See also these lecture notes from MIT. The first three lectures are particularly useful.

Java for Python Programmers

by Brad Miller.

Free!

See also here.

Introduction to Programming in Java (Chapter 1)

by Robert Sedgewick and Kevin Wayne

Free!

This is the first chapter of the introductory text written by the authors of our primary textbook.

It presents the same material as section 1.1 of the primary text, but at a slower pace.

Recommended Books

Schaum's Outline of Data Structures with Java 2e [Amazon, AddAll]

by John Hubbard (Schuams, 2009)

This book is a good source of example problems with solutions.

Available as Ebook

Effective Java 2e [Amazon, AddAll]

by Joshua Bloch (Addison-Wesley, 2008)

Available as Ebook

Available online via Safari

The algorithms text describes all of the Java that is required for the class. The discussion is terse, making it an excellent reference. If you would like a longer discussion of Java, you might want a supplementary text. In this case, you might consider one of the following.

Expectations

We will discuss concepts in class.

You will have weekly programming assignments.

Attendance

Assessment

Grades will be determined as follows.

DePaul's academic integrity policy