Skip to main content
Search Context

CMSC 201 Syllabus

Computer Science I


MATH 150, MATH 151, MATH 152, or MATH 155 with a grade of ‘C’ or better, or score of 5 on the Math Placement Test.


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

Each student will:

  1. Understand the basic concepts of programming: The course aims to provide students with a solid understanding of fundamental programming concepts, such as variables, data types, control structures (loops and conditionals), and functions.
  2. Learn the syntax and structure of Python: Students will become familiar with the Python programming language, its syntax, and the structure of a Python program. They will learn how to write and execute Python code using an integrated development environment (IDE) or a text editor.
  3. Develop problem-solving skills: The course will focus on cultivating students’ problem-solving abilities by teaching them how to break down complex problems into smaller, more manageable tasks. They will learn how to use programming constructs and algorithms to solve problems efficiently.
  4. Use a Linux command line to create, test, and execute Python programs: Students will practice using file organization and directory navigation commands in a Linux environment.
  5. Develop debugging and troubleshooting skills: Students will learn how to effectively debug and troubleshoot their Python programs. They will understand common programming errors and acquire techniques to identify and fix these issues, enhancing their ability to write robust and error-free code.
  6. Create and present Python projects: Throughout the course, students will undertake hands-on programming projects that reinforce their learning and allow them to apply their newly acquired skills. They will have the opportunity to create small-scale Python applications and present their projects to demonstrate their understanding of programming concepts and techniques.

Student Outcomes

Level Of Emphasis
ABET Outcome Low Medium High
Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. X
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. X
Communicate effectively in a variety of professional contexts. X
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. X
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. X
Apply computer science theory and software development fundamentals to produce computing-based solutions. X


Zelle, J. (2016). Python Programming: An Introduction to Computer Science, Third Edition. Franklin, Beedle & Associates.


  • Intro to Computer Science using Python
  • Use of the Linux command line
  • Numbers
  • Lists
  • for Loops
  • While loops
  • Strings
  • Conditionals and Booleans
  • Documentation
  • Functions
  • I/O
  • Top-down Design
  • Python’s Data Types
  • Abstract Data Types
  • Two dimensional arrays/lists
  • Sorting
  • Searching
  • Algorithmic Analysis
  • Recursion

Optional Topics

  • Objects and Methods
  • Advanced IDEs
  • Debuggers (pdb)
  • Tracing Functions
  • Random Numbers
  • Graphics
  • Coupling and Cohesion
  • Command-line Arguments


~32% 6 homeworks
~32% 3 projects
10% best 10 out of 12 or 13 labs
25% 3 Exams (2 Midterms and a Final)

Updated June 19, 2023

Approved TBD