Skip to main content

CS 150 Syllabus

Problem Solving and Programming I

Revised: January 2019

Course Description

Problem-solving and algorithm development using an object-based programming language; functions, control structures, collections, and objects.

Prerequisite & Notes:

  • Prerequisite or corequisite: Math 130 or Math Placement
  • 4 Credit Hours
  • Required for major, required for minor.


  • Develop the ability to create non-trivial programs in an object-oriented programming language.
  • Develop the ability to create programs that utilize functions, decision structures, iteration, collections, class definitions, and objects.
  • Understand and use good design principles, style, and documentation.
  • Develop the ability to use a program debugger to identify and correct program errors.


John Zelle, Python Programming: An Introduction to Computer Science, Second Edition, Franklin Beedle & Associates Inc, 2010.

Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general university policy.

Course Outline

  • Introductory Concepts
    • Integrated Design Environments (IDEs), simple output, variables, expressions, style, documentation, and libraries.
  • Functions
    • Function definition, return values, parameters, scope, lifetime, input, and output formatting.
  • Control Structures
    • Boolean operators (and, or, not) and decision structures (if statements, if/else statements, nested if statements). Iteration using for loops, while loops, and the range function.
  • Collections
    • Storing data with lists and strings. Topics include constructing, populating, accessing (including with iteration), and modifying collections.
  • Objects
    • Object oriented programming (OOP) design, creating classes and instance objects, utilizing class attributes and methods.
  • Advanced Programming Topics (Time Permitting)
    • Nested iteration, multi-dimensional collections, dictionaries, and recursion.
  • Testing (Time Permitting)
    • Testing overview, unit testing, and test automation.
Office of Web Services