Thursdays!
NIT "Challenging Thursdays" programming contest
(flyer, judge):
STATEMENT | DATE | BEST SOLUTION | PRIZE |
First season epilogue, CT0F
| 1395/9/4
| -
| -
|
CT09
| 1395/8/27
| DAL's friend!
| +2.4 OSLab, +1.2 OS, +0.7 CD, +1.2 AA
|
CT08
| 1395/8/20
| Hamidreza Yazdanpanah
| +2 OSLab, +1 OS, +0.5 CD, +1 AA
|
CT07
| 1395/8/13
| Hamidreza Yazdanpanah
| +2 OSLab, +1 OS, +0.5 CD, +1 AA
|
CT06
| 1395/8/6
| Hamidreza Yazdanpanah
| +2 OSLab, +1 OS, +0.5 CD, +1 AA
|
CT05
| 1395/7/29
| DAL!
| +2 OSLab, +1 CD, +1 AA
|
CT04
| 1395/7/22
| Hamidreza Yazdanpanah
| +1.4 OSLab, +0.7 CD, +0.7 AA
|
CT03
| 1395/7/15
| Hamidreza Yazdanpanah
| +1.2 OSLab, +0.6 CD, +0.6 AA
|
CT02
| 1395/7/8
| DAL!
| +1.4 OSLab, +0.3 OS, +0.7 AA
|
CT01
| 1395/7/1
| DAL!
| +0.6 OSLab, +0.2 OS
|
CT00
| 1395/6/25
| DAL!
| +0.5 OSLab
|
OSLab = OS Laboratory, CD = Compiler Design, PC = Programming Contests, AA = Advanced Algorithms.
Submission guide.
For submitting from Windows, you can use this program (courtesy of Amin Jamal).
Compilers
Notes and assignments:
- Midterm and final exams.
- Midterm preparation:
exercises 3.3.5, 3.9.4, 3.9.5, 4.6.5, 4.6.6, 4.6.9, 4.7.4, 4.7.5, 4.8.1
from the main text.
- Phase #2: syntax analysis (deadline 95/9/15).
- Phase #1: lexical analysis (deadline 95/8/2).
- TSLANG: an introduction.
Main text:
- A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman,
Compilers: Principles, Techniques, and Tools, 2nd Edition,
Addison Wesley, 2007.
Supplementary resources:
- 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:
- Optional programming assignment.
- Final exam.
- Assignment #3 (deadline 1395/10/5):
7.18, 7.22, 8.20, 8.23, 8.28, 9.19, 9.21, 10.10, 10.11.
- Midterm exam, its solutions.
- Assignment #2 (deadline 1395/9/14):
exercises 5.5, 5.8, 5.13, 5.16, 5.19, 5.20, 5.32, 5.33, 5.35,
6.6, 6.16, 6.17, 6.19, 6.23, 6.24 from the main text.
- As an example of mutex and spin locks, have a look at
the Linux USB printer device driver
(usblp.c);
I am struggling to make it work for my new printer.
- An example for synchronization using monitors.
- Assignment #1 (deadline 1395/8/18):
exercises 3.8, 3.9, 3.12, 3.14, 3.17, 4.4, 4.7, 4.8, 4.9, 4.11 from the main text.
- To better understand what OS kernels store for each process,
have a look the proc struct in
proc.h for XV6.
- This file shows
how system calls are invoked in Linux for x86 architecture.
Main text:
- A. Silberschatz, P.B. Galvin, G. Gagne,
Operating System Concepts, 9th Edition,
John Wiley & Sons, 2013.
Supplementary resources:
- 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 (compiled version):
#1,
#2,
#3,
#4,
#5,
#6,
#7 (ex7.c),
#8,
#9 (ex9.c).
Final exams.
Parallel Computer Architecture
Notes and assignments:
- Assignment #4: The deadline of the last step of the programming
assignment (OpenCL) is 95/11/8.
- Midterm and Final exams.
- Assignment #3: Answer exercises 2.3, 2.4, 2.5, 2.6 from the main text
(deadline 95/8/30).
- Assignment #2: The programming assignment
(the deadline for the first three steps is 95/8/15).
- Assignment #1: Answer these questions (deadline 95/8/1).
- An example for using
AVX intrinsics and PThreads to speed up simple matrix multiplication.
- We shall closely follow CMU 15-418.
Main text:
- D. Culler, J.P. Singh, A. Gupta,
Parallel Computer Architecture: A Hardware/Software Approach,
Morgan Kaufmann, 1998.
Supplementary resources:
- J.L. Hennessy, D.A. Patterson,
Computer Architecture: A Quantitative Approach, 5th Edition,
Morgan Kaufmann, 2012.
Conferences and journals:
- IEEE International Parallel and Distributed Processing Symposium (IPDPS)
- ACM Symposium on Principles and Practices of Parallel Programming (PPoPP)
- International Conference on Parallel Architectures and Compilation Techniques (PACT)
- Parallel Computing (Elsevier)
- International Journal of Parallel Programming (Springer)
- Journal of Parallel and Distributed Computing (Elsevier)