Contents [0/14] |
Video [1/14] |
Course Overview [2/14] |
Course Objectives [3/14] |
Prerequisites [4/14] |
The foundation of a CS education [5/14] |
The curriculum [6/14] |
Getting a job [7/14] |
This class will be "lightly" flipped [8/14] |
Assessment [9/14] |
Course Homepage for Lectures [10/14] |
Discussion Forum [11/14] |
Contact Information [12/14] |
Textbooks [13/14] |
Policies [14/14] |
(Click here for one slide per page)
Video [1/14] |
There is no video for these slides. We will go over the material in class.
If you missed the class meeting, watch the recording on D2L:
Course Overview [2/14] |
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.
Course Objectives [3/14] |
Programs are not just for computers: We use them to communicate to other people.
Plus
resizable arrays
A data structure is a concrete implementation of an abstract type
listtype in python
Prerequisites [4/14] |
A prior programming class, ideally in Python, C, or Java.
You should be familiar with:
The foundation of a CS education [5/14] |
Discrete Math (MAT140/141): Logic, counting, probabilities
Introductory Programming (CSC241/242 or CSC243): Programs as instructions
Data Structures (CSC300/301): Programs as ideas
Systems (CSC373/374): How programs execute
The curriculum [6/14] |
Getting a job [7/14] |
I recently received a request from a former student for qualified programmers:
I was volunteered to be part of a hiring team so have been spending lots of my time interviewing candidates, many of whom are not very talented. ... You should see these resumes. These guys have seven years of experience doing java web development, they list 80 java and web related acronyms on their resumes, and they can't write a method that prints the odd numbers from 1 to 100.
If you are doing an online screening interview and you paste 400 lines of code you found on Chegg or GeeksForGeeks, you are not getting the job!
This course will help you in your interviews.
This class will be "lightly" flipped [8/14] |
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.
Assessment [9/14] |
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.
20% Online quizzes
25% Programming assignments
55% Exams
You must pass the final exam in order to pass the course.
Course Homepage for Lectures [10/14] |
Course homepage: https://fpl.cs.depaul.edu/jriely/ds1/
Discussion Forum [11/14] |
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.
Contact Information [12/14] |
Instructor: | James Riely |
Home Page: | https://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 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 |
Textbooks [13/14] |
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
Older 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
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.
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
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.
Policies [14/14] |
You must attend class!
Incomplete Grades
An incomplete grade is defined in the Student Handbook as follows (note that the policy in the undergraduate student handbook applies to both undergraduate and graduate students): A temporary grade indicating that the student has a satisfactory record in work completed, but for unusual or unforeseeable circumstances not encountered by other students in the class and acceptable to the instructor is prevented from completing the course requirements by the end of the term. Please see https://www.cdm.depaul.edu/Current%20Students/Pages/Grading-Policies.aspx for additional information.
Retro-Active Withdrawal
CDM understands certain extenuating circumstances can hinder one's ability for academic success and completion of course work. Please see https://www.cdm.depaul.edu/Current%20Students/Pages/Enrollment-Policies.aspx for additional information.
Absence Notifications
In order to petition for an excused absence, students who miss class due to illness or significant personal circumstances should complete the Absence Notification process through the Dean of Students office. The form can be accessed at https://studentaffairs.depaul.edu/dos/forms.html. Students must submit supporting documentation alongside the form. The professor reserves the sole right whether to offer an excused absence and/or academic accommodations for an excused absence.
Students with Disabilities
Students seeking disability-related accommodations are required to register with DePaul's Center for Students with Disabilities (CSD) enabling you to access accommodations and support services to assist your success. There are two office locations. See https://go.depaul.edu/csd
Students who are registered with the Center for Students with Disabilities are also invited to contact me privately to discuss how I may assist in facilitating the accommodations you will use in this course. This is best done early in the term. Our conversation will remain confidential to the extent possible.
Revised: 2024-03-23 14:51