Introduction to Computer Programming

This course is designed for trainees who have little or no prior experience with computer programming. It uses a visual educational programming language based on Python to teach basic concepts and methodology of procedural computer programming, making the trainees ready for a smooth transition to advanced programming languages such as Python, Java or C/C++.

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 will teach trainees the 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 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.

Recommended Background

The only background trainees require for this course is a desire to learn how to program.

Student Learning Outcomes (SLO)

Students 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, email, and one of the following browsers:

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Internet Explorer (9.0 or above)
  • Safari

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 will 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 will vary from trainee to trainee. Trainees are responsible for learning both the tutorial content and the skills acquired through practice.