CS2852: Data Structures
Outcomes
On successful completion of this course, the student will:
- understand and apply complex data structures and algorithms.
- use appropriate algorithms (and associated data structures) to solve problems.
- have a thorough understanding of commonly used library data structures.
- be able to analyze the time complexity of algorithms.
- understand the use of recursion in problem solving.
- be able to use data structures in software design and implementation.
- be able to apply standard library data structures in software design.
- be able to select appropriate data structures for a given application.
General Course Policies
Please review the general course policies webpage.
Textbook
Data Structures Abstraction and Design Using Java 4th Ed., by Koffman and Wolfgang, Wiley, 2021. ISBN: 978-1-119-70359-4
Lecture Notes and Group Participation (10%)
Pre-recorded lectures are linked from the schedule page and in Canvas. You must watch, take notes on all of the videos, and upload the notes in Canvas prior to class. Note: You may refer to your notes during exams, so it will benefit you to take good notes.
You will be assigned to a group. Each group will meet with me for 30 minutes during each class (except for exam days). This is a time to ask questions about the lecture material. If no one has questions, I plan to ask you questions to help reinforce the material. You should join the channel for your group prior to the scheduled meeting time. You are encouraged to use these meetings before I join and/or after I leave to study with each other.
Your grade for this component will be primarily based on your submitted notes but may be influenced by your engagement when we meet. An unexcused absence from the group meeting will result in zero credit for the notes assignment.
There are a total of 13 grades, the lowest two scores will be dropped.
Laboratory Assignments (30%)
All Lab assignments are worth 100 points per week. A 50% penalty may be assessed for all submissions that do not meet the coding standard guidelines. 1pm to 2:30pm of each class will be time reserved for group meetings. 2:30pm-2:50pm is time to work on lab. I plan to be available to answer questions from 2:30pm until 3:30pm each Tuesday/Thursday.
Lab assignments are due on Mondays at 11pm. I will have office hours 1pm - 3pm on Mondays. I'm happy to have you come in person to my office or contect with me through Teams.
Exams (40%)
An exam will be given on Thursdays of every even week. The lowest exam score will be dropped.
Final Exam (20%)
The final exam will be comprehensive and is scheduled for August 15, 2023.