Zhendong Su: Catalogue data in Autumn Semester 2023

Name Prof. Dr. Zhendong Su
FieldComputer Science
Address
Professur für Informatik
ETH Zürich, CNB H 102
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Telephone+41 44 633 77 72
E-mailzhendong.su@inf.ethz.ch
DepartmentComputer Science
RelationshipFull Professor

NumberTitleECTSHoursLecturers
252-0210-00LCompiler Design8 credits4V + 3UZ. Su
AbstractThis course uses compilers as examples to expose students to modern software development techniques. Tentative topics include: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management.
Learning objectiveLearn principles of compiler design; gain practical experience designing and implementing a medium-scale software system.
ContentThis course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project.

A tentative list of topics: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management; optional advanced topics if/when time permits.
LiteratureAho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition)

Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
Prerequisites / NoticePrerequisites:
Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesfostered
Decision-makingfostered
Media and Digital Technologiesfostered
Problem-solvingfostered
Project Managementfostered
Social CompetenciesCommunicationfostered
Cooperation and Teamworkfostered
Personal CompetenciesAdaptability and Flexibilityfostered
Creative Thinkingfostered
Critical Thinkingfostered
Integrity and Work Ethicsfostered
Self-awareness and Self-reflection fostered
Self-direction and Self-management fostered
252-2600-05LSoftware Engineering Seminar Information Restricted registration - show details
The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
2 credits2SZ. Su, M. Vechev
AbstractThe course is an introduction to research in software engineering, based on reading and presenting high quality research papers in the field. The instructor may choose a variety of topics or one topic that is explored through several papers.
Learning objectiveThe main goals of this seminar are 1) learning how to read and understand a recent research paper in computer science; and 2) learning how to present a technical topic in computer science to an audience of peers.
ContentThe technical content of this course falls into the general area of software engineering but will vary from semester to semester.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesfostered
Media and Digital Technologiesfostered
Problem-solvingfostered
Social CompetenciesCommunicationassessed
Cooperation and Teamworkfostered
Leadership and Responsibilityfostered
Self-presentation and Social Influence fostered
Sensitivity to Diversityfostered
Personal CompetenciesAdaptability and Flexibilityfostered
Creative Thinkingfostered
Critical Thinkingfostered
Integrity and Work Ethicsfostered
Self-awareness and Self-reflection fostered
Self-direction and Self-management fostered