Contact Information |
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/ds1 |
Class Hours: | CSC 300 Mon 5:45pm-9:00pm in CDM 202 |
CSC 402 Tue 5:45pm-9:00pm in Lewis Center 1507 |
Course Homepage for Lectures |
Course Homepage: https://reed.cs.depaul.edu/efredericks/ds1
Course D2L Sites:
Use D2L for homework submission, registering for exam proctoring, and for other information.
Discussion Group |
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.
Change your Server Nickname to be your first and last name. Use whatever firstname you prefer, but be sure that your last name is the same as it is in DePaul's Campus Connect.
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.
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.
Objectives |
Plus
resizable arrays
A data structure is a concrete implementation of an abstract type.
listtype in python
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 may be available before the lecture, but may change.
Prerequisites |
A prior programming class.
Textbooks |
Required Books
Core Java SE 9 for the Impatient, 2nd Edition [Amazon, Indiebound]
by Cay Horstmann (Addison-Wesley, 2017)
Available as Ebook
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!
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 last four lectures may be particularly useful.
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
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 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!
Policies |
Attendance
If you are in Section 901, you must attend class!
Late Work and Flex Days
Due dates for every homework and quiz are provided on D2L. Unless otherwise stated, assignments are due on those days. Homeworks must be submitted on D2L and emailed homework will not be accepted.
Every student is allotted up to two Flex Days
that can be used to submit late homeworks and get extended time to take quizzes. I recognize that sometimes life happens.
In these instances, you may use one of your allotted Flex Days. Flex Days allow you to submit any homework and/or quiz due on a previous day up to one day late without penalty. You can use these days for any deadline (except for exams) and for any reason.
Flex Days apply to a deadline day
. For example: if you use one Flex Day, both your homework and your quiz deadline will be extended to 5:45pm one day after the deadline, and you still have one more Flex Day you can use in the future. Note that you may not use more than one flex day for any given deadline day.
You do not need to provide me with the reason for using a Flex Day: simply send me a message on Discord or email me and tell me you are using a Flex Day. Flex Days are not automatic. You must send me a message before the Late Submission folder in D2L closes so I know you are using a Flex Day. When submitting late homework when using a Flex Day, please make sure to submit it to the correct folder on D2L. Do not simply note in your late folder submission that you are using a Flex Day. I do not always read the comments.
Once you've exhausted your two flex days, any homework assignment submitted after the deadline will only receive partial credit. A homework assignment submitted by 5:45pm the day after the due date will only be eligible for 80% of the maximum number of points for that assignment. Late homework submitted after 24 hours is not accepted.
Late quizzes outside of the use of a flex day are not accepted. Flex days cannot be used for quizzes you have alrady completed.
Flex days cannot be used for exams. Exam makeups are very difficult to arrange. I will only consider allowing a makeup exam if you work with the Dean of Students office as defined under Absence Notifications below.
Except as outlined above, 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.
If you experience extenuating circumstances (e.g., family emergency, you are hospitalized) that prohibit you from completing your quizzes and homework, please see Absence Notifications below. Exceptions to this policy will only be considered if you substantiate an extended absense with the Dean of Students office or if an accommodation is agreed to in consultation with the Center for Students with Disabilities.
Absence Notifications
In order to petition for an excused absence, students who miss class and/or assignments 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://offices.depaul.edu/student-affairs/support-services/academic/Pages/default.aspx. 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.
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.
Assessment |
Grades will be determined as follows.
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. Additional sanctions may apply.
Supplemental Instruction |
This course was selected to participate in DePaul's Supplemental Instruction (SI) program. SI is a series of peer-led review sessions based on an internationally-recognized evidence-based active learning model for students taking historically difficult courses. SI is free and for all students who want to strengthen their understanding of course material and improve their grades.
At each session you will be guided through collaborative learning strategies by your SI Leader, a DePaul student who has previously taken the course and done well. SI sessions offer a chance to work together with classmates to compare notes, practice important concepts, develop effective study methods, and test yourselves before quizzes and exams.
Your SI Leader will facilitate either (3) 1-hour SI sessions or (2) 1.5 hour SI Sessions per week between weeks 2-10. Sessions are offered on-campus and online. Please complete the poll your SI Leader will send to you the first week to help them plan the most accommodating session days/times and modality for you.
Session times can be found on the Supplemental Instruction website as well as the course D2L site by Monday Week 2. If you are unable to attend a session, you will be able to access the recordings of online sessions.
Your SI Leader: Om Dange | odange@depaul.edu