Intro to Computer Programming

Intro to computer programming

Course Description

Computer programming is something that can be learned, the same as reading, writing or playing a musical instrument. In fact it’s simpler than that. About 90% of computer programming  is planning, problem solving, and perseverance. Only 10% is about mastering a concrete programming language such as Python, C/C++ or Java. This course teaches trainees the other 90%. At the end trainees will have acquired the mindset and skills of a successful programmer. Trainees will be ready to learn any advanced programming language quickly.

This 80-hour hands-on course provides an introduction to programming, using Karel the Robot as trainees’ guide. (Karel the Robot is a legendary programming language originally introduced by the Stanford University professor Richard E. Pattis in his famous book Karel the Robot: A Gentle Introduction to the Art of Programming in 1981.) R.E. Pattis created Karel because his students lacked logic and problem-solving skills. Without these skills, one cannot be successful at computer programming.


You must successfully complete a two-hour assessment to gain acceptance to this course.

Learning Outcomes

Trainees will be able to:

  • Explain the difference between an algorithm and a program.
  • Write programs using basic concepts of procedural programming including loops, conditions, variables, functions, and Boolean logic.
  • Identify repeating patterns and nested repeating patterns in problems.
  • Solve complex problems by breaking them into simpler ones which are easier to solve.
  • Explain the difference between global and local scopes and variables.
  • Test programs by stepping through each line and debugging the code.
  • Perform basic operations with lists.
  • Summarize how recursion works and when to use it. Solve problems using recursion.
  • Generate random numbers and calculate probabilities.
  • Solve mazes using random walks.
  • Identify problems of recursive nature, and use recursion to solve them.
  • Solve advanced programming challenges.

Equipment Requirements

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

Course Structure and Length

This course is self-paced, and trainees will practice each skill and concept as they go.  Automatic feedback is built into the course for both practices and quizzes.

The course is divided into five Units, and each Unit is composed of five Sections. Each Section consists of 7 instructional/practice levels, a quiz, and a master (proficiency) level. Trainees can return to any level or quiz for review.

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

Trainees need approximately 80 hands-on hours, based on their ability level, to complete this course. Since the course is self-paced, the amount of time required to complete the course varies from trainee to trainee. Trainees are responsible for learning both the tutorial content and the skills acquired through practice.