Skip to content

Sukhrobjon/CS-2.1-Trees-Sorting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS 2.1: Advanced Trees & Sorting Algorithms

Course Description

In this course students will implement and test advanced data structures and algorithms, benchmark performance, analyze algorithmic complexity, explore trade offs in performance and memory usage, and draw out elegant problem-solving techniques.

Key concepts include sorting algorithms, divide-and-conquer recursion, heaps, tries, self-balancing trees, and execution trees. Students will build an original project that applies these data structures to real-world problems such as autocomplete, family trees, and board games.

Students will also write technical articles about these topics to deepen their understanding and create their online presence as knowledgeable and proficient software engineers.

Test

Repository Setup

⚠️ Important: Please follow these instructions exactly to set up your clone of this course repository.

Schedule

Course Dates: Tuesday, October 22 – Thursday, December 12, 2019 (7.5 weeks)

Class Times: Tuesday & Thursday 3:30–5:20pm

Class Date Topics
1 Tue, Oct 22 Iterative Sorting Algorithms
2 Thu, Oct 24 Divide-and-Conquer Recursion
3 Tue, Oct 29 Recursive Sorting Algorithms
4 Thu, Oct 31 Recursive Sorting Algorithms Recap
5 Tue, Nov 5 K-ary Search Trees & Tries
6 Thu, Nov 7 Autocomplete Challenges
7 Tue, Nov 12 Rotating Binary Search Trees
8 Thu, Nov 14 Multiple Key Search Trees
9 Tue, Nov 19 Trees Project Kickoff
10 Thu, Nov 21 Self-Balancing Trees Recap
11 Tue, Nov 26 Trees Project Lab Day
Thu, Nov 28 No Class (Thanksgiving Break)
12 Tue, Dec 3 Priority Queues & Heaps
13 Thu, Dec 5 Integer Sorting Algorithms
14 Tue, Dec 10 Sorting Algorithms Comparison
15 Thu, Dec 12 Trees Project Presentations

Prerequisites

Students must pass the following course and demonstrate mastery of its competencies:

Learning Objectives

By the end of this course, students will be able to:

  • implement and compare several sorting algorithms and know when to use which ones
  • apply divide-and-conquer recursion techniques to elegantly solve complex problems
  • analyze complexity of recursive algorithms with recurrence relations and master theorem
  • implement abstract data types including priority queues, binary heaps, and tries
  • implement self-balancing tree structures including AVL trees, splay trees, and 2-3 trees
  • implement tree traversal algorithms: depth-first and breadth-first ordering
  • utilize bit manipulation algorithms to store and access information in individual bits

Evaluation

To pass this course, students must meet the following requirements:

  • No more than two unexcused absences ("no-call-no-shows")
  • No more than four excused absences (communicated in advance)
  • Make up all classwork from all absences
  • Finish all required tutorials and projects
  • Pass the summative assessment (final exam)

Make School Policies

About

CS-2.1-Tree-Sorting class at Make School

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages