Skip to main content

CS 150 Syllabus

Problem Solving and Programming I

Revised: 2021

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.

Learning Outcomes

Students, by the end of this course, should be able to

  • Create original, non-trivial programs utilizing both the procedural and object-oriented paradigms in a high-level programming language.
  • Create original, not-trivial programs where variables, functions, decision structures, iteration, collections, class definitions, and objects are implemented.
  • Understand and use good design principles, style, and documentation.
  • Test their program and identify and correct program errors using a program debugger.


Stuart Reges, Marty Stepp, Allison Obourn, Building Python Programs, Pearson, 2018.

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), input and output, variables, data types, expressions, style, documentation, and libraries.
  • Functions
    • Function definitions, return values, parameters, scope, lifetime, input and output formatting.
  • Control Structures
    • Boolean operators (and, or, not),decision structures (if statements, if/else statements, nested if statements), and exceptions. Iteration using for loops, while loops, the range function.
  • Collections
    • Storing data with 1-D and 2-D lists. Topics include constructing, populating, accessing (including with iteration), modifying collections, aliasing, and list copy (shallow and deep).
  • Objects
    • Object oriented programming (OOP) design, creating classes and instance objects, utilizing class attributes and methods.
  • Advanced Programming Topics (Time Permitting)
    • Tuples, nested iteration, dictionaries, and recursion.
  • Testing (Time Permitting)
    • Unit testing, and test automation.
Office of Web Services