Skip to main content
CSE 231 Introduction to Programming I

CSE 231 Introduction to Programming I (4 cr: 3 lecture + 1 lab)

Catalog Course Description

Introduction to programming using Python. Design, implementation and testing of programs to solve problems such as those in engineering, mathematics and science. Programming fundamentals, functions, objects, and use of libraries of functions.

Course Outcomes
(Letters refer to program outcomes; caps indicate greater emphasis.)

There are two broad goals for this course:

  • If a student is presented with a problem, the response should be: "I can write a program to solve that."
  • This course should prepare students for further study in computer science.

The course outcomes in more detail are:

  1. (Fundamentals) Students will learn general programming concepts, as well as a modern programming language that employs those concepts. (a,I)
    1. Students will learn the fundamentals of a programming language.
      (such as language-defined data types (int, float, bool, str, list, tuple, dictionary, and set), programmer-defined classes, control constructs (sequence, selection, repetition), program modules (including functions, modules, methods ) )
      1. (Knowledge & Comprehension) Be able to recall the fundamental components of the programming language studied in the course.
      2. (Application) Given an algorithm a student will be able to formulate a program that correctly implements the algorithm.
    2. Students will learn a programming environment.
      1. (Application) Students will be able to demonstrate that they can effectively use the programming environment used in the course.
  2. (Problem solving) Students will design, implement and test readable Python programs to solve problems. (C,I,k)
    1. Create algorithms to solve problems. As part of creating a solution, extend the programming language with new statements (functional abstraction) and new types, abstract data types (ADTs).
      1. (Application) Students will create programs that use functional and data abstraction.
        Given a problem students will be able to select an appropriate existing ADT or function, e.g. from a package; or create a new, appropriate ADT, function, or package.
    2. Write programs that use functions and ADTs.
      1. (Application) Given a set of functions and ADTs, possibly in a package, students will be able to develop an algorithm to solve a problem and implement the algorithm.
  3. (Teamwork) Students will work in teams of two to solve problems in lab sessions. (d)

Program Outcomes covered in CSE 231

An ability to apply knowledge of computing and mathematics appropriate to the discipline
An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
An ability to function effectively on teams to accomplish a common goal
An ability to use current techniques, skills, and tools necessary for computing practice
An ability to apply design and development principles in the construction of software systems of varying complexity


Assessment of how well outcomes are being achieved will be done by applying a rubric to a random sample of at least 25% of the students who have completed the work being used for assessment. Assessment tools are examinations and programming projects. For each outcome being assessed, each student in the sample will be judged to (a) exceed, (b) meet, or (c) fail to meet an objective standard designed to assess this outcome. Unless otherwise specified the thresholds used are: meet (70%), exceed (85%). We will say that this offering of the course achieved the particular outcome if and only if 70% or more of the students sampled were assessed to be in categories (b) or (c).

  • Course outcome I assessed by
    1. specific programming work and specific exam questions.
    2. the success of students who take CSE 232 within one year (meet: 70% earn 2.0 or better).
  • Course outcome II assessed by
    1. specific programming work and exam coding questions (written)
    2. the success of students who take CSE 232 within one year (meet: 70% earn 2.0 or better).
  • Course outcome III assessed by
    1. successful completion of 70% of the laboratory exercises (required to be done in teams of two).


  • Digital computing systems
  • Problem solving
  • Fundamentals of programming
  • Sequence, Selection, Repetition
  • Functions and modules
  • Data Structures
  • Objects and methods
  • Files
  • Data manipulation
  • Algorithms


  • The Practice of Computing using Python, Punch & Enbody, Addison-Wesley, 2010


  • Examinations
  • Homework
  • Labs