Discussion - 1.0 hours
- 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.
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.