Algorithms and Abstract Data Structures
Hüseyin Yağız Devre’22
Princeton University
Hüseyin Yağız Devre’22
Princeton University
Course Description:
This course primarily follows a curriculum similar to Princeton University’s COS226 Algorithms and Data Structures course. In this course, we will focus on well-known algorithms, such as sorting algorithms as well as “not so well-known” algorithms that we use on a daily basis, such as the autocomplete algorithm. In this course, we will investigate the basics of data structures and their implementations. We will start with a recap of Java programming language, which will be the main programming language of the course. Next, we switch the gears up and investigate the algorithms, such as Dijkstra’s Algorithm, and data structures, such as Tries and Priority Queues, with their implementations. You will also design and implement 2 of these algorithms and data structures with the final project.
Class Size: 12 Max
Prerequisite: Preferably 11th and 12th graders with a background or interest in CS and Java
Length: 7 Weeks
Goals:
Establish a firm understanding of algorithms and data structures before college.
Understand the theory and the usage behind the data structures
Outline how and why some algorithms are better in some conditions than others
Implement the algorithms learned with a final project.