Project

CS-120: Introduction to Programming Using Python

July 27, 2025

curriculum-designelearninghigher-educationprogrammingpython
storage.googleapis.com/learningmods/CS%20120/CS-120%20Week%201%20Interaction%20-%20Storyline%20output/story.html?annotate=0
CS-120: Introduction to Programming Using Python

CS-120 course overview

Project overview

CS-120 is an asynchronous undergraduate introduction to programming using Python at Capitol Technology University. I served as subject matter expert, instructional designer, eLearning developer, and instructor for the first offering.

The four-month development effort produced a complete course structure and two interactive modules. The course has remained in use for three years.

The design goal was to make a first programming course rigorous without making it abstract or intimidating. Python syntax was taught through practical problems, while repeated low-stakes checks gave learners a way to identify misconceptions before moving into more complex work.

Course scope

The curriculum introduces data storage, instructions, input and output, variables, operators, control flow, functions, Python data structures, library modules, debugging, and file processing.

Because the course is asynchronous, its materials must carry more explanatory responsibility than slides written for a live lecture. Instructions, examples, assignments, feedback, and external resources were structured so a learner could follow the intended sequence independently while still receiving support from the assigned instructor.

Course learning outcomes

I developed eight measurable outcomes using Bloom’s Taxonomy. By the end of the course, learners should be able to:

  1. Interpret and articulate the fundamentals of data storage, computer instructions, input, and output.
  2. Design the logic of computer instructions and programs.
  3. Implement sequential, decision, repetition, and function constructs in Python.
  4. Explain Python sequences and distinguish when different data structures should be used.
  5. Compile, run, and debug Python programs.
  6. Integrate multiple data structures in a working program.
  7. Write programs that incorporate file input, output, and record processing.
  8. Employ built-in libraries to complete programming tasks.

Instructional design

Practical assignments

Weekly programming assignments use recognizable scenarios rather than isolated syntax drills. This keeps the task connected to the problem-solving behavior expected in professional development: interpret a requirement, divide it into smaller operations, select an appropriate construct, test the result, and revise it.

The course postpones highly theoretical algorithm problems until learners have enough programming fluency to engage with them productively. Early success comes from solving bounded, relatable problems without removing the need for careful reasoning.

Low-stakes knowledge checks

Knowledge checks provide frequent opportunities to confirm understanding. They are granular enough to identify a specific misconception and low-stakes enough to function as practice, while still carrying enough weight to encourage consistent participation.

Curated external resources

Custom lectures and assignments form the core path. Carefully selected external explanations supplement that path when another presentation can clarify a difficult concept. Resources are positioned as targeted support rather than as substitutes for an intentional course sequence.

Interactive module 1: Problem-Solving Foundations

The Week 1 module focuses on the reasoning that precedes code. Learners work through a practical scenario and break it into steps, constraints, inputs, and expected outputs. Establishing that method first gives later Python syntax a clear purpose.

Open the Week 1 Problem-Solving Foundations module

Interactive module 2: Extending Your Python Skills

The Week 8 module looks beyond the final assignment. It gives learners a roadmap for continued practice and helps them identify the next concepts, tools, and projects to pursue after structured coursework ends.

Open the Week 8 Extending Your Python Skills module

Design constraints

  • The course must work asynchronously without assuming a live explanation is available.
  • It must support learners entering with different levels of technical confidence.
  • Assessments must measure the stated outcomes rather than reward memorization alone.
  • Interactive modules should reinforce the course sequence instead of becoming disconnected novelty activities.

Result and reflection

I taught the first offering after developing the course, which provided a direct view of how the materials operated in practice. The strongest aspect of the design was the alignment between outcomes, realistic assignments, knowledge checks, and interactive modules.

No quantitative learner-performance claim is presented here because a controlled comparison was not part of the project. The case study instead documents the curriculum structure, instructional decisions, and working artifacts that can be inspected directly.

Reference