Software Analysis & Improv
Programming is the automation of information processing. Program analysis and transformation is the automation of programming itself---how much a program can understand and improve other programs. Because of the diversity and complexity of computer hardware, programmers increasingly depend on automation in compilers and other tools to deliver efficient and reliable software. This course combines fundamental principles and (hands-on) practical applications. Specific topics include data flow and dependence theories; static and dynamic program transformation including parallelization; memory and cache management; type checking and program verification; and performance analysis and modeling. The knowledge and practice will help students to become experts in software performance and correctness. Students taking the graduate level will have additional course requirements and a more difficult project.
Topics
- data flow and dependence theories
- static and dynamic program transformation including parallelization
- memory and cache management
- type checking and program verification
- and performance analysis and modeling
Topics explicitly listed in official catalogue description
Sources
- Course catalogue ↗2026-2027