Learn Python Programming - Fundamentals and Beyond

Are you ready to begin your hands-on Python learning adventure?


LiveFire Labs: Online UNIX Training with Hands-on Internet Lab - Demo Course

LiveFire Labs' Learn Python Programming course is NOT your typical Python course. Our team has worked hard to make this course as realistic, challenging and enjoyable as possible for you.

Read on to learn what makes this course different from other offerings and how it can help you build a solid Python programming foundation so that you can take your technical knowledge, thought process and earning potential to the next level...


Real-world Project.  Build your own Web Crawler and Search Engine while Learning Python.


In addition to the standalone hands-on programming exercises used to reinforce key Python programming concepts, you will be working on an evolving real-world project as you progress through the course.

When learning a new programming language, there is nothing better to keep you motivated and engaged than building an application that actually does something useful and is beneficial to others.

To finish this challenging assignment, you will need to learn the basics for a few of the complementary full-stack technologies needed to create a complete end-to-end solution...


More than Python.  Learn HTML, CSS, CGI and MySQL basics.


This course walks you through the basics of HTML, CSS, CGI and MySQL as you build the Internet / Web accessible front-end and configure and populate your own MySQL database to store the search engine index on the back-end.

At the end of the course, your perseverance rewards you with a functioning web crawler / scraper and a simple search engine that YOU developed! It will be accessible on your personal student website, which is hosted on our server and is cleanly integrated with your lab environment. Your student website will be live on the Internet for the duration of the course, and you can share the link with others so that they can check out your awesome work!


100% Cloud-based.  Nothing to install on your computer.


The course's web-based development environment is preconfigured and ready-to-go. All you need to take the course is a web browser with Internet connectivity.

The development environment allows you to create, edit, save and run Python programs from a single web browser window, and also lets you open terminal sessions on the back-end lab server so that you can run Python's interactive interpreter or execute programs from the command line.

Don't worry if any of this is new to you. It will be covered by the course's Student Guide before you start learning to program with Python.

Remember, it will not be necessary to install a Python compiler or any additional software on your computer since everything you need to learn Python programming is hosted on our servers.


Not just Syntax.  Learn to think like a programmer.


Most Python programming courses teach you Python concepts and syntax and then have you perform programming exercises to reinforce what you learn. We wanted to move the bar higher with this course, and go beyond what is typical and expected. In addition to covering standard Python programming syntax, this course will teach you:

- background technical and historical information about computers, programming languages and Internet / Web technologies
- different approaches for debugging your programs
- programming algorithms
- iterative programming techniques
- test driven development
- documentation practices and habits

...we also try to have a little fun along the way!


Bonus content.  Fundamentals of Object-oriented Programming (OOP).


No Python Programming course would be complete without having at least an introduction to classes and objects. Learn Python Object-oriented Programming basics so that you will feel comfortable with OOP and will also be ready for our advanced Python programming course and more technical programming endeavors in general.


Quizzes.  Check your understanding.


Everyone loves a quiz, right? There is a brief quiz at the end of each course module to confirm your understanding of the key concepts introduced in that module.


Course Content Specifics.


Please contact us if you have any questions about what is covered in this course after reviewing the module list and detailed outline


1. The Basics
2. Data Types
3. How To Write Complicated Programs
4. Working With Lots of Data
5. Text and Math
6. Organizing a Large Project
7. Finishing the Search Engine
8. Extra Credit: Classes
1. The 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 Lots 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 and Math
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

Learn By Doing.


After more than 10 years of providing online technology courses to students from around the world, being able to work through practical lab exercises on a real server (not a simulator) in a safe non-production environment continues to be the #1 reason why students register for our courses.

It is also the component they say that has helped them the most to understand and retain the material they are studying.


Getting Started.


Development of LiveFire Labs' Learn Python Programming course is very close to completion and will be available in mid September 2014. Please provide your contact information if you would like to receive email notification when registration is opened.