CSC 402/Data Structures I
Syllabus
Course meeting details
Our class meets every Monday from September 11th to November 13th, 5:45pm to 9pm, with a 15-minute break at 7:15. At the moment the class is listed as meeting in room 1511 of the Lewis building (25 E. Jackson) but please check that shortly before the first class as room assignments sometimes change at the last minute.
Course description
From the course catalog: "A first course on data structures in Java for graduate students. 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. Prerequisite: CSC 401 (Introduction to Programming)"
More specifically, this is a second programming course for students who have had a term of programming or its equivalent. We assume that students know no Java and we will teach the language from its fundamentals.
Course web site
Except for the textbooks, all course materials will be available through DePaul's D2L web site. If you are not registered in the course you will not be able to see them but you may write to me to request them at my CDM email address.
There is one required textbook that comes in two forms. The book's title is Algorithms, 4th edition, by Robert Sedgewick and Kevin Wayne (Addison-Wesley, 2011). There is a version with videos (ISBN 978-0134384689) and one without (ISBN 978-0321573513). Many of you already have one of these as it's the same text as used in CSC 402. There is a good companion site. An on-line version is also available through Safari and that can be accessed through DePaul's library site.
There are also two free textbooks, available on-line, that you should consult. They are:
- Think Java: How to Think Like a Computer Scientist, by Allen B Downey;.
- Java for Python Programmers, by Brad Miller.
Learning outcomes
By the end of this course students should be able to:
- analyze a moderately complex problem;
- determine from the analysis which linear data structures are needed;
- from that analysis, create an algorithm that uses those data structures to solve the problem;
- translate the algorithm and data structures into a working Java program;
- debug a Java program to get it working;
- analyze an algorithm to determine its running time.
Schedule of topics
Week # (lecture date) | Topic | Reading in "Algorithms" |
---|---|---|
1 (9/11) | Python, Java, and Eclipse | Section 1.1 |
2 (9/18) | Data Abstraction, Objects, References | Section 1.2 |
3 (9/25) | Data Abstraction, Objects, References | Section 1.2 |
4 (10/2) | Linked Structures | Section 1.3 |
5 (10/9) | Linked Structures and Resizing Arrays | Section 1.3 |
6 (10/16) | Analysis | Section 1.4 |
7 (10/23) | Union Find | Section 1.5 |
8 (10/30) | Elementary sorts, Comparators | Section 2.1 |
9 (11/6) | Priority Queues and Heaps | Sections 2.4, 2.5, and 6.1 |
10 (11/13) | Mergesort and Quicksort | Sections 2.2 and 2.3 |
Assignments and grading
There will be weekly assignments which, for the most part, will involve programming but will at times require written answers. There will be a proctored final exam. The assignments will comprise 60% of the course grade, the final 40%.
Unless otherwise stated, you may work with other students on the weekly assignments. For example, it is permissible for several people (I recommend no more than three) to collaborate on writing a single program. However, every person must submit a solution through the course D2L's drop box for that program and that solution must list the names of everyone who collaborated. To be clear: For the weekly assignments in this course (unless otherwise stated) it is not plagiarism if you and other students submit the same program as long as every person lists in their submission everyone who worked on the common solution.
To get my help on a program, please either see me in person or send the .java
file to me as an email attachment (not as text copied into the mesage body). In the body of the email explain the problem you're encountering and this should be something more than "It doesn't work."
Once a program is submitted to its D2L drop box, it can be graded. In other words, be aware that submissions may be graded before the deadline. Don't submit until you're sure that you want the program graded.
The resulting overall percentage will be translated into a letter grade as follows:
Letter | Percentage range |
---|---|
A | 95-100 |
A- | 90 - <95 |
B+ | 87 - <90 |
B | 83 - <87 |
B- | 80 - <83 |
C+ | 77 - <80 |
C | 73 - <77 |
C- | 70 - <73 |
D+ | 65 - <70 |
D | 60 - <65 |
F | <60 |
Participation policy
For students in the in-class section, attending every class is required.
Academic Integrity Policy
This course will be subject to the academic integrity policy passed by our faculty. More information can be found at http://academicintegrity.depaul.edu/. I strongly recommend that you read this! It explains both your rights and your responsibilities as a student on matters of academic integrity.
Communication
All communication will be done in one of three ways:
- Announcements in class. You are responsible for anything and everything I say in class.
- Email from me. You can send email to me at jrogers@cs.depaul.edu.
- Announcements on the D2L web site.
When you send me email, two requirements:
- Please have the subject line begin with
CSC 402:
- Make sure your full name appears somewhere in the message.
Office location and hours
My office is room 747 in the CDM building, 243 S. Wabash. My office hours can be found on my CDM homepage. My phone number is 312-362-8334 (dial 2-8334 from the 7th floor lobby phone).
Plagiarism
The university and school policy on plagiarism can be summarized as follows: Students in this course should be aware of the strong sanctions that can be imposed against someone guilty of plagiarism. If proven, a charge of plagiarism could result in an automatic F in the course and possible expulsion. The strongest of sanctions will be imposed on anyone who submits as his/her own work any assignment which has been prepared by someone else. If you have any questions or doubts about what plagiarism entails or how to properly acknowledge source materials consult the instructor.
Incomplete
An incomplete grade is given only for an exceptional reason such as, for example, a death in the family or a serious illness. Any such reason must be documented. Any incomplete request must be made at least two weeks before the final and approved by the Dean of the College of Computing and Digital Media. Any consequences resulting from a poor grade for the course will not be considered as valid reasons for such a request.
Resources for Students with Disabilities
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 either the PLuS Program, for Learning Disabilities and/or AD/HD, or the Office for Students with Disabilities, for all other disabilities, at:
Student Center, LPC, Suite #370
Phone number: (773) 325-1677
Fax: (773) 325-3720
TTY: (773) 325-7296