CSC 402 Data Structures I
Summary
This course is a graduate-level introduction to data structures
using the Java programming language. The course introduces Java
programming from within the context of data structures. The course
covers arrays, linked lists, stacks and queues, data structures
supporting disjoint-set operations, and discusses recursion and
performance analysis. The implementation of the basic operations on
each data structure are discussed and analyzed in terms of their
efficiency.
Course Goals
By the end of the quarter, students will be able to...
- Write code using the Java language that implements fundamental data structures, sorts, and other problems of similar complexity
- Use a debugger to find problems in a program
- Write appropriate test code for a program
- Identify the efficiency class of simple algorithms
- Employ OO concepts, including data abstraction and encapsulation, when programming
Texts
Required
Algorithms, fourth edition, by Robert Sedgwick and Kevin Wayne (ISBN 0-321-57351-X).
Recommended (and free!)
How to Think Like a Computer Scientist by Allen B. Downey. Available online.
Java for Python Programmers by Brad Miller. Available online.
Introduction to Programming in Java (Chapter 1) by Sedgwick and Wayne. Available online. It covers the first chapter of the required text but at a slower pace.
Software
Java 8, Eclipse 4.4 (text editor), code from textbook
Grading
35% (70 points) |
Programming assignments (10 points each) |
10% (20 points) |
Quizzes (10 points each) |
20% (40 points) |
Take-home midterm exam |
35% (70 points) |
Final Exam |
Students receiving more than 90% of possible points are guaranteed at
least an A-, more than 80% at least a B-, more than 70% at least a C-,
and more than 60% at least a D.
All submitted work must be original work unless its source is clearly
referenced. Failure to clearly attribute quotes or designs from other
people's work constitutes plagiarism. Violations will generally
receive no credit for a given submission.
Programming assignments may be completed individually or in groups
of two or three. All group members are responsible for making sure
that everyone learns from the assignment.
Quizzes will cover content from the assigned readings and recent
lectures. They are offered online through D2L. Quizzes must be taken individually and within one week of their availability.
The midterm exam is an individual take-home exam. One part consists
of the kinds of questions that will appear on the final exam (good for
practice). The second part will involve writing code and submitting
it.
The final exam is a proctored, comprehensive exam. A major
component of the exam involves tracing, explaining and writing
code (on paper).
Prerequisites
CSC 401 or comparable programming experience
Course Policies
Students are expected to attend every class or watch the lecture
online.
Exams can be made up with a serious documented excuse
(e.g. illness, death in the family) and must be arranged as soon as
possible. Arrangements involving other excuses require prior
permission from the instructor.
Submitted assignments will be accepted up to 3 days late, with a 1 point
penalty. Assignments submitted more than 3 days after the due date
will not be accepted without an excused absence cleared
by the dean
of students office (see forms for submitting an excused
absence).
Additional assignments for extra credit will not be offered.
All grade challenges must be submitted in writing and include an
explanation why the given score or grade should be reconsidered.
Tentative Schedule
Week |
Topic |
Reading |
Assignment |
Quiz or Exam |
Jan 5 |
Java and Eclipse: arrays, iteration, static methods and recursion |
1.1 |
|
|
Jan 12 |
Data abstraction, objects, references |
1.2 |
Assignment 1 |
|
Jan 19 |
Collections, generics, array resizing |
1.3 |
Assignment 2 |
Quiz 1 |
Jan 26 |
Linked structures
| 1.3 |
Assignment 3 |
|
Feb 2 |
Linked structures continued |
1.3 |
Assignment 4 |
|
Feb 9 |
Worked example of a collection |
TBD |
|
|
Feb 16 |
Performance analysis
| 1.4 |
|
Midterm exam |
Feb 23 |
Simple sorts comparators
|
2.1 |
Assignment 5 |
|
Mar 2 |
Priority Queues and Heaps |
2.4, 2.5, 6.1 |
Assignment 6 |
Quiz 2 |
Mar 9 |
Mergesort and Quicksort |
2.2, 2.3 |
Assignment 7 |
|
Mar 16 |
|
|
|
Final Exam |
This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.
Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course
content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The
evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely
separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation.
Students complete the evaluation online in CampusConnect.
This course will be subject to the university's academic integrity policy. More information can be found at http://academicintegrity.depaul.edu/ If you
have any questions be sure to consult with your professor.
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.
All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.
Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that
you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296