ECS 36A Programming and Problem Solving (4 units)

Lecture: 3 hours
Discussion: 1 hour


Prior experience with basic programming concepts (variable, loops, conditional statements) required; must satisfy computer science placement exam, or C- or better in ECS 32A.

Credit restrictions/cross listings:

Two units if completed ECS 032A; no credit for students who have completed ECS 032B or previous course ECS 030.

Catalog Description:

Computers and computer programming for students with some prior experience, algorithm design, and debugging. Good programming style. Use of basic UNIX tools.

Summary of course contents

  • The UNIX Environment.
  • First-level understanding of the nature of UNIX processes and job control.
  • UNIX hierarchical file system.
  • UNIX utilities, e.g., find, grep, sort, uniq, head.
  • Shell script understanding.
  • Algorithms: general concept, development of efficient algorithms.
  • Programming in Python (or an alternative programming language).
  • Review of syntax of simple statements, arithmetic and boolean expressions, assignment statements, input and output statements.
  • Data types: lists, tuples, dictionaries, classes.
  • Functions: general concept, declaration and calls, parameters, function call stacks.
  • Recursion.
  • Use of an Integrated Development Environment (IDE).
  • Software engineering: running, debugging, testing programs, building quality program using software development tools
  • Practice writing larger programs and finding good abstraction boundaries
  • Use of libraries and importing.
  • Debugging techniques, especially using debugging aids such as pdb/rpdb.

Illustrative reading

zyBooks, Programming in Python 3

Shotts, William E., Jr., The Linux Command Line: A Complete Introduction. No Starch Press, 2012.

Engineering Design Statement:

ABET Category Content:



Science & Engineering


ECS 32A and ECS 36A/ECS 30 cover programming, but in ECS 36A it is covered more quickly and larger programs are written. ECS 36A also introduces UNIX. 

Instructors: Staff





Added 9.4.2018 (J. Sison)