Creative Software Design - 2020 Fall

  • Instructor: Yoonsang Lee
  • Teaching Assistant: Jeongmin Lee
  • Undergraduate Mentor: Sangwha Lee, Si Zheng
  • Time / Location:
    • Live online lectures and labs due to the COVID-19 pandemic.
    • Tue 10:00-12:00 / Online (originally 609 IT.BT Building) - Lecture
    • Wed 15:00-17:00 / Online (originally 609 IT.BT Building) - Lab 1
    • Thu 15:00-17:00 / Online (originally 609 IT.BT Building) - Lab 2

Course Outline

In this course the students will learn the fundamentals of C++ language and practice programming skills by writing many exercise programs in a good coding style. They will also learn and practice using development tools and editors in Unix / Linux environment. Through homework and exercise problems the students will study how to write concise programs in more efficient and more creative ways.

  • Through C ++, students will learn key concepts of object-oriented programming such as classes, inheritance, and polymorphism, and have the ability to develop simple text-based programs. They will also learn about references, pointers, dynamic allocation, and so on, to get a deeper understanding of how computer programs work.

Schedule

Week Date Topics Reference Materials
1 Sep 01 / Sep 02, 03 1 - Course Intro /
1 - Lab1 - Environment Setting, 1 - Lab2 - G++, Make, GDB / Assignment 1
1 - Lab1 - Vim Advanced
2 Sep 08 / Sep 09, 10 2 - Review of C Pointer, Const and Structure / Assignment 2  
3 Sep 15 / Sep 16, 17 3 - Differences Between C and C++ / Assignment 3  
4 Sep 22 / Sep 23, 24 4 - Dynamic Memory Allocation, References / Assignment 4  
5 Sep 29 / Sep 30, Oct 01 5 - Compilation and Linkage, CMD Args / Assignment 5  
6 Oct 06 / Oct 09, 10 6 - Class / Assignment 6  
7 Oct 13 / Oct 16, 17 7 - Standard Template Library(STL) / Assignment 7  
8 Oct 20 / Oct 23, 24 Midterm Exam Week  
9 Oct 27 / Oct 30, 31 8 - Inheritance, Const & Class / Assignment 8  
10 Nov 03 / Nov 04, 05 9 - Polymorphism 1 / Assignment 9  
11 Nov 10 / Nov 11, 12 10 - Polymorphism 2 / Assignment 10  
12 Nov 17 / Nov 18, 19 11 - Copy Constructor, Operator Overloading / Assignment 11  
13 Nov 24 / Nov 25, 26 12 - Template / Assignment 12  
14 Dec 01 / Dec 02, 03 13 - Exception Handling / Assignment 13  
15 Dec 08 Final Exam