EEE5501-01 Advanced Programming (Spring 2026)
Lectures: Thursday 2-3:50 PM @ B039
Lectures-labs-credits: 3-0-3
Instructor: William J. Song (Office: Engineering Building #3, C410, Email: wjhsong {\at} yonsei {\dot} ac {\dot} kr, Phone: 02-2123-2864)
Teaching assistant: TBD
Office hours:
- Instructor: Thursday 10-11 AM, or by appointment
- Teaching assistant: By appointment
Prerequisites:
- Introduction to C/C++ Programming or equivalent
- EEE2020 Data Structures and Algorithms in C/C++
Class objectives: This course covers advanced C/C++ programming techniques in Linux environment. Class objectives are as follows.
- Learning advanced programming techniques
- Understanding software-hardware interactions
- Parallel programming practice
Class rules:
- Honest and ethical behaviors are expected at all times. Any form of cheating will be severely penalized and reported to the university administration. This is a one-strike policy.
- Students must complete all assignments individually but are encouraged to seek help from the instructor or the teaching assistant (TA).
- Discussions between students are allowed, but sharing assignment solutions or source code is strictly prohibited.
- Lectures will be conducted entirely in English. Students may use Korean for Q&As.
- Requests for partial credits on assignments will be considered cheating attempt. Any student making such a request will lose all scores.
Textbook:
- Lecture slides
Grading:
- Attendance: 20%
- Class participation: 5%
- Programming assignments: 75% (subject to change)
- Assignment #1: Class
- Assignment #2: Template
- Assignment #3: Multi-threading
- Assignment #4: Message passing interface
- Assignment #5: GPU programming
Course plans: (subject to change)
| Weeks | Dates | Lectures | Notes | |
| 1 | – | 03/05 | Introduction | |
| 2 | – | 03/12 | Class | |
| 3 | – | 03/19 | Memory | |
| 4 | – | 03/26 | Makefile | Assignment #1 |
| 5 | – | 04/02 | Debugging | |
| 6 | – | 04/09 | Template | Assignment #2 |
| 7 | – | 04/16 | Template | |
| 8 | Midterm (no class) | |||
| 9 | – | 04/30 | Multi-threading | Assignment #3 |
| 10 | 05/07 | Multi-threading | ||
| 11 | – | 05/14 | Message passing interface | Assignment #4 |
| 12 | – | 05/21 | Message passing interface | |
| 13 | – | 05/28 | GPU programming | Assignment #5 |
| 14 | – | 06/04 | GPU programming | |
| 15 | Dead week (no class) | |||
| 16 | Final (no class) |
