General syllabus

Note: click on this, and actually read it; it's part of the syllabus:

Attendance (in-person or online)

If you have not logged in and completed the introductory activities within all the course resources by the second week of class, you will be administratively dropped from the class, and not re-admitted!

Course description

Short description:
This course provides a rigorous introduction to computational problem solving, thinking, and debugging, for those with little-to-no experience in computer science. Language-agnostic foundations focus on pseudo-code, flowcharts, and software-based code tracing, then build to programming in a high level interpreted language, with a focus on data and modeling.

Full description:
This course provides students with a rigorous introduction to computational problem solving, thinking, and troubleshooting. It is intended for those with little to no experience in programming or computer science. Language-agnostic foundations will include focus on pseudo-code, flowcharts, and software-based code tracing, then build to programming methods. The class will employ software design processes and principles in programming progressively larger modeling projects (games), in a high level interpreted programming language. Discussions of software design philosophy and methods will include modularity and code re-use, test-driven development, progressive enumeration, Unix code design philosophy, object-oriented programming, and others. The course includes thorough coverage of the general systematic process of using scientific hypothesis testing for finding the causes of problems in technological and software systems, namely troubleshooting and debugging.


  • A good attitude, work ethic, and an interest in computing!

Free and open textbooks and resources

Required readings and activities will be assigned from these materials:

Part 1 - How to use a computer, bash, Linux, and virtual machines

Part 2 - Python3 language basics and creating interactive models (a.k.a. games...)

In-class programming labs

Note: These only occur during face-to-face booked class (regrettably not during COVID online classes).

  • About once a week, we will have in-class programming lab exercises.
  • To prevent cheating, you must do the following, to get credit for these labs:
    1. Be present when class starts; if you are more than 2 minutes late, you get a 0 for the day.
    2. Check out at the end of class, presenting your student ID card to the testing monitor, who will assign your grade for the day; if you do not check out, you don't get a grade.
    3. Complete the activities within class time.
    4. Not use any outside resources, such as the web; doing otherwise is cheating. The only acceptable resources to use in class during the lab are:
      • the python command line help or
      • help at the python terminal, or Spyder IDE

Extra practice

If you want extra practice implementing computational solutions to a wide variety of problems and algorithms, with auto-graded correctness, then check out Kattis:

Which virtual machine / OS for this class?

OpenSuse OVA I distribute

Backlinks: index:Classes:ComputationalThinking index:Classes:ComputationalThinking:Content:00-Inspiration