Advanced Software Development Life Cycle

Before students begin to get their hands dirty with code, we discuss the software development lifecycle. Here, we will talk about how we go from an idea to a product as well as best practices to look out for as we move forward.

Python Application Project

During this one week period, students will take on their first large project that encompasses everything we have learned so far. After being given the product requirements, they will discuss in lecture the approach they will take before completing the assignment. Students will then submit a fully functional Python application.


Working with Databases

Students learn how to store, delete, manipulate and query data that can be saved long term in a database. Here, students will master database schemas and SQL syntax.

Restful APIs

Having learned about object oriented programming and how to store data in a database in the first two units, students will begin writing their first restful API. After first grasping the knowledge of how APIs work, they will begin to put all the pieces together so that our first end-to-end projects can be written. Students will learn about the different frameworks and how to interact with them.


Now that students have built their first Restful APIs, it’s time to discuss security and how to restrict access to user data. Here, they will create an authentication layer on top of their API powered by OAuth.

Deploying to Infrastructures

Students here learn specifically what different infrastructure and environments are, why they are important, and how to deploy to them. We will also review configuring specific settings for each environment and complete the software development lifecycle by testing in development and taking our APIs all the way to production.

Unit Testing

Up to this point, students have been testing their functionality manually. Now, it’s time students take this to the next level and begin writing unit tests to confirm the expected results of their logic. Here, we will also review best practices when unit testing and how we can automate the process via continuous integration.