EEE5501-01 Advanced Programming (Spring 2024)
Lectures:  Monday 9-9:50am, Wednesday 9-10:50am

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:  Haneul Park (Office: Engineering Building #2, B705, Email: Rita {\at} yonsei {\dot} ac {\dot} kr, Phone: 02-2123-7290)

 

Office hours:

  • Instructor:  By appointment
  • Teaching assistant:  By appointment

 

Prerequisites:

  • Introduction to C/C++ Programming or equivalent
  • EEE2020 or CSI2103 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
  • Practice of parallel programming

 

Class rules:

  • Honest and ethical behaviors are expected at all times. All cheating attempts (even suspicious activities) will be seriously penalized, and the incidents will be reported to the university administration to take additional actions. No excuses will be heard. It will be one-strike out.
  • Students should 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 provided only in English. However, students are allowed to use Korean for Q&As.
  • Begging partial credits of assignments or exams will be regarded as cheating attempts, and those students will lose all their scores. Ask questions when you think grading is mistaken, not when you want extra credits for no valid reasons.

 

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:  Encription (TBD)

 

Course plans:  (subject to change)

Weeks Dates Lectures Notes
1 03/04 03/06 Class
2 03/11 03/13 Class Assignment #1
3 03/18 03/20 Makefile and debugging
4 03/25 03/27 Template
5 04/01 04/03 Template Assignment #2
6 04/08 Multi-threading
7 04/15 04/17 Multi-threading Assignment #3
8 04/22 04/24 Midterm (no class)
9 04/29 05/01 Message passing interface
10 05/08 Message passing interface Assignment #4
11 05/13 GPU programming
12 05/20 05/22 GPU programming Assignment #5
13 05/27 05/29 Encryption
14 06/03 06/05 Encryption Assignment #6
15 06/10 06/12 Dead week (no class)
16 06/17 06/19 Final (no class)