CSC403: Syllabus

Contents [0/11]

Course Overview [1/11]
Course Objectives [2/11]
Prerequisites [3/11]
Assessment [4/11]
Discussion Forum [5/11]
Course Homepages [6/11]
Contact Information [7/11]
Textbooks [8/11]
Expectations [9/11]
Policies [10/11]
Lecture Recordings for Asynchronous Students [11/11]

(Click here for one slide per page)


Course Overview [1/11]

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.

From Wired Magazine: Code is far from a utilitarian means to an end. Like painting or sculpting, it's a medium with which you can create something. And as such, code can take many forms: beautiful or ugly, elegant or clunky.

Course Objectives [2/11]

Plus

Prerequisites [3/11]

CSC402, C- or better.

Assessment [4/11]

Grades will be determined as follows.

I will drop one quiz and at least one homework assignment from your final grade.

DePaul's academic integrity policy

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Any submission for any assignment or exam in which there is evidence of an academic integrity violation is subject to sanction, up to and including failure of the course. At the very least, the student will receive a 0 for the assignment or exam in question. In the case of homework or quizzes, the student will receive a 0 for the assignment and the highest score for that category will be zeroed out. Additional sanctions may apply. Don't do it!

Discussion Forum [5/11]

We will use Discord as a discussion forum for class. It is my intention to create a learning community on Discord, so you should feel free to ask questions and engage with classmates on the material there.

Course Homepages [6/11]

Course Homepage: https://reed.cs.depaul.edu/efredericks/ds2

Course D2L Page: D2L

Contact Information [7/11]

Instructor:Eric J. Fredericks
Home Page:https://www.cdm.depaul.edu/Faculty-and-Staff/Pages/faculty-info.aspx?fid=1604
Email:eric.fredericks@depaul.edu
Phone:
Address: School of Computing, DePaul University
14 East Jackson Boulevard
Chicago, IL 60604
Office:Classroom
Class Page:https://reed.cs.depaul.edu/efredericks/ds2
Class Hours: Wed 5:45pm-9:00pm

Textbooks [8/11]

Required Books

Core Java SE 9 for the Impatient, 2nd Edition [Amazon, Indiebound]

by Cay Horstmann (Addison-Wesley, 2017)

Available as Ebook

(Online version)

Companion site.

Older or newer edition is fine.

Algorithms 4e [Amazon, Indiebound]

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

Available as Ebook

(Author videos) These are also for sale as an Ebook

Companion site. Includes Lectures, Slides, Demos

Do not get an older edition. They are completely different books.

Recommended Books

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

by John Hubbard (Schuams, 2009)

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

More Books

How to Think Like a Computer Scientist

by Allen B. Downey.

Free!

A 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 last four lectures may be particularly useful.

Java for Python Programmers

by Brad Miller.

Free!

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.

Effective Java 3e [Amazon, Indiebound]

by Joshua Bloch (Addison-Wesley, 2017)

Available as Ebook

(Online version)

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 [9/11]

We will discuss new concepts each week.

You will have assignments, including quizzes, most weeks. Some of the homework assignments are programming assignments and some assignments may be written assignments.

We will review homeworks and quizzes in class. We will go over concepts that students find particularly difficult.

Getting the homework correct is not enough. Simply getting programming homework to work once will not help you communicate to me that you understand the concepts you need to learn. You need to learn how to draw pictures diagramming concepts we are covering, and to write code on paper, without a compiler, notes, Google, etc.

Repetition and iteration are key to learning! I recommend that when you repeat homeworks on your own, you get used to writing Java code on paper. Write your code out on paper and then type it into IntelliJ IDEA. Compile and run the tests, and fix any problems. Spend no more than 20 minutes on any one problem per day. Keep doing this every day, and you will find that you will be able to write good clean code on paper that is intelligible to me when I'm grading your exams. If you write code on exams that indicates you have not internalized Java syntax and semantics, your exam grade will reflect this!

Deadlines are generally not individually negotiable. First of all, this course moves very fast and covers a lot of ground, so you will want to keep up with the material. Secondly, I want to get you feedback on your assignments quickly, so you can use that feedback as you study. And finally, I cannot keep up with grading multiple students' late assignments - it becomes very time consuming to context switch back to previous assignments.

Since I drop one quiz and at least one homework assignment, you are covered if you miss an assignment due to unforseen circumstances. Under no circumstances can deadlines be extended without working with the Dean of Students' office (see Absence Notifications below).

Policies [10/11]

If you are in Section 801, DePaul University, and I, expect you to attend class!

Lecture Recordings for Asynchronous Students [11/11]

Synchronous lectures are recorded for access after class.

You will find the lectures on D2L

COL-videos