Compilers
Notes and assignments:
Resources:
- K. D. Cooper, L. Torczon, Engineering a Compiler, 2nd Edition,
Morgan Kaufmann, 2012.
- A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman,
Compilers: Principles, Techniques, and Tools, 2nd Edition,
Addison Wesley, 2007.
- A. W. Appel, Modern Compiler Implementation in C,
Cambridge University Press, 1998.
Operating Systems
Notes and assignments:
Resources:
- A. Silberschatz, P. B. Galvin, G. Gagne,
Operating System Concepts, 9th Edition,
John Wiley & Sons, 2013.
- T. Anderson, M. Dahlin,
Operating Systems: Principles and Practice, 2nd Edition,
Recursive Books, 2012.
- R. Cox, F. Kaashoek, R. Morris,
xv6: a simple, Unix-like teaching operating system;
Draft available here.
Laboratory assignments:
#1,
#2,
#3,
#4,
#5,
#6,
#7,
#8, and
#9.
Programming Contests
Notes and assignments:
Resources:
- A. Laaksonen,
Guide to Competitive Programming,
Springer, 2017.
- Stanford CS 97SI
and its resources.
- S. S. Skiena, M. A. Revilla,
Programming Challenges,
Springer, 2002.
Parallel Processing
Notes and assignments:
Resources:
- J. Jájá,
An Introduction to Parallel Algorithms,
Addison-Wesley, 1992.
- S. G. Akl,
The Design and Analysis of Parallel Algorithms,
Prentice Hall, 1989.
- R. Miller, L. Boxer,
Algorithms Sequential and Parallel: A Unified Approach, Third Edition,
Cengage Learning, 2013.