Skip to main content
Search Context

CMSC 201 Syllabus

Computer Science I for Majors


MATH 150 (or better)


An introduction to computer science through problem solving and computer programming. Programming techniques covered by this course include modularity, abstraction, top-down design, specifications documentation, debugging and testing. The core material for this course includes control structures, functions, lists, strings, abstract data types, file I/O, and recursion.

Course Outcomes

  1. To develop problem-solving skills, especially in the use of computers to solve real-world problems.
  2. To learn basic programming skills, especially software development using the Python language.
  3. To learn how to use UMBC’s UNIX system to create, test and execute Python programs.
  4. To prepare for further study in Computer Science.

Program Outcomes

This course enables the following program outcomes:

  • be proficient in at least one high-level programming language and have an ability to analyze, design, and implement software solutions in a variety of settings;
  • have gained familiarity with state-of-the-art programming techniques, tools, and practices;


Python Programming: An Introduction to Computer Science, John Zelle, Franklin, Beedle & Associates. Recommended


  • Intro to Computer Science using Python
  • Numbers
  • Lists
  • for Loops
  • Strings
  • Conditionals and Booleans
  • Documentation
  • Functions
  • Tracing Functions
  • I/O
  • Loops
  • Graphics
  • Objects
  • Methods
  • Top-down Design
  • Random Numbers
  • Python’s Data Types
  • Abstract Data Types
  • Sorting
  • Searching
  • Algorithm Analysis
  • Command-line Arguments
  • Recursion
  • Defining New Classes
  • Coupling and Cohesion


24% 8 homeworks
16% 2 projects
10% best 10 out of 12 labs
25% Midterm
25% Final

Approved March 1, 2012