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.
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.
- 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.
zyBooks, Programming in Python 3, https://www.zybooks.com/catalog/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.
Added 9.4.2018 (J. Sison)