EEE5501-01 Advanced Programming (Spring 2025)
Lectures: Tuesday 1-2:50 PM, Thursday 1-1:50 PM @ B731
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 otherwise by appointment
- Teaching assistant: TBD
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 attempt at cheating will be severely penalized, and incidents will be reported to the university administration for further action – No excuses will be accepted. It will be a one-strike out.
- Students must complete all assignments individually but are encouraged to seek help from the instructor or teaching assistant (TA).
- Discussions between students are allowed, but assignment solutions (i.e., source codes) must not be shared.
- Lectures will be conducted only in English. Students may use Korean for Q&A.
- Asking partial credits for assignments will be considered a cheating attempt, and any student doing so 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
- Assignment #6: TBD
Course plans: (subject to change)
Weeks | Dates | Lectures | Notes | |
1 | 03/04 | 03/06 | Introduction | |
2 | 03/11 | 03/13 | Class | Assignment #1 |
3 | 03/18 | 03/20 | Memory | |
4 | 03/25 | 03/27 | Makefile | |
5 | 04/01 | 04/03 | Debugging | Assignment #2 |
6 | 04/08 | 04/10 | Template | |
7 | 04/15 | 04/17 | Template | Assignment #3 |
8 | Midterm (no class) | |||
9 | 04/29 | 05/01 | Multi-threading | |
10 | 05/08 | Multi-threading | Assignment #4 | |
11 | 05/13 | 05/15 | Message passing interface | |
12 | 05/20 | 05/22 | Message passing interface | Assignment #5 |
13 | 05/27 | 05/29 | GPU programming | |
14 | 06/03 | 06/05 | GPU programming | Assignment #6 |
15 | Dead week (no class) | |||
16 | Final (no class) |