In Object Relational Mapping, the second course in Wizard Level 3 of our high school program, students are introduced to an ORM (Object Relational Mapping) library called SQLAlchemy. ORMs make managing a database much more straightforward for developers and allow them to use Object-Oriented Programming (OOP) paradigms to perform standard database operations instead of raw SQL queries. While understanding how to author basic SQL queries is an essential skill, most developers use an ORM in the real world. The exposure to an ORM library and the OOP paradigm gives students a robust set of abstractions to work with when building more extensive and complicated applications. After completing Object Relational Mapping, students are ready to move on to the next course in our structured curriculum: DevOps and Software Engineering.
When students complete Object Relational Mapping, they will be able to:
- Use SQLAlchemy, an Object Relational Mapping (ORM) library, to manage interactions with a database in their applications
- Define relationships between relational database tables using database design best-practices
- Model application resources (such as user accounts, shopping cart items, etc.) using the principles of Object-Oriented Programming (OOP)
These courses must be completed before Object Relational Mapping:
- Wizard Level 1
- Wizard Level 2
- Wizard Level 3, Course 1 : Mastering MVC Framework
- 1. Introduction to Object-Oriented Programming
In the first lesson of this course, students learn about the conceptual difference between Object-Oriented Programming and Procedural Programming. They discuss some drawbacks to the “Cooking Recipe” programming method. Students create a superhero console to gain an understanding of how to add instance attributes and methods in Python.
- 2. Constructors in Object-Oriented Programming
In this lesson, students learn about constructors, a compulsory part of OOP programming. They see the benefits of using a constructor and, by the end of this class, they implement a celebrities page using constructors. They also learn about parameterized constructors and validate the attribute values inside of them. Students use exceptions to throw an error when a wrong attribute value is entered.
- 3. Encapsulation in Object-Oriented Programming
In this lesson, students discuss the idea behind encapsulation and why they need it in object-oriented programming. Students fix a bug from their previous lesson code while implementing encapsulation. They learn about private attributes and use Get & Set methods. As a bonus, they also use the DateTime module to find out the year by which their celebrity would be 100 years of age.
- 4. Inheritance in Object-Oriented Programming
In this lesson, students revisit the DRY principle while learning a fundamental OOP concept, inheritance. They learn how to share the attributes and methods among multiple classes. Using these concepts, they create a love calculator by inheriting it from a Calculator class.
- 5. Introduction to Object Relational Mapping
In this lesson, students revisit how to store data in a database. They implement OOP concepts used to interact with a database using ORM. ORM allows a programmer to use Python language to get data instead of using SQL queries. By the end of this class, they are able to query the Chinook database using ORM methods.
- 6. Creating Data Using ORM
In this lesson, students revise the ORM concepts they learned in the previous lesson to create their bucket list and save it in the database. They learn how to create new tables in the database using an OOP class. In addition to that, they also filter the data retrieved by the database using the filter() function.
- 7. CRUD operations using ORM
In this lesson, students revisit the concept of CRUD operations in the database. They identify the create and retrieve operations implemented in the previous lesson. Students learn how to do an update and delete operation using SQLAlchemy methods. By the end of this class, students will create an inventory management system that includes functions for discontinued products and price hikes. As a bonus, they learn how to update multiple rows in the database.
- 8. Creating and Managing Relationships in Data
In this lesson, students revisit the foreign key and join queries to combine data from multiple tables. They’ll also learn a new database concept called relationships. They explore all three types of database relationships and implement the one-to-many relationship between a team and its players. While doing this, they also learn how to add multiple objects to the database at once.
- 9. Implementing CRUD in Flask App
In this lesson, students revisit their bucket list project and create a flask app out of it. They use the same database model, but revise some flask concepts like variable routes. By the end of this class, they will have a complete working bucket list app in which they can add and update activities.
- 10. Continuing with Relationships in Data
In this lesson, students take all the ORM concepts learned so far and plug them into a Flask app. They are introduced to a new module, Flask-sqlalchemy. It’s very similar to SQLAlchemy module, with a few newer classes and functions that make it easier to link it with the Flask app. In addition to that, they also implement a one-to-one relationship between a coach and a team.
- 11. Final Project – I
In this lesson, students use the concepts they learned throughout their course. They covered the fundamentals of OOP and used them to implement the database operations using ORM. In this class, they start their final project, a Superhero console. By the end of this class, they can add and delete superheroes in the console.
- 12. Final Project – II
In this lesson, students complete the OOP course. They implement all of the concepts from OOP to those in ORM. They execute CRUD operations and relationships between multiple tables. They also complete their final project, a Superhero console, and add a one-to-many relationship.
All students start in Intro to Python at Wizard Level I. If you have previous coding experience, take the Advanced Placement test. Returning students can continue with the class where they left off.
#1 Most Comprehensive Program for Your Student’s Success!
The CodeWizardsHQ program comes with everything your child needs to be successful in learning to code.
All of the below are included at no extra cost.
Course Duration & Time Commitment
All courses are 12 weeks long. A Wizard will receive a certification for their achievement at the end of the course.
Expect a weekly time commitment of 2-3 hours. 55 minutes of class time, plus 1-2 hours of practice time, with instructor support throughout, including weekends.
Our goal is to make all our students successful. If your child is not happy with our program, please notify us within the first four class sessions and you will receive a full refund. See refund details.
Get Your Wizard Started
Start coding with our experienced teachers today.
Enroll risk-free with our 4 session money-back guarantee. Full guarantee details.