Course Duration

You will have access to the online course content and lab / development environment for 10 weeks.
If you need extra time to complete the course, this initial access period can be extended with NO additional fee.
Course Outline
Please contact us if you have any questions about what is covered in this course after reviewing the module list and detailed outline
1. Python Basics
2. Data Types
3. How To Write Complicated Programs
4. Working With Large Sets of Data
5. Text, Math and Dates
6. Organizing a Large Project
7. Finishing the Search Engine
8. Extra Credit: Classes
2. Data Types
3. How To Write Complicated Programs
4. Working With Large Sets of Data
5. Text, Math and Dates
6. Organizing a Large Project
7. Finishing the Search Engine
8. Extra Credit: Classes
1. Python Basics
1.1 Familiarizing Yourself with Python
1.1.1 Hello World!
1.1.2 Strings
1.1.3 Numbers
1.1.4 A Useful Program
1.2 How Programs Are Written
1.2.1 Variables
1.2.2 Debugging
1.2.3 Getting User Input
1.2.4 Making Decisions
1.2.5 A Simple Game
1.3 All The Stuff That Normally Goes in the Preface
1.3.1 The Interpreter, the Code, and the Language: What Python Really Is
1.3.2 Interactive Mode
1.3.3 Who Made Python, and Who Uses it Today?
1.3.4 What Makes Python Special
2. Data Types
2.1 Programming Concepts
2.2.1 Types
2.2.2 Keywords
2.2.3 Expressions
2.2.4 Comments
2.2 Intro to Math Types
2.2.1 Integers
2.2.2 Floats
2.2.3 Booleans
2.2.4 First Course Project Exercise: Simulating a Ranking Algorithm Part 1
2.3 Intro to Strings
2.3.1 Strings in Depth
2.3.2 String Operators
2.3.3 String Conditions
2.3.4 String Formatting
2.4 Intro to Lists
2.4.1 What is a List?
2.4.2 Elements, Sublists, and Concatenation
2.4.3 Working With Lists
3. How To Write Complicated Programs
3.1 If Statements
3.1.1 Multiple Conditions
3.1.2 Else and Elif
3.1.3 Nested If Statements
3.2 Functions
3.2.1 What are Functions? Little Programs
3.2.2 Some Functions We Already Know
3.2.3 Calling Functions
3.2.4 Writing Functions
3.3 Interacting With the World
3.3.1 Intro to Libraries
3.3.2 urllib: How to Internet
3.3.3 BeautifulSoup: How To Turn Garbage into Gold
3.3.4 Robotparser: Being a Good Citizen
3.3.5 Second Course Project Exercise: Reading a Web Page
3.4 For Loops
3.4.1 What is a Loop?
3.4.2 For Loops
3.4.3 break and continue
3.4.4 Third Course Project Exercise: Word Frequency in Text
3.5 While Loops
3.5.1 Another Kind of Loop
3.5.2 While Loop Conditions
3.5.3 One Infinite Loop
3.6 Algorithms
3.6.1 What is an Algorithm?
3.6.2 Understanding the Problem
3.6.3 Planning the Code
3.6.4 Writing the Tricky Parts
3.6.5 The Best Laid Plans: Debugging Revisited
3.7 Fourth Course Project Exercise: Writing a Web Crawler
3.7.1 What is a Web Crawler?
3.7.2 Fourth Course Project Exercise: Writing a Web Crawler
4. Working With Large Sets of Data
4.1 Collections
4.1.1 What are Collections?
4.1.2 Advanced Lists
4.1.3 Tuples
4.1.4 Sets
4.1.5 Queues and Stacks
4.2 Dictionaries
4.2.1 The Lookup
4.2.2 Using Dictionaries
4.2.3 Dictionary Speed and Hashing
4.2.4 Looping Dictionaries
4.2.5 Fifth Course Project Exercise: Adding Word Frequency to the Crawler
4.3 Files
4.4.1 Files Under the Hood
4.4.2 Writing Files
4.4.3 Reading Files
4.4 Databases
4.4.1 Database Concepts
4.4.2 Working with Databases
4.4.3 MySQL in Python
4.4.4 Sixth Course Project Exercise: Saving the Results of the Crawler
5. Text, Math and Dates
5.1 String Methods
5.1.1 Casing
5.1.2 Whitespace and Replace
5.1.3 Split and Join
5.1.4 Find
5.2 String Formatting
5.2.1 The Format Operator and the Format Method
5.2.2 Formatting Numbers
5.2.3 Templates
5.3 Regular Expressions
5.3.1 Intro to Regular Expressions
5.3.2 Patterns
5.3.3 Different Ways of Matching
5.3.4 Seventh Course Project Exercise: Cleaning Up Word Frequency
5.4 Math
5.4.1 Built-in Functions
5.4.2 The math library
5.4.3 The random library
5.4.4 The cmath library
5.4.5 NumPy
5.5 Dates and Times
5.5.1 Reading Datetimes
5.5.2 Writing Datetimes
5.5.3 Working with Datetimes
6. Organizing a Large Project
6.1 Libraries and Modules
6.1.1 An Implementation of Libraries
6.1.2 Import
6.1.3 Making Modules
6.1.4 Eighth Course Project Exercise: Breaking the Crawler Into Parts
6.2 Documentation
6.2.1 Good Documentation is Good
6.2.2 Pydoc: Learning Through Documentation
6.2.3 Ninth Course Project Exercise: Documenting the Crawler
6.3 Exceptions
6.3.1 Trying Code
6.3.2 Finally!
6.3.3 Multiple Exceptions
6.3.4 Tenth Course Project Exercise: Handling Problems in the Crawler
6.4 Testing
6.4.1 Doctest
6.4.2 Test Driven Development
6.5 Working With the System
6.5.1 The os Module
6.5.2 The sys Module and Command Line Arguments
6.5.3 The subprocess Module
6.6 Advanced Function Topics
6.6.1 Refactoring and Helper Functions
6.6.2 Chaining and Nesting
6.6.3 Basic Scope
7. Finishing the Search Engine
7.1 Retrieval and Ranking
7.1.1 Search Retrieval and Ranking Explained
7.1.2 Eleventh Course Project Exercise: Retrieval
7.1.3 Writing the IDF Calculation
7.1.4 Twelfth Course Project Exercise: Ranking
7.2 HTML
7.2.1 How Websites Work
7.2.2 Basic HTML
7.2.3 Basic CSS
7.2.4 The Templates Strike Back
7.3 Basic Web Python
7.3.1 CGI in Python
7.3.2 Return of the Templates
7.3.3 Thirteenth Course Project Exercise: The Search Frontend
7.4 A Working Search Engine
8. Extra Credit: Classes
8.1 Basic Classes
8.1.1 What is a Class?
8.1.2 Objects We Have Seen and the Classes That Make Them
8.1.3 Writing a Class and Making Objects
8.1.4 Methods: Improving the Class
8.2 More Classes!
8.2.1 Access Control
8.2.2 Static Variables and Methods
8.2.3 Class Inheritance
8.2.4 Overriding Methods
1.1 Familiarizing Yourself with Python
1.1.1 Hello World!
1.1.2 Strings
1.1.3 Numbers
1.1.4 A Useful Program
1.2 How Programs Are Written
1.2.1 Variables
1.2.2 Debugging
1.2.3 Getting User Input
1.2.4 Making Decisions
1.2.5 A Simple Game
1.3 All The Stuff That Normally Goes in the Preface
1.3.1 The Interpreter, the Code, and the Language: What Python Really Is
1.3.2 Interactive Mode
1.3.3 Who Made Python, and Who Uses it Today?
1.3.4 What Makes Python Special
2. Data Types
2.1 Programming Concepts
2.2.1 Types
2.2.2 Keywords
2.2.3 Expressions
2.2.4 Comments
2.2 Intro to Math Types
2.2.1 Integers
2.2.2 Floats
2.2.3 Booleans
2.2.4 First Course Project Exercise: Simulating a Ranking Algorithm Part 1
2.3 Intro to Strings
2.3.1 Strings in Depth
2.3.2 String Operators
2.3.3 String Conditions
2.3.4 String Formatting
2.4 Intro to Lists
2.4.1 What is a List?
2.4.2 Elements, Sublists, and Concatenation
2.4.3 Working With Lists
3. How To Write Complicated Programs
3.1 If Statements
3.1.1 Multiple Conditions
3.1.2 Else and Elif
3.1.3 Nested If Statements
3.2 Functions
3.2.1 What are Functions? Little Programs
3.2.2 Some Functions We Already Know
3.2.3 Calling Functions
3.2.4 Writing Functions
3.3 Interacting With the World
3.3.1 Intro to Libraries
3.3.2 urllib: How to Internet
3.3.3 BeautifulSoup: How To Turn Garbage into Gold
3.3.4 Robotparser: Being a Good Citizen
3.3.5 Second Course Project Exercise: Reading a Web Page
3.4 For Loops
3.4.1 What is a Loop?
3.4.2 For Loops
3.4.3 break and continue
3.4.4 Third Course Project Exercise: Word Frequency in Text
3.5 While Loops
3.5.1 Another Kind of Loop
3.5.2 While Loop Conditions
3.5.3 One Infinite Loop
3.6 Algorithms
3.6.1 What is an Algorithm?
3.6.2 Understanding the Problem
3.6.3 Planning the Code
3.6.4 Writing the Tricky Parts
3.6.5 The Best Laid Plans: Debugging Revisited
3.7 Fourth Course Project Exercise: Writing a Web Crawler
3.7.1 What is a Web Crawler?
3.7.2 Fourth Course Project Exercise: Writing a Web Crawler
4. Working With Large Sets of Data
4.1 Collections
4.1.1 What are Collections?
4.1.2 Advanced Lists
4.1.3 Tuples
4.1.4 Sets
4.1.5 Queues and Stacks
4.2 Dictionaries
4.2.1 The Lookup
4.2.2 Using Dictionaries
4.2.3 Dictionary Speed and Hashing
4.2.4 Looping Dictionaries
4.2.5 Fifth Course Project Exercise: Adding Word Frequency to the Crawler
4.3 Files
4.4.1 Files Under the Hood
4.4.2 Writing Files
4.4.3 Reading Files
4.4 Databases
4.4.1 Database Concepts
4.4.2 Working with Databases
4.4.3 MySQL in Python
4.4.4 Sixth Course Project Exercise: Saving the Results of the Crawler
5. Text, Math and Dates
5.1 String Methods
5.1.1 Casing
5.1.2 Whitespace and Replace
5.1.3 Split and Join
5.1.4 Find
5.2 String Formatting
5.2.1 The Format Operator and the Format Method
5.2.2 Formatting Numbers
5.2.3 Templates
5.3 Regular Expressions
5.3.1 Intro to Regular Expressions
5.3.2 Patterns
5.3.3 Different Ways of Matching
5.3.4 Seventh Course Project Exercise: Cleaning Up Word Frequency
5.4 Math
5.4.1 Built-in Functions
5.4.2 The math library
5.4.3 The random library
5.4.4 The cmath library
5.4.5 NumPy
5.5 Dates and Times
5.5.1 Reading Datetimes
5.5.2 Writing Datetimes
5.5.3 Working with Datetimes
6. Organizing a Large Project
6.1 Libraries and Modules
6.1.1 An Implementation of Libraries
6.1.2 Import
6.1.3 Making Modules
6.1.4 Eighth Course Project Exercise: Breaking the Crawler Into Parts
6.2 Documentation
6.2.1 Good Documentation is Good
6.2.2 Pydoc: Learning Through Documentation
6.2.3 Ninth Course Project Exercise: Documenting the Crawler
6.3 Exceptions
6.3.1 Trying Code
6.3.2 Finally!
6.3.3 Multiple Exceptions
6.3.4 Tenth Course Project Exercise: Handling Problems in the Crawler
6.4 Testing
6.4.1 Doctest
6.4.2 Test Driven Development
6.5 Working With the System
6.5.1 The os Module
6.5.2 The sys Module and Command Line Arguments
6.5.3 The subprocess Module
6.6 Advanced Function Topics
6.6.1 Refactoring and Helper Functions
6.6.2 Chaining and Nesting
6.6.3 Basic Scope
7. Finishing the Search Engine
7.1 Retrieval and Ranking
7.1.1 Search Retrieval and Ranking Explained
7.1.2 Eleventh Course Project Exercise: Retrieval
7.1.3 Writing the IDF Calculation
7.1.4 Twelfth Course Project Exercise: Ranking
7.2 HTML
7.2.1 How Websites Work
7.2.2 Basic HTML
7.2.3 Basic CSS
7.2.4 The Templates Strike Back
7.3 Basic Web Python
7.3.1 CGI in Python
7.3.2 Return of the Templates
7.3.3 Thirteenth Course Project Exercise: The Search Frontend
7.4 A Working Search Engine
8. Extra Credit: Classes
8.1 Basic Classes
8.1.1 What is a Class?
8.1.2 Objects We Have Seen and the Classes That Make Them
8.1.3 Writing a Class and Making Objects
8.1.4 Methods: Improving the Class
8.2 More Classes!
8.2.1 Access Control
8.2.2 Static Variables and Methods
8.2.3 Class Inheritance
8.2.4 Overriding Methods