Compilers
Notes and assignments:
Resources:
- A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman,
Compilers: Principles, Techniques, and Tools, 2nd Edition,
Addison Wesley, 2007.
- K. D. Cooper, L. Torczon, Engineering a Compiler, 2nd Edition,
Morgan Kaufmann, 2012.
- 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,
#9;
Final exams.
Programming Contests
Notes and assignments:
Resources:
- Stanford CS 97SI
and its resources.
- S. S. Skiena, M. A. Revilla,
Programming Challenges,
Springer, 2002.
Parallel Processing
Notes:
- Final exam grades.
- Presentations start at 1397/4/26 at 9:00.
- Midterm and final exams.
- Assignment #4 from Jájá: 2.10, 2.13, 2.40.
- Assignment #3 from Jájá: 2.8, 2.24, 2.28.
- Assignment #2 from Jájá: 2.2, 2.3, 2.6.
- Assignment #1 from Jájá: 1.4, 1.8, 1.17, and one of 1.9, 1.13, or 1.14.
- Suggestions for programming assignments and presentations.
- Course overview.
Resources:
- A. Grama, A. Gupta, G. Karypis, V. Kumar,
Introduction to Parallel Computing, 2nd Edition,
Pearson, 2003.
- J. Jájá,
An Introduction to Parallel Algorithms,
Addison-Wesley, 1992.
- D. Culler, J. P. Singh, A. Gupta,
Parallel Computer Architecture: A Hardware/Software Approach,
Morgan Kaufmann, 1998.