Announcement
- The lectures on April 5 and 7 will be given by Prof. Moonzoo Kim on the concurrent program testing techniques
- Classes on May 17 and 19 will be taught by Prof. Jaehyuk Hur
- No class on May 5 due to the national holiday (children's day)
- Quiz on May 24
- No class on May 26 due to graduate program entrance interview exam (makeup class on May 26 8-9 pm)
- Noah BBS on CS492B will be re-created soon (Noah BBS was crashed due to HW failure last week)
Administrative Information
-
Prof. Jaehyuk Huh
Office: 4406
Phone: 042-350-3515
E-mail: jhhuh @ kaist.ac.kr
Office hour: TBD
(reservation e-mail would be preferred) -
Prof. Moonzoo Kim
Office: 2434 (located at the east wing)
Phone: 042-350-3543
E-mail: moonzoo @ cs.kaist.ac.kr
Office hour: TBD
(reservation e-mail would be preferred)
- Teaching assistants: Bokyeong Kim (bokyeong @ calab.kaist.ac.kr)
- Lecture hours: Tue/Thur 9-10:15
- Lecture room: N1 Rm# 112
- Prerequisite: Equivalent knowledge obtained in System Programming class (i.e., experience in C/C++/Java as well as unix/linux programming)
-
Grading: attendance, class participation, and quiz: 10%, HW: 50%, exam:40%
- Late HW is accepted with 10% penalty of the max score in 1 day, 30% penalty of the max score in 3 days. HW will not be accepted after then.
- HW should be submitted both in hardcopy and softcopy (through email to TA). 10% penalty for missing hardcopy or softcopy.
- More than 8 absences of class may get F grade (to start class on time, late attendance is considered as 1/3 absence).
- Note: The official language in the class is English. All students should submit homeworks and answer exam/quiz in English; 10% penalty otherwise
- Questions and answers can be done through Noah BBS
Syllabus
This class teaches concurrent programming techniques and concurrent program analysis techniques for shared memory based target systems in C/C++ or Java programming language. This class will be co-taught by Prof. Jaehyuk Huh and Prof. Moonzoo Kim. Prof. Huh will teach concurrent programming techniques in the first half of the semester and Prof. Kim will teach concurrent program analysis techniques in the second half.
Course Material
- Reading list
-
Related tool list
-
Spin home page
-
Installation guideline for the windows platforms
- cygwin for Spin verification
- download the 32bit version (because the distributed spin binary is 32 bit version) and
- check and install devel->gcc-core at the installation step
- add the cygwin bin directory (e.g., c:\cygwin\bin) and the spin directory (e.g.,c:\spin) to the system path environment variable
- activeTCL for Spin GUI
- cygwin for Spin verification
-
Installation guideline for the windows platforms
-
Spin home page
Course Schedule
- March: Introduction, intro. to quality concurrent SW testing [pdf]
- March: Parallelism and Shared Memory
- Mar: Pthread and OpenMP I
- Mar: Pthread and OpenMP II
- Mar: Multi-core Memory Hierarchy
- Mar: Coherence
- Mar: No class
- Mar: Consistency
- Mar: Lock Basics
- April: Transactional Memory
- April: CUDA Overview
- April: CUDA Thread and Memory Model
- April: CUDA Performance
- April: Execution Replay for Multiprocessor Virtual Machines
- April: Midterm exam
- April: Concurrency Analysis for Correct Concurrent Programs [pdf]
- Apr: Deadlock detection/prediction technique [pdf]
- Apr 28: bug detection techniques [pdf]
- May 3: Atomicity bug detection techniques [pdf]
- May 10: Calfuzzer framework to analyze concurrent Java programs [pdf]
-
May 24, 26: Concurrency coverage-based testing [pdf]
- S. Hong, J. Ahn, S. Park, M. Kim, and M. J. Harrold, Testing Concurrent Programs to Achieve High Synchronization Coverage, Intl. Symp. on Software Testing and Analysis (ISSTA), 2012
- S.Hong, M.Staats, J.Ahn, M.Kim, and G.Rothermel, The Impact of Concurrent Coverage Metrics on Testing Effectiveness, IEEE International Conference on Software Testing, Verification and Validation (ICST), Mar 18-22, 2013
- Mutation testing by Stuart Anderson
- May 31: Model checker SPIN part I [pdf]
- June 2: Model checker SPIN part II [pdf]
- June 7, 9: Linear temporal logic (LTL) for requirement specification
-
June 14: Model-based concurrent program testing
- M.Kim, S.Hong, C.Hong and T.Kim, Model-based Kernel Testing for Concurrency Bugs through Counter Example Replay, Model-based Testing (ENTCS vol 253, no 2), pages 21-36, York, UK, Mar 22 2009
- June 21: Final exam (9-11AM)