The second of two courses that introduces students to programming and computational thinking, and prepares them for additional study across a breadth of programming fields. Students will develop an understanding of data structures and fundamental algorithms. The emphasis will be on (a) further refining their multiple introductory programming languages, and (b) understanding why diverse data structures exist, and how algorithms can be analyzed for their time and space complexity. Specifically, this course aims to have students work with and understand the list, stack, queue, tree, hash table, and graph data structures; a look at searching, sorting, and analysis of complexity will complement the presentation on the algorithms side.
Fixed Credit Value