This is the 4th course in the intermediate, undergraduate-level offering that makes up the larger Programming and Data Structures MicroBachelors program. We recommend taking them in order, unless you have a background in these areas already and feel comfortable skipping ahead.

- Introduction to Programming in C++
- Advanced Programming in C++
- Introduction to Data Structures
- Advanced Data Structures

These topics build upon the learnings that are taught in the introductory-level Computer Science Fundamentals MicroBachelors program, offered by the same instructor.

This is a self-paced course that continues in the development of C++ programming skills. Among the topics covered is the development of more advanced command-line programs that utilize file processing, linked lists, stacks, queues, trees, binary search trees, and tree balancing algorithms to solve problems. Several implements are presented in the development of each data structure, including hash maps, AVL, and red and black trees. Students learn how to utilize and program these data structures through the lectures and the labs. C++ programming material is presented over eight weeks of interactive lectures with quizzes to assess your understanding of the material. Students will experience hands-on practice writing C++ programs through twenty-two lab challenges.

This course focuses on the efficiency of different data structures to solve various computational problems. A data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data. The data structures and algorithms learned in this class are the foundation of modern programming.