YEAR 1 SEMESTER 2: PYTHON FOR BEGINNERS IN SOFTWARE PROGRAMMING
DURTION: FOUR WEEKS (40 HOURS)
TABLE OF CONTENTS
MODULE TOPICS
WEEK 1 Chapter 1: Getting Started
Monday: Introduction
o What Is Python?
o Why Python?
o Why This Book?
o Who This Book Is For?
o What You’ll Learn
Tuesday: Setting Up Anaconda and Python
o Cross-Platform Development
o Installing Anaconda and Python for Windows
o What Is Anaconda?
o What Is Jupyter Notebook?
Wednesday: How to Use the Terminal
o Changing Directories
o Checking the Directory
o Making Directories
o Creating Files
o Checking a Version Number
o Clearing the Terminal Output
o Using the Python Shell
o Writing Your First Line of Python
o Exiting the Python Shell
Thursday: Using Jupyter Notebook
o Opening Jupyter Notebook
o Creating a Python File
o Jupyter Notebook Cells.
Friday: Creating Your First Program
o Line Numbers Introduced
o Creating the Program
o Final Output
Weekly Summary
Weekly Challenges
MODULE
TOPICS
WEEK 1
Chapter 2: Python Basics
Monday: Comments and Basic Data Types
o What Are Comments and Why Use Them?
o Writing Comments
o What Are Data Types?
o The Print Statement
o Integers
o Floats
o Booleans
o Strings
Tuesday: Variables
o How They Work
o Handling Naming Errors
o Integer and Float Variables
o Boolean Variables
o String Variables
o Using Multiple Variables
o Using Operators on Numerical Variables
o Overwriting Previously Created Variables
o Whitespace
Wednesday: Working with Strings
o String Concatenation
o Formatting Strings
o String Index
o String Slicing
Thursday: String Manipulation
o . title( )
o . replace( )
o . find( )
o . strip( )
o . split( )
Friday: Creating a Receipt Printing Program
o Final Design
o Initial Process
o Defining Our Variables
o Creating the Top Border
o Displaying the Company Info
o Displaying the Product Info
o Displaying the Total
o Displaying the Ending Message
o Displaying the Bottom Border
o Weekly Summary
o Challenge Question Solution
MODULE o Weekly Challenges
WEEK 1 TOPICS
Chapter 3: User Input and Conditionals
Monday: User Input and Type Converting
o Accepting User Input
o Storing User Input
o What Is Type Converting?
o Checking the Type
o Converting Data Types
o Converting User Input
o Handling Errors
o Code Blocks and Indentation
Tuesday: If Statements
o How They Work
o Writing Your First If Statement
o Comparison Operators
o Checking User Input
o Logical Operators
o Membership Operators
Wednesday: Elif Statements
o How They Work
o Writing Your First Elif Statement
o Checking Multiple Elif Conditions
o Conditionals Within Conditionals
o If Statements vs. Elif Statements
Thursday: Else Statements
o How They Work
o Writing Your First Else Statement
o Complete Conditional Statement
Friday: Creating a Calculator
o Final Design
o Step #1: Ask User for Calculation to Be Performed
o Step #2: Ask for Numbers, Alert Order Matters
o Step #3: Set Up Try/Except for Mathematical Operation
o Final Output
o Weekly Summary
o Challenge Question Solution
o Weekly Challenges
MODULE
WEEK 2
TOPICS
Chapter 4: Lists and Loops
Monday: Lists
o What Are Lists?
o Declaring a List of Numbers
o Accessing Elements Within a List
o Declaring a List of Mixed Data Types
o Lists Within Lists
o Accessing Lists Within Lists
o Changing Values in a List
o Variable Storage
o Copying a List
Tuesday: For Loops
o How Loops Work
o Writing a For Loop
o Range()
o Looping by Element
o Continue Statement
o Break Statement
o Pass Statement
Wednesday: While Loops
o Writing a While Loop
o While vs. For
o Infinite Loops
o Nested Loops
Thursday: Working with Lists
o Checking Length
o Slicing Lists
o Adding Items
o Removing Items
o Working with Numerical List Data
o Sorting a List
o Conditionals and Lists
o Loops and Lists
Friday: Creating Hangman
o Final Design
o Previous Line Symbols Introduced
o Adding Imports
o Declaring Game Variables
o Generating the Hidden Word
o Creating the Game Loop
o Outputting Game Information
MODULE o Checking a Guess
o Clearing Output
WEEK 2 o Creating the Losing Condition
TOPICS
o Handling Correct Guesses
o Creating a Winning Condition
o Outputting Guessed Letters
o Adding Guessed Letters
o Handling Previous Guesses
o Final Output
o Weekly Summary
o Challenge Question Solution
o Weekly Challenges
Chapter 5: Functions
Monday: Creating and Calling Functions
o What Are Functions?
o Function Syntax
o Writing Your First Function
o Function Stages
o UDF vs. Built-in
o Performing a Calculation
Tuesday: Parameters
o What Are Parameters?
o Passing a Single Parameter
o Multiple Parameters
o Passing a List
o Default Parameters
o Making Parameters Optional
o Named Parameter Assignment
o *args
o **kwargs
Wednesday: Return Statement
o How It Works
o Using Return
o Ternary Operator
Thursday: Scope
o Types of Scope
o Global Scope Access
o Handling Function Scope
o In-Place Algorithms
Friday: Creating a Shopping Cart
o Final Design
o Initial Setup
MODULE o Adding Items
o Removing Items
WEEK 2 o Showing the Cart
o Clearing the Cart
TOPICS
o Creating the Main Loop
WEEK 3 o Handling User Input
o Final Output
o Weekly Summary
o Challenge Question Solution
o Weekly Challenges
Chapter 6: Data Collections and Files
Monday: Dictionaries
o What Are Dictionaries?
o Declaring a Dictionary
o Accessing Dictionary Information
o Using the Get Method
o Dictionaries with Lists
o Lists with Dictionaries
o Dictionaries with Dictionaries
Tuesday: Working with Dictionaries
o Adding New Information
o Changing Information
o Deleting Information
o Looping a Dictionary
Wednesday: Tuples, Sets, Frozensets
o What Are Tuples?
o Declaring a Tuple
o What Are Sets?
o Declaring a Set
o What Are Frozensets?
o Declaring a Frozenset
o Data Collection Differences
Thursday: Reading and Writing Files
o Working with Text Files
o Writing to CSV Files
o Reading from CSV Files
o File Modes in Python
Friday: Creating a User Database with CSV Files
o Final Design
o Setting Up Necessary Imports
o Handling User Registration
o Handling User Login
o Creating the Main Loop
MODULE o Weekly Summary
o Challenge Question Solution
WEEK 3 o Weekly Challenges
TOPICS
Chapter 7: Object-Oriented Programming
Monday: Creating and Instantiating a Class
o What Is an Object?
o OOP Stages
o Creating a Class
o Creating an Instance
o Creating Multiple Instances
Tuesday: Attributes
o Declaring and Accessing Attributes
o Changing an Instance Attributes
o Using the __init__( ) Method
o The “self” Keyword
o Instantiating Multiple Objects with __init__( )
o Global Attributes vs. Instance Attributes
Wednesday: Methods
o Defining and Calling a Method
o Accessing Class Attributes in Methods
o Method Scope
o Passing Arguments into Methods
o Using Setters and Getters
o Incrementing Attributes with Methods
o Methods Calling Methods
o Magic Methods
Thursday: Inheritance
o What Is Inheritance?
o Inheriting a Class
o Using the super( ) Method
o Method Overriding
o Inheriting Multiple Classes
Friday: Creating Blackjack
o Final Design
o Setting Up Imports
o Creating the Game Class
o Generating the Deck
o Pulling a Card from the Deck
o Creating a Player Class
o Adding Cards to the Player’s Hand
o Showing a Player’s Hand
MODULE o Calculating the Hand Total
o Handling the Player’s Turn
o Handling the Dealer’s Turn
o Calculating a Winner
WEEK 3 o Final Output
o Weekly Summary
TOPICS
o Challenge Question Solution
o Weekly Challenges
Chapter 8: Advanced Topics I: Efficiency
Monday: List Comprehension
o List Comprehension Syntax
o Generating a List of Numbers
o If Statements
o If-Else Statements
o List Comprehension with Variables
o Dictionary Comprehension
Tuesday: Lambda Functions
o Lambda Function Syntax
o Using a Lambda
o Passing Multiple Arguments
o Saving Lambda Functions
o Conditional Statements
o Returning a Lambda
Wednesday: Map, Filter, and Reduce
o Map Without Lambdas
o Map with Lambdas
o Filter Without Lambdas
o Filter with Lambdas
o The Problem with Reduce
o Using Reduce
Thursday: Recursive Functions and Memoization
o Understanding Recursive Functions
o Writing a Factorial Function
o The Fibonacci Sequence
o Understanding Memoization
o Using Memoization
o Using @lru_cache
Friday: Writing a Binary Search
o Final Design
o Program Setup
o Step 1: Sort the List
o Step 2: Find the Middle Index
o Step 3: Check the Value at the Middle Index
MODULE o Step 4: Check if Value Is Greater
o Step 5: Check if Value Is Less
WEEK 4 o Step 6: Set Up a Loop to Repeat Steps
o Step 7: Return False Otherwise
o Final Output
Weekly Summary
Challenge Question Solution
TOPICS
Weekly Challenges
Chapter 9: Advanced Topics II: Complexity
Monday: Generators and Iterators
o Iterators vs. Iterables
o Creating a Basic Iterator
o Creating Our Own Iterator
o What Are Generators?
o Creating a Range Generator
Tuesday: Decorators
o What Are Decorators?
o Higher-Order Functions
o Creating and Applying a Decorator
o Decorators with Parameters
o Functions with Decorators and Parameters
o Restricting Function Access
Wednesday: Modules
o Importing a Module
o Importing Only Variables and Functions
o Using an Alias
o Creating Our Own Module
o Using Our Module in Jupyter Notebook
Thursday: Understanding Algorithmic Complexity
o What Is Big O Notation?
o Hash Tables
o Dictionaries vs. Lists
o Battle of the Algorithms
Friday: Interview Prep
o Developer Interview Process
o What to Do Before the Interview
o General Questions
o Whiteboarding and Technical Questions
o End of Interview Questions
o What to Do After the Interview
Weekly Summary
Challenge Question Solution
MODULE Weekly Challenges
WEEK 4
TOPICS
Chapter 10: Introduction to Data Analysis
Monday: Virtual Environments and Requests Module
o What Are Virtual Environments?
o What Is Pip?
o Creating a Virtual Environment
o Activating the Virtual Environment
o Installing Packages
o APIs and the Requests Module
o Using the Requests Module
Tuesday: Pandas
o What Is Pandas?
o Key Terms
o Installing Pandas
o Importing Pandas
o Creating a DataFrame
o Accessing Data
o Built-in Methods
o Filtration
o Column Transformations
o Aggregations
o Pandas Joins
o Dataset Pipeline
Wednesday: Data Visualization
o Types of Charts
o Installing Matplotlib
o Importing Matplotlib
o Line Plot
o Bar Plot
o Box Plot
o Scatter Plot
o Histogram
o Saving the Chart
o Flattening Multidimensional Data
Thursday: Web Scraping
o Installing Beautiful Soup
MODULE o Importing Beautiful Soup
o Requesting Page Content
o Parsing the Response with Beautiful Soup
WEEK 4 o Scraping Data
o DOM Traversal
TOPICS
Friday: Web Site Analysis
o Final Design
o Importing Libraries
o Creating the Main Loop
o Scraping the Web Site
o Scrape All Text
o Filtering Elements
o Filtering Waste
o Count Word Frequency
o Sort Dictionary by Word Frequency
o Displaying the Top Word
o Graphing the Results
o Final Output
Weekly Summary
Challenge Question Solution
Weekly Challenges
Afterword: Post-Course: What to Do Now?
Back-End Development with Python
Full-Stack Development with Python
Data Analysis with Python
Data Science with Python
Resources
Final Message