Python Fundamentals

Intro to computer programming

Course Description

In this 80-hour hands-on course trainees learn Python by solving programming tasks of gradually increasing complexity, ranging from simple calculations, working with text strings, loops, conditions, and variables, to file operations, and data visualization. They also learn some fundamental concepts of Computer Science which every programmer needs to know.


This is not an introductory computer programming course. Trainees should be familiar with basic concepts of computer programming including syntax, counting and conditional loops, conditions, local and global variables, functions, and recursion. Trainees with little or no computer programming must complete the Introduction to Computer Programming course before taking this course.

Learning Outcomes

Trainees will be able to:

  • Use Python for calculations.
  • Use loops and conditions, define and use custom functions.
  • Define basic built-in data types.
  • Explain the difference between local and global scopes and variables.
  • Work with tuples, lists, dictionaries, and sets.
  • Use the break and continue statements in loops.
  • Use the else branch with for and while loops.
  • Work with text strings and regular expressions, ASCII table.
  • Identify characteristics of mutable and immutable data types, locate objects in memory.
  • Use the Matplotlib and Numpy libraries.
  • Plot graphs of functions and parametric curves.
  • Examine basic principles of software design.
  • Compare shallow and deep copying.
  • Read from and write to text files.
  • Use assertions and exceptions.
  • Visualize scientific data using wireframe plots, surface plots, contour plots, and color maps.
  • Design and implement a Graphics Editor capable of creating, manipulating and displaying images consisting of basic shapes.

Equipment Requirements

Computer, laptop or tablet with Internet access, web browser, and email.

Course Structure and Length

This course is self-paced, and trainees practice each skill and concept as they go.  Automatic feedback is built into the course for both practice exercises and quizzes. The course is divided into four Units, and each Unit is composed of five Sections. Each Section consists of 7 instructional/practice levels, a quiz, and a master (proficiency) level. Quizzes can be retaken after 12 hours.

This table illustrates the course structure as units, sections, and levels.

Python Fundamentals is designed to take approximately 80 hours. Since the course is self-paced, the amount of time required to complete the course will vary from trainee to trainee.