Introduction to Software Design - 2020 Spring

  • Instructor: Yoonsang Lee
  • Teaching Assistant: Chaejun Sohn
  • Undergraduate Mentor: Geunuk Cheong, Dahae Park
  • Time / Location:
    • Live online lectures and labs due to the COVID-19 pandemic.
    • Wed 10:00-12:00 / Online (originally 207 IT.BT Building) - Lecture
    • Thu 15:00-17:00 / Online (originally 609 IT.BT Building) - Lab 1
    • Fri 10:00-12:00 / Online (originally 609 IT.BT Building) - Lab 2

Course Outline

The first year students will learn the basics about computer programming. This course introduces C and Python programming languages.

  • With Python, you will learn the main concepts of programming such as variables, operators, loops, conditional statements, functions, etc., and have the ability to develop simple text-based games.
  • In addition to learning the main concepts of programming through C, you will also learn how to represent data, pointers, and dynamic allocation of memory to gain a deeper understanding of how computer programs work.
  • Understand common parts of programming languages and parts that may be different for each language by writing Python and C code for the same programs, and through this, deepen understanding of programming languages.

Schedule

Week Date Topics Reference Materials
1 Mar 18 / Mar 19, 20 1 - Course Intro / 1 - Lab - Python Environment Setting, Assignment 1  
2 Mar 25 / Mar 25, 26 2 - P01. Hello World / 2 - Lab - Gitlab, Assignment 2  
3 Apr 01 / Apr 02, 03 3 - P02. Guess the Number / Assignment 3  
4 Apr 08 / Apr 09, 10 4 - P03. Dragon Realm / Assignment 4  
5 Apr 15 / Apr 16, 17 5 - P04. Hangman / Assignment 5  
6 Apr 22 / Apr 23, 24 6 - C01. C Basics / 6 - Lab - CEnvSetting, Assignment 6 6 - Lab - ref-VimAdvanced
7 Apr 29 / Apr 30, May 1 7 - C02. Data Representation / Assignment 7  
8 May 06 / May 07, 08 8 - C03. Functions / Assignment 8  
9 May 13 / May 14, 15 9 - C04. Array, Pointer / Assignment 9  
10 May 20 / May 21, 22 10 - C05. String Functions, Text Games in C, Const / Assignment 10  
11 May 27 / May 28, 29 11 - C06. Parameter Passing, Const Pointer & String, Struct / Assignment 11  
12 Jun 03 / Jun 04, 05 12 - C07. More about Array & Pointer, Command-line Arguments, Preprocessor / Assignment 12  
13 Jun 10 / Jun 11, 12 13 - C08. Dynamic Allocation / Assignment 13  
14 Jun 17 / Jun 18, 19 Final Exam Week  
15 Jun 24 / Jun 25, 26 Final Assignment