CSC300: Syllabus

Contact Information

Instructor:James Riely
Home Page:https://fpl.cs.depaul.edu/jriely
Email:[email protected]
Phone:1.312.362.5251
Address: School of Computing, DePaul University
243 South Wabash Avenue
Chicago, IL 60604-2301
Office:CDM 845
Office Hours: Tue 1:00pm-2:00pm in CDM 845 and https://depaul.zoom.us/j/93726990547
Class Page:https://fpl.cs.depaul.edu/jriely/ds1/
Class Hours: Tue/Thu 10:10am-11:40am in CDM 228
Course Homepage for Lectures

Course homepage: https://fpl.cs.depaul.edu/jriely/ds1/

Discussion Group

We will use zoom for live discussion during class meetings. To join a meeting, use the link listed on the D2L calendar of events.

We will use discord as a discussion forum for class.

The discussion forum is an extension our time in class. This is particularly great for students that miss a class meeting. If you are watching the class online, you should write down any questions that arise, including the time from the recording for reference. Then send the list of questions to me, and I will post a reply to the group.

Overview

This is the first course in a two-course sequence on data structures using Java. The course introduces basic Java programming, reviews recursion, introduces asymptotic notations, and focuses mainly on linear data structures including arrays, linked lists and their variants, stacks and queues, and data structures supporting disjoint-set operations. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications covered highlight and exploit the unique characteristics of the data structures, and emphasize problem solving and recursive thinking.

Objectives

Programs are not just for computers: We use them to communicate to other people.

Plus

A data structure is a concrete implementation of an abstract type

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

A prior programming class, ideally in Python, C, or Java.

You should be familiar with:

Textbooks

If you are delayed in getting the texts, you can view them online at O'Reilly.

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 edition is fine.

Algorithms 4e [Amazon, Indiebound]

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

Available as Ebook

(Online version)

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

Companion site.

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.

Available as Ebook

More Books

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.

Effective Java 3e [Amazon, Indiebound]

by Joshua Bloch (Addison-Wesley, 2008)

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

In depth lectures are pre-recorded. Links are available in the slides for each lecture and on this Youtube Lecture Playlist.

Class meetings will be spent

Class meetings are recorded for access after class.

Class meetings may be shorted than the allocated class time

Activities each week:

Getting the homework correct is not enough. ChatGPT can do it for you!

You must be able to demonstrate understanding by repeating the exercise on paper.

Attendance

You must attend class!

Assessment

All students are expected to abide by DePaul'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.

Grades will be determined as follows.

You must pass the final exam in order to pass the course.