Introduction to the Foundations of Computation I

CMPUT 174 (Introduction to the Foundations of Computing) is an introduction to programming using the Python language with an emphasis on fundamental concepts, such as variables, control flow, iteration, abstraction, and computational problem solving.

Blended learning approach

The rationale for transforming this course into a blended format, specifically flipping, was to use more face-to-face time for interactive problem solving writing a series of computer games in a high-level programming language called Python. Because of the constructivist nature of computing science, students to view before class so that in-class time could be used effectively for instructor-guided problem-solving. Therefore, students best learn the problem-solving process in class with an experienced mentor before attempting the process in labs.

Content development team

  • Paul Lu, Professor and Associate Chair (Undergraduate Studies), Department of Computing Science.
  • Greg Kondrak, Associate Professor, Department of Computing Science.
  • Jörg Sander, Professor, Department of Computing Science.
  • Duane Szafron, Professor, Department of Computing Science.
  • Sadaf Ahmed, Sessional Professor, Department of Computing Science.

Sample week in the course

This course followed a Monday/Wednesday/Friday course structure, plus a weekly three-hour laboratory session in smaller groups. All student activities and resources were available on eClass.

A weekly cycle began with students viewing the online expository material. The topic/task for this first week was comprised of the topics “Computation Concepts”, “Integer Literals and Operators”, and “String Literals”. Each topic consisted of 3 or 4 videos and an online multiple-choice assessment. Students were provided with pre-term resources to help them get started on the course since they were encouraged to complete these first three topics before the term started.



The second topic “Integer Literals and Operators”, for example, included four short videos. The first video was about the learning outcomes for the topic, the second demonstrated using Integer Literals and Operators in a program segment, the third one explained concept maps for Integer Literals, and the last one was about concept maps for Integer Operators. Each assessment was an online multiple-choice test where the students had three attempts for each question. The intent of the assessment was to be low stakes and provide formative feedback.



In-class time was spent designing and programming a version of a computer game. Each game had four versions. One or two versions were constructed in a typical week. For example, in the first week, “Version 1” of the game “Remember the Word” was constructed. Each version had its own learning outcomes and consisted of three components: Design, Programming, and Review. The instructor entered text into a Google Doc and code into a Python interactive development environment, both of which were projected onto a screen. Students asked questions, called out suggestions, and pointed out mistakes or oversights, all of which emulated real-world pair programming by developers. Students could also parallel the instructor’s work on their own laptops, and also had online resources available in case they needed to review the material covered in class.



Finally, students attended a 3-hour laboratory where they worked with a partner on problem-solving using the same concepts as in class. The goal was to implement a very simple single version game called “Guess the Number” so that they could focus on the techniques, skills and processes that will be used throughout the course.

Blended learning evaluation results

Click here to download the evaluation results.

Do you want to know more details about our Blended Learning Evaluation? Send us an email:

L. Francisco Vargas M.

Resource development details for this week

Roles of the content development team (~180 hours)

  • Generate the content, examples, and create the presentations and animations.
  • Drafted scripts based on the course materials.
  • Record and edit a screencast of the presentations.
  • Prepare and upload the material for the in-class lectures.
  • Formulate multiple-choice assessment questions for students.
  • Prepare different formats of the content to accommodate to students.

Roles of the CTL production team (~25 hours)

  • Facilitate Camtasia and Screencast-o-Matic training.
  • eClass development (general setup, entering question bank, creating quizzes, posting videos)
  • Upload videos to YouTube.
  • Annotate screencast videos.

Tools & additional information

Publications and presentations

  • A. Williams, et al., C-PPLu, Duane Szafron, S. Ahmed, J. Smith, and T. Onuczko. Flipping Stem. Venue: The Flipped College Classroom. Accepted: 2015-08-20. Published: 2016-10-18. Pages: 38. Eds: L. Santos Green, J. Banas, and R. Perkins. Issue: Educational Communications and Technology: Issues and Innovations. Publisher: Springer International Publishing Switzerland. DOI: 10.1007/978-3-319-41855-1.


Do you want to know more about the content?

Contact Details

Duane Szafron

Do you want to know how CTL can help you?

Contact Details

Phone: +1 (780) 492-2826