We may use different verbiage than you are accustomed to, and some terms may be used interchangeably. Below are definitions describing the structure of the program and the way content is delivered.
- Program: Refers to the Software Development Program
- Course: This is the largest unit within a program. The Software Development Program is divided into 11 courses, with each covering a broad knowledge area.
- Introductory Course: This is the first course of the Software Development Program. Attending and passing the assessment for this course is required for entry into the Extended Program.
- Extended Program: Courses 2-11 of the Software Development Program
- Lesson: One hour of course content (e.g., lectures, labs, code-alongs, homework, group activities, etc.)
- Module: This term is synonymous with a day of class or class session. Modules typically include three to four lessons. Class days may be of varying lengths, so sometimes the fourth lesson will be homework or content that is meant to be read or completed outside of class time.
- Asynchronous: This term describes content that is intended to be read or completed outside of class time. It may include homework or optional content.
The course includes 36 hours of content delivered over nine modules.
The Principles of Programming with Python course introduces you to a second programming language. The first half of the course demonstrates how the core principles of programming you've learned thus far through JavaScript can be applied to learn other languages. The end of the course delves into algorithms and data structures, preparing you for technical interviews.
- Define the basics of Python syntax and functionality by relating them to JavaScript.
- Analyze the object-oriented and functional programming paradigms through the lens of Python.
- Develop a full-stack web application with Python.
- Use data structures and algorithms to solve common interview challenges.
- Attend at least 80% of classes.
- Submit at least 80% of the assignments.
- Adhere to the code of conduct.
- Earn a passing grade on all milestone projects.
There are no prerequisites to pass individual courses in the Extended Program. However, the assignments and attendance in this course will contribute to your cumulative grade. Also, the concepts learned in this course are fundamental to the rest of the program. It is not recommended to miss any of the material.
If you miss a class session, please work with your instructional team to catch up on your own time.
There are no additional hardware requirements for the Extended Program beyond what was required for the Introductory Course.
For assignments both inside and outside of class, the grading will be a simple pass/fail system. We do not want to become bogged down in a complex grading system for day-to-day activities. The table below shows what to expect:
Assignment Grading Criteria | Done? |
---|---|
Was the assignment submitted via Canvas? | Yes |
Was the assignment at least 50% complete?* | Yes |
Result: | Pass |
*Note: An assignment does not necessarily need to be complete for you to receive credit. We encourage you to submit incomplete work on which you have spent at least an hour, even if you got stuck. Remember, we learn when we push the boundaries of our comfort zone!
Most activities, including labs, homework assignments, and in-class code-alongs, will come with either a GitHub repository that contains both starter and solution code on different branches or a Replit. The solution code is provided for you to check your work. If you get stuck, it can help you get past the blocker. This is different than many other programs for the following reasons:
- We want you to have a lifeline for help when coding by yourself.
- We want to reduce the temptation to copy and paste. At the end of the day, you are responsible for knowing the concepts when walking into your first job. Copying and pasting answers will not help your future self.
- This program is designed for adults, and we believe you will use the solution code responsibly and in a way that best serves you personally.
- Knowing how to apply a solution to a unique situation or integrate it with existing code is often more important for a coder than simply knowing the solution code. We believe this approach best reflects actual working conditions for software developers.
Like the Introductory Course, the Extended Program contains many quizzes for you to complete on your own time. Finishing these self-graded quizzes will unlock the next lesson's content in Canvas. Instructors do not need to ask about or grade these pulse quizzes. They are intended to be study guides and checkpoints for you.
Note: The assessments in the Extended Program are self-guided, self-paced, and self-corrected quizzes that help you review topics covered in class. You are encouraged to complete the assessments on your own time.
Note: The terms module, class session, and day of class are used interchangeably.
The first day of Principles of Programming with Python starts with an introduction to the Python language. By comparing it to JavaScript, you will learn Python's syntax for declaring variables, functions, lists, dictionaries, and more data types. You will also learn basic function creation and set up Python on your local computer.
4 hours
- Lesson 1: Introduction to Python: Data Types
- Lesson 2: Continued Python Basics
- Lesson 3: Defining Python Functions
- Lesson 4: Local Python Setup (Async)
The second day of Principles of Programming with Python delves deeper into using Python functions to solve problems. Additionally, you will learn about Python's unique function features, such as multiple returns and arbitrary arguments.
4 hours
- Lesson 1: Python Function Features
- Lesson 2: Recursion
- Lesson 3: More Python Function Features
- Lesson 4: Python Function Practice Part 4 (Async)
The third day of Principles of Programming with Python will introduce the concept of object-oriented programming through a second language. Additionally, you will review functional programming concepts and learn to express preference for one paradigm or the other in interviews.
4 hours
- Lesson 1: Basic OOP
- Lesson 2: The Four Pillars of Object-Oriented Programming
- Lesson 3: Introduction to Functional Programming with Python
- Lesson 4: Reflecting on Coding Paradigms (Async)
The fourth day of Principles of Programming with Python will introduce several pieces of Python "magic", including iterable comprehensions, lambda functions, error handling, virtual environments, and magic methods.
4 hours
- Lesson 1: Functional Programming Tricks
- Lesson 2: Error Checking and Handling
- Lesson 3: Enabling VENV and Implementing Packages
- Lesson 4: Currency Exchange Emulator (Async)
The fifth day of Principles of Programming with Python introduces how Python can be used in web development with a web framework called Flask. You will start a mini-project called PetFax that will thread throughout the majority of the web development lessons.
4 hours
- Lesson 1: Intro to Web Development with Python
- Lesson 2: Flask Routes and the Application Factory
- Lesson 3: Blueprints and Views
- Lesson 4: Static Files and Styling (Async)
The sixth day of Principles of Programming with Python continues covering the Flask web framework to create a full-stack Python application. You will continue working on the PetFax mini-project. Finally, the async activity will cover how to create an API with Python and Flask.
- Lesson 1: Requests and Redirects
- Lesson 2: Database Integration with Flask
- Lesson 3: Interacting with the Database
- Lesson 4: APIs with Flask (Async)
The seventh day of Principles of Programming with Python delves into computer science concepts, particularly data structures and algorithmic complexity.
- Lesson 1: Overview and Algorithmic Complexity
- Lesson 2: Data Structures
- Lesson 3: Continued Data Structures
- Lesson 4: Practice with Data Structures (Async)
The eighth day of Principles of Programming with Python continues to delve into computer science concepts, particularly searching and sorting algorithms.
- Lesson 1: Sorting Algorithms
- Lesson 2: Sorting Algorithms Continued
- Lesson 3: Binary Search
- Lesson 4: BFS and DFS (Async)
The ninth day of Principles of Programming with Python focuses on preparing learners for interviews by introducing them to common interview formats and problem-solving skills, resume building principles, and giving learners practice in technical interview situations.
- Lesson 1: Problem Solving for Interviews
- Lesson 2: Resume Workshop
- Lesson 3: Technical Interviews
- Lesson 4: Interview Practice (Async)
Number | Assignment Name | Assigned | Due |
---|---|---|---|
1 | Local Python Setup | Module 01 | Module 02 |
2 | Python Function Practice Part 4 | Module 02 | Module 03 |
3 | Reflecting on Coding Paradigms | Module 03 | Module 04 |
4 | Currency Exchange Emulator | Module 04 | Module 05 |
5 | Static Files and Styling | Module 05 | Module 06 |
6 | APIs with Flask | Module 06 | Module 07 |
7 | Practice with Data Structures | Module 07 | Module 08 |
8 | BFS and DFS | Module 08 | Module 09 |
9 | Interview Practice | Module 09 | (Advanced Topics) Module 01 |