EEE5501-01 Advanced Programming (Fall 2022)
Lectures:  Monday 10-11:50am, Wednesday 10-10:50am at Eng-B731

Lectures-labs-credits:  3-0-3

 

Instructor:  William J. Song (Office: Eng-C410, Email: wjhsong {\at} yonsei {\dot} ac {\dot} kr, Phone: 02-2123-2864)

Teaching assistant:  Taesu Lim (Office: Eng-B705, Email: taesu.lim {\at} yonsei {\dot} ac {\dot} kr, Phone: 02-2123-7290)

 

Office hours:

  • Instructor:  Only by appointment
  • Teaching assistant:  Only 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 scores. Ask questions when you think grading is mistaken not when you want extra credits for no valid reasons.

 

Textbook:

  • Lecture slides

 

Grading:

  • Attendance:  10%
  • Programming assignments:  90% (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 9/5 9/7 Class
2 9/14 Makefile Assignment #1
3 9/19 9/21 Debugging
4 9/26 9/28 Template
5 10/5 Template Assignment #2
6 10/10 10/12 Multi-threading
7 10/17 10/19 Multi-threading Assignment #3
8 10/24 10/26 Midterm
9 10/31 11/2 Message passing interface
10 11/7 11/9 Message passing interface Assignment #4
11 11/14 11/16 GPU programming
12 11/21 11/23 GPU programming Assignment #5
13 11/28 11/30 Socket programming
14 12/5 12/7 Event-driven programming Assignment #6
15 12/12 12/14 Dead week
16 12/19 12/21 Final