Pen or Pencil
Composition Book
Wired Earbuds (optional)
Please donate 1 box of tissues (optional)
Arrive to class on time!
Be prepared to learn
Work hard and learn from your mistakes
Be safe, respectful, and responsible
All students are expected to abide by the school's cell phone policy regarding phones, wireless earbuds, and smartwatches. Students are expected to use the lab-provided computers during class. Please do not use your personal laptop or tablet during class.
Major Grades: 60%
Minor Grades: 40%
Students are expected to submit work prior to the due dates. If a due date is missed, students are still expected to submit the work. Anything more than one week late will only be eligible for partial credit.
An absent student is allowed one make-up day for each absence day, plus one day.
Data Structures in computer science focuses on different ways to store data, beyond traditional variables and lists. In this course, students will learn about advanced data structures such as maps, queues, sets, etc. while applying them in larger, real-world assignments and projects.
The Data Structures course is designed for students that have previously completed a full year computer science course, such as AP CSA or CS 2. While C++ is used as the language for the course, the focus of the course is on understanding and applying advanced data structures. Prior C++ knowledge is not a prerequisite, however students should have a working knowledge of basic computer science concepts such as variables, control structures, and functions/methods in at least one programming language.
The course utilizes a blended classroom approach. The content is fully web-based, with students writing and running code in the browser. Each unit of the course is broken down into lessons. Lessons consist of tutorials, short quizzes, example programs to explore, and written programming exercises, adding up to over 100 hours of hands-on programming practice and projects in total. Each unit ends with a comprehensive unit test that assesses a student's mastery of the material from that unit.
Students write and run C++ programs in the browser using the CodeHS editor.
Each lesson includes at least one formative short multiple-choice quiz. At the end of each module, students take a summative multiple choice quiz that assesses their knowledge of the concepts covered in the module.
Students should have completed AP Computer Science A or Computer Science 2. Prior knowledge of C++ is not required, however students should have taken at least one other full length course in another language
In this module, students will learn basic C++ syntax while reviewing fundamental concepts that they may have seen in other languages, such as loops and conditionals.
Topics Covered:
Basic C++ Syntax and Program Structure
Review User Input and Output
Variables in C++
Conditional Statements
Loops
Functions
Expanding from module 1, students will explore a few basic C++ principles that they may not have seen in other courses, such as vectors, structs, file handling, error handling.
Topics Covered:
Defining and Using Vectors
How to Use Function Default Values
Defining and Using Structs
Reading and Writing to a File
Basic Error Handling
Students will learn how to create header files and libraries, as well as get a glimpse of the libraries we will use in the remainder of the course. They will also have an opportunity to use these libraries in a project.
Topics Covered:
Creating Header and Implementation Files
Using Libraries
In this module students will explore several different sequential data structures and apply these to real world projects. This module has 3 larger projects.
Topics Covered:
2D Vectors
Stacks
Queues
Building on the previous module, students will learn about associative data structures and how they can be used to solve problems.
Topics Covered:
Sets
Maps
Iterating Through a Data Structure
This module will focus on problem solving using recursive function calls. Students will learn several basic strategies and apply them to real-world problems.
Topics Covered:
Functional Recursion
Procedural Recursion
Recursive Backtracking
In this module, students will examine pointers and how they can be applied to different data structures to solve problems.
Topics Covered:
Pointer Values
Singly Linked Lists
Doubly Linked Lists
Graphs
The final project will involve students applying different data structures in an open ended problem format.
Objectives:
Apply multiple data structures to a real world problem
Allow students to design and build a significant project over the course of several weeks