Data Structures – CS 3303
This course introduces the fundamental concepts of data structures and the algorithms that proceed from them. Although this course has a greater focus on theory than application the assignments, examples, and cases introduced throughout the course help to bridge the gap between theoretical concepts and real world problem solving. We will be using a software tool that will enhance our understanding of the operation and function of the data structures and algorithms explored throughout the course by visually animating examples of data structures and algorithms so that we can understand their operation. Key topics within this course will include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, tress, and graphs), and the basics of algorithmic analysis.
Learning Objectives and Outcomes:
By the end of this course students will be able to:
- Implement basic data structures and algorithms using the Java language.
- Select the appropriate data structure or algorithm to solve a problem.
- Apply methods of performance evaluation including asymptotic analysis, to assess data structures and associated algorithms.
- Develop an understanding of standard data structures, including lists, stacks, queues, binary search trees, and hash tables and be able to articulate the characteristics and operation of each.
Course Schedule and Topics
This course will cover the following topics in eight learning sessions, with one Unit per week. The Final Exam will take place during Week/Unit 9 (UoPeople time).
Week 1: Unit 1– Introduction to Data Structures and Algorithms
Week 2: Unit 2- Algorithm Analysis
Week 3: Unit 3– Lists, Stacks, Queues, and Dictionaries
Week 4: Unit 4– Binary trees
Week 5: Unit 5 – Non-binary Trees
Week 6: Unit 6- Internal Sorting techniques and algorithms
Week 7: Unit 7- File Processing and external sorting
Week 8: Unit 8- Searching and indexing techniques and algorithms
Week 9: Unit 9- Review Final Exam
Learning Guide
The following is an outline of how this course will be conducted, with suggested best practices for students.
Unit 1: Introduction to Data Structures and Algorithms
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Make entries to the Learning Journal
- Take the Self-Quiz
Unit 2: Algorithm Analysis
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Make entries to the Learning Journal
- Take the Self-Quiz
- Optionally watch the online video lectures on Asymptotic Analysis presented at MIT
Unit 3: Lists, Stacks, Queues, and Dictionaries
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment
- Make entries to the Learning Journal
- Take the Self-Quiz
Unit 4: Binary Trees
- Peer assess the Unit 3 assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment
- Make entries to the Learning Journal
- Take the Self-Quiz
Unit 5: Non-Binary Trees
- Peer assess the Unit 4 assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Make entries to the Learning Journal
- Take the Self-Quiz
- Take the Graded Quiz
Unit 6: Internal Sorting techniques and algorithms
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment
- Make entries to the Learning Journal
- Take the Self-Quiz
Unit 7: File processing and external sorting
- Peer assess the Unit 6 assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Make entries to the Learning Journal
- Take the Self-Quiz
Unit 8: Searching and Indexing Techniques and Algorithms
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Make entries to the Learning Journal
- Take the Self-Quiz
- Read the Unit 9 Learning Guide carefully for instructions on the Final Exam
- Take the Review Quiz
Unit 9: Course Review and Final Exam
- Read the Learning Guide and take the Review Quiz, if you haven’t already done so
- Prepare for, take, and submit the Final Exam
- The Final Exam will take place during the Thursday and Sunday of Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instruction.