[Teaching home]

EEL702: Computer System Software

If you're doing the course, please join the Piazza forum (the access code has been sent to you by e-mail).

Instructors: Sumantra Dutta Roy (SDR) and Sumeet Agarwal (SA)
4 credits (3-0-2)
Pre-requisites: CSL201 & EEL308
Overlaps with: CSL728
I Semester 2013–14
Tu W F 8–8:50, II-325

This course covers a number of different strands. It is primarily meant to be an overview of the tools and techniques that go into developing systems software, which is software that forms the interface between user applications and the computer system. We will cover C and other programming/scripting tools which are typically used to develop such software. A substantial chunk of the course will be devoted to the theory and practice of developing programming language compilers. We will also cover some aspects of software modelling and verification, programming paradigms, and touch upon modern distributed systems software such as Hadoop.

Evaluation components

Planned outline

References:
Week(s) Topics References Primary instructor
1 Introduction to automata theory: Finite state machines FOCS Chapt. 10 SDR
2 A brief introduction to C programming SDR
3 Formal languages, regular expressions FOCS Chapt. 10 SDR
4–5 Compilers: Lexical analysis CPTT Chapt. 3; Flex tutorial; IBM developerWorks; Flex & Bison book SDR
6–8 Compilers: Syntactic analysis Compilers overview slides [CS143]; CPTT Chapt. 4; Yacc examples SA
8–9 Compilers: Semantic analysis, type checking, run-time environments CPTT Chapt. 5–7; Semantic analysis slides, Type-checking slides, Scoping slides [CS143] SA
9 Assemblers, code generation CPTT Chapt. 8–10 SDR
10 Programming language paradigms; object-oriented programming Programming language slides SA
10–12 Shell scripting Example scripts SDR
12–13 Software modelling and formal verification Overview slides; Software development slides; Formal verification overview; Model checking; Linear Temporal Logic SA
14 Hadoop + MapReduce A very short Intro to Hadoop [by Ken Krugler]; Hadoop on Ubuntu tutorial; WordCount example code SA

[Teaching home]