Object-Oriented Programming and Data Structures with GenAI
Course description
This course focuses on developing the skills and underlying knowledge students need to write more efficient and complex programs. Using Python as the programming language, the content begins by exploring object-oriented programming and then moves on to exploring data structures. The curriculum provides instruction through guided inquiry activities and related slide decks, practice through lab and homework tasks, and assessment through unit quizzes and unit projects. The unit projects require students to synthesize various skills while developing larger programs. Students will learn best practices for using GenAI tools for writing larger programs. Use of any GenAI tool is acceptable.
Pre-requisites: Prior programming experience with Python and knowledge of fundamental computer science concepts is recommended. Students should be familiar with variables and operators, basic data types (strings, lists, dictionaries, etc.), conditional and iterative logic, functions and methods, and importing modules and working with files.
Course Language: Python
What students will learn
- Programming concepts, focused on object-oriented programming and various data structures that include stacks, queues, trees, and graphs. Explorations of the data structures focus on their key operations, analysis of the efficiency of these operations, and how to incorporate them into object-oriented programs.
- Programming skills, such as debugging code, testing code, and decomposing problems into functions.
- Best practices for using GenAI, including developing effective prompts, evaluating GenAI output, and identifying ways to leverage AI during the programming process.
Units
The total course is designed for a 15-week semester. Materials may be adapted to other schedules.
Unit 1: Foundational concepts
Unit 1 introduces the core concepts of object-oriented programming (OOP). Students will learn to create classes, objects, attributes, and methods, and explore advanced OOP principles like inheritance, polymorphism, and composition. This unit also focuses on decomposing problems for OOP and leveraging GenAI as a programming tool for these tasks.
- Unit 1 Module 1: Introduction to the course and object-oriented programming
- Unit 1 Module 2: Decompose problems into classes and their methods
- Unit 1 Module 3: Inheritance and debugging techniques
- Unit 1 Module 4: Composition
Unit 2: Introduction to Data Structures
Unit 2 introduces fundamental data structures beyond basic types. Students will explore lists, stacks, queues, and linked lists, understanding their operations and how to integrate them into object-oriented programs. The unit also covers assessing program efficiency using Big O notation and empirical performance methods, and designing effective test cases.
- Unit 2 Module 1: Lists and testing with the doctest module
- Unit 2 Module 2: Stacks and queues
- Unit 2 Module 3: Big O notation and empirical performance
- Unit 2 Module 4: Linked lists
Unit 3: Recursion and Trees
Unit 3 addresses recursion and the tree data structure. Students will gain a deep understanding of recursive methods and their practical applications. They will then explore binary trees and binary search trees, learning their operations, efficiency analysis, and implementation within object-oriented programs.
- Unit 3 Module 1: Recursion
- Unit 3 Module 2: Binary trees
- Unit 3 Module 3: Binary search trees
Unit 4: Dictionaries, Sets, and Graphs
Unit 4 concludes the course by introducing more advanced data structures: dictionaries, sets, and graphs. Students will master the operations and efficiency considerations for each, and learn to incorporate them into their object-oriented programs. The unit also covers different types of graphs and their representations.
- Unit 4 Module 1: Dictionaries and sets
- Unit 4 Module 2: Introduction to graphs
- Unit 4 Module 3: Directed and weighted graphs
- Unit 4 Module 4: Course wrap-up
Related resources
Navigate the course: Object-Oriented Programming and Data Structures with GenAI
Overview of course assets and guide to GenAI use
Object-Oriented Programming and Data Structures with GenAI - Navigate the course: A guide to assets and GenAI use