Coder Social home page Coder Social logo

introtopython's Introduction

SD10 Principles of Programming with Python Syllabus

Glossary of Terms

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.

Course Details

Duration

The course includes 36 hours of content delivered over nine modules.

Course Description & Learning Goals

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.

Learning Objectives

  • 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.

Requirements

Extended Program Requirements

  • 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.

Software & Technical Requirements

There are no additional hardware requirements for the Extended Program beyond what was required for the Introductory Course.

Grading

How Grades Work

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!

Starter & Solution Code

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.

Pulse Quizzes

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.

Course Overview: Day-by-Day Breakdown

Note: The terms module, class session, and day of class are used interchangeably.

Module 01

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.

01: Intro to Python Language

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)

Module 02

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.

02: Python Functions

4 hours

  • Lesson 1: Python Function Features
  • Lesson 2: Recursion
  • Lesson 3: More Python Function Features
  • Lesson 4: Python Function Practice Part 4 (Async)

Module 03

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.

03: Programming Paradigms

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)

Module 04

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.

04: Python Magic

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)

Module 05

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.

05: Web Development with Python part 1

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)

Module 06

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.

06: Web Development with Python part 2

  • Lesson 1: Requests and Redirects
  • Lesson 2: Database Integration with Flask
  • Lesson 3: Interacting with the Database
  • Lesson 4: APIs with Flask (Async)

Module 07

The seventh day of Principles of Programming with Python delves into computer science concepts, particularly data structures and algorithmic complexity.

07: Data Structures

  • Lesson 1: Overview and Algorithmic Complexity
  • Lesson 2: Data Structures
  • Lesson 3: Continued Data Structures
  • Lesson 4: Practice with Data Structures (Async)

Module 08

The eighth day of Principles of Programming with Python continues to delve into computer science concepts, particularly searching and sorting algorithms.

08: Searching and Sorting Algorithms

  • Lesson 1: Sorting Algorithms
  • Lesson 2: Sorting Algorithms Continued
  • Lesson 3: Binary Search
  • Lesson 4: BFS and DFS (Async)

Module 09

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.

09: Interview Essentials

  • Lesson 1: Problem Solving for Interviews
  • Lesson 2: Resume Workshop
  • Lesson 3: Technical Interviews
  • Lesson 4: Interview Practice (Async)

Course Assignments

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

introtopython's People

Contributors

dortiz1011 avatar bforlemu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.