Introduction to Computer Programming 2019-02: Difference between revisions

From Innovation
Jump to: navigation, search
Line 156: Line 156:




=== Part II - C Fundamentals ===
=== Part II - C Fundamentals ===
{|class="wikitable"
{|class="wikitable"
|-
|-
! colspan="2" style="background: Turquoise; text-align:left;"| Week 7 - on C Language
! colspan="2" style="background: Turquoise; text-align:left;"| Week 7 - on C Language
|-
|-
! width=50% ; style="text-align:left;"| Lecture : 17/10/2019 (Thu) '''Introduction'''
! width=50% ; style="text-align:left;"| Lecture : 17/10/2019 (Thu) '''Introduction'''
! width=50% ; style="text-align:left;"| Lab : 18/10/2019 (Fri) '''Variables'''
! width=50% ; style="text-align:left;"| Lab : 18/10/2019 (Fri) ''Overview, printf, and scanf'''
|-
|-
<!-- Monday -->
<!-- Monday -->
| style="vertical-align: top;"| '''Reading:'''
| style="vertical-align: top;"| '''Reading:'''
* The essential basics of getting to know the C language: pre-processing, compile, variables, linking (adapted from 6.s096 MIT) [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/MIT6_S096_IAP13_lec1.pdf  [pdf] ]
* The essential basics of getting to know the C language: pre-processing, compile, variables, linking (adapted from 6.s096 MIT) [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/MIT6_S096_IAP13_lec1.pdf  [pdf] ]
<!-- Friday -->
<!-- Friday -->
| style="vertical-align: top;"| '''Reading:'''
| style="vertical-align: top;"| '''Reading:'''
* Introduction to C programming [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C01_intro_kor.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C01_intro_kor.pdf  [pdf] ]
* Introduction to C programming [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C01_intro_kor.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C01_intro_kor.pdf  [pdf] ]
|-
<br> * To read user inputs and print texts on screen [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C02_form_IO_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C02_form_IO_kor.pdf  [pdf] ]
| colspan="2"  text-align:left;"| '''Video:'''
<br> '''Worksheet:'''
* Introduction to C programming [https://www.youtube.com/watch?v=XDlux67CLTM&t=0s&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI [watch] ] (44m)
<br> * Formatted input and output [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02a_form_io.ipynb [worksheet] ]
<br> * printf in detail [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02b_printf.ipynb  [worksheet] ]
|-
<br> * scanf in detail [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02c_scanf.ipynb  [worksheet] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 8 - on C Language
|-
|-
| colspan="2"  text-align:left;"| '''Video:'''
! width=50% ; style="text-align:left;"| Lecture : 24/10/2019 (Thu) '''printf and scanf'''
* Introduction to C programming [https://www.youtube.com/watch?v=XDlux67CLTM&t=0s&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI [watch] ] (44m)
! width=50% ; style="text-align:left;"| Lab : 25/10/2019 (Fri) '''Excercises on printf and scanf'''
<br> * Formatted input and output [https://www.youtube.com/watch?v=xK8JDpbC9x8&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=2 [watch] ] (30m)
|-
<!-- Monday -->
| style="vertical-align: top;"| '''Reading:'''
|-
* To read user inputs and print texts on screen [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C02_form_IO_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C02_form_IO_kor.pdf  [pdf] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 8 - on C Language
<br> '''Worksheet:'''
|-
<br> * Formatted input and output [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02a_form_io.ipynb [worksheet] ]
! width=50% ; style="text-align:left;"| Lecture : 24/10/2019 (Thu) '''expressions'''
! width=50% ; style="text-align:left;"| Lab : 25/10/2019 (Fri) '''if -else and switch cases'''
<!-- Friday -->
|-
| style="vertical-align: top;"| '''Worksheet:'''
<!-- Monday -->
* printf in detail [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02b_printf.ipynb  [worksheet] ]
| style="vertical-align: top;"| '''Reading:'''
<br> * scanf in detail [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C02c_scanf.ipynb [worksheet] ]
* Expresions and Operators [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C03_Expr_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C03_Expr_kor.pdf  [pdf] ]
<br> '''Worksheet:'''
|-
<br> * Expresions and Operators [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C03_var_as.ipynb [worksheet] ]
| colspan="2" text-align:left;"| '''Video:'''
* Formatted input and output [https://www.youtube.com/watch?v=xK8JDpbC9x8&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=2  [watch] ] (30m)
<!-- Friday -->
| style="vertical-align: top;"| '''Reading:'''
|-
* if-else and switch cases [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C04_if_switch_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C04_if_switch_kor.pdf  [pdf] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 9 - on C Language
<br> '''Worksheet:'''
|-
<br> * if-else [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04a_if.ipynb [worksheet] ]
! width=50% ; style="text-align:left;"| Lecture : 31/10/2019 (Thu) '''expressions'''
<br> * switch case [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04b_switch.ipynb [worksheet] ]
! width=50% ; style="text-align:left;"| Lab : 01/11/2019 (Fri) '''if -else and switch cases'''
|-
|-
<!-- Monday -->
| colspan="2" text-align:left;"| '''Video:'''
| style="vertical-align: top;"| '''Reading:'''
* Selection Statement [https://www.youtube.com/watch?v=0qxVW_6Cg4w&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=4 [watch] ] (44m)
* Expresions and Operators [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C03_Expr_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C03_Expr_kor.pdf [pdf] ]
<br> '''Worksheet:'''
|-
<br> * Expresions and Operators [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C03_var_as.ipynb [worksheet] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 9 - on C Language
|-
<!-- Friday -->
! width=50% ; style="text-align:left;"| Lecture : 31/10/2019 (Thu) '''Control Flow Statements'''
| style="vertical-align: top;"| '''Reading:'''
! width=50% ; style="text-align:left;"| Lab : 01/11/2019 (Fri) '''Excercises on control flow statements'''
* if-else and switch cases [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C04_if_switch_kor.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C04_if_switch_kor.pdf  [pdf] ]
|-
<br> '''Worksheet:'''
<!-- Monday -->
<br> * if-else [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04a_if.ipynb [worksheet] ]
| style="vertical-align: top;"| '''Reading:'''
<br> * switch case [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04b_switch.ipynb [worksheet] ]
* Summary on control flow [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C05_cf_sum.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C05_cf_sum.pdf [pdf] ]
<br> * Control flow statements [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C05_cf.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C05_cf.pdf  [pdf] ]
|-
<br> '''Worksheet:'''
| colspan="2"  text-align:left;"| '''Video:'''
<br> * in class excercises with pencil and papers
* Selection Statement [https://www.youtube.com/watch?v=0qxVW_6Cg4w&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=4 [watch] ] (44m)
<!-- Friday -->
|-
| style="vertical-align: top;"| '''Worksheet:'''
! colspan="2" style="background: Turquoise; text-align:left;"| Week 10 - on C Language
* for loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05a_for.ipynb [worksheet] ]
|-
<br> * while loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05b_while.ipynb [worksheet] ]
! width=50% ; style="text-align:left;"| Lecture : 07/11/2019 (Thu) '''Control Flow Statements'''
<br> * do…while loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05c_do-while.ipynb [worksheet] ]
! width=50% ; style="text-align:left;"| Lab : 08/11/2019 (Fri) '''Excercises on control flow statements'''
<br> * break; continue; goto [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05d_br_con_goto.ipynb [worksheet] ]
|-
|-
<!-- Monday -->
| colspan="2"  text-align:left;"| '''Video:'''
| style="vertical-align: top;"| '''Reading:'''
* On Control flow [https://www.youtube.com/watch?v=wTeFGICePUc [watch] ] (58m)
* Summary on control flow [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C05_cf_sum.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C05_cf_sum.pdf [pdf] ]
<br> * Control flow statements [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C05_cf.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C05_cf.pdf [pdf] ]
|-
<br> '''Worksheet:'''
! colspan="2" style="background: Turquoise; text-align:left;"| Week 10 - on C Language
<br> * in class excercises with pencil and papers
|-
! width=50% ; style="text-align:left;"| Lecture : 07/11/2019 (Thu) '''Arrays'''
<!-- Friday -->
! width=50% ; style="text-align:left;"| Lab : 08/11/2019 (Fri) '''Arrays Review and Functions'''
| style="vertical-align: top;"| '''Worksheet:'''
|-
* for loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05a_for.ipynb  [worksheet] ]
<!-- Monday -->
<br> * while loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05b_while.ipynb [worksheet] ]
| style="vertical-align: top;"| '''Reading:'''
<br> * do…while loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05c_do-while.ipynb [worksheet] ]
* Summary on array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C06_arr_sum.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C06_arr_sum.pdf [pdf] ]
<br> * break; continue; goto [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05d_br_con_goto.ipynb [worksheet] ]
<br> * Array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C06_arr.pptx [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C06_arr.pdf [pdf] ]
|-
<br> '''Worksheet:'''
| colspan="2"  text-align:left;"| '''Video:'''
<br> * array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C06_array.ipynb [worksheet] ]
* On Control flow [https://www.youtube.com/watch?v=wTeFGICePUc [watch] ] (58m)
<br>
<br><font color="red"> '''Assignemnt:'''
|-
<br> * description on [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_hw/HW_CF.ipynb  [description] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 11 - on C Language
<br> * Due: Nov-19 (Mon) before class
|-
<br> * submit through piazza </font>
! width=50% ; style="text-align:left;"| Lecture : 14/11/2019 (Thu) '''Arrays'''
<!-- Friday -->
! width=50% ; style="text-align:left;"| Lab : 15/11/2019 (Fri) '''Arrays Review and Functions'''
| style="vertical-align: top;"| '''Review and Reading:'''
|-
<br> * Recap on Array
<!-- Monday -->
<br> * Summary on Fuctions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func_sum.pdf  [pdf] ]
| style="vertical-align: top;"| '''Reading:'''
<br> * Details of Functions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func.pdf  [pdf] ]
* Summary on array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C06_arr_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C06_arr_sum.pdf  [pdf] ]
<br> '''Worshop:'''
<br> * Array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C06_arr.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C06_arr.pdf  [pdf] ]
<br> * In class exercise [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C07_func.ipynb  [worksheet] ]
<br> '''Worksheet:'''
<br> * array [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C06_array.ipynb  [worksheet] ]
<br>
<br><font color="red"> '''Assignemnt:'''
|-
<br> * description on [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_hw/HW_CF.ipynb [description] ]
! colspan="2" style="background: Turquoise; text-align:left;"| Week 11 - on C Language
<br> * Due: Nov-19 (Mon) before class
|-
<br> * submit through piazza </font>
! width=50% ; style="text-align:left;"| Lecture : 14/11/2019 (Thu) '''Review'''
<!-- Friday -->
! width=50% ; style="text-align:left;"| Lab : 15/11/2019 (Fri) '''Exam II'''
| style="vertical-align: top;"| '''Review and Reading:'''
|-
<br> * Recap on Array
<!-- Monday -->
<br> * Summary on Fuctions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func_sum.pdf  [pdf] ]
| style="vertical-align: top;"| '''Review and Reading:'''
<br> * Details of Functions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func.pdf  [pdf] ]
<br> * Recap on Array
<br> '''Worshop:'''
<br> * Summary on Fuctions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func_sum.pdf  [pdf] ]
<br> * In class exercise [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C07_func.ipynb  [worksheet] ]
<br> * Details of Functions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C07_func.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C07_func.pdf  [pdf] ]
<br> '''Worshop:'''
|}
<br> * In class exercise [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C07_func.ipynb  [worksheet] ]
 
 
<!-- Friday -->
| style="vertical-align: top;"| '''Exam'''
* Place : 407-101
* Time : 16:00-18:00
|}
=== Part III - C Arrays and Pointers ===
{|class="wikitable"
|-
! colspan="2" style="background: Turquoise; text-align:left;"| Week 12 - on C Language
|-
! width=50% ; style="text-align:left;"| Lecture : 14/11/2019 (Thu) ''' Exam II '''
! width=50% ; style="text-align:left;"| Lab : 15/11/2019 (Fri) ''' Fucntions: Exercise '''
|-
<!-- Monday -->
| style="vertical-align: top;"| '''Reading:'''
* Pointers Summary [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C08_Pointers_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C08_Pointers_sum.pdf  [pdf] ]
<br> * Pointers in details [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C08_Pointers.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C08_Pointers.pdf  [pdf] ]
<br> '''Worksheet:'''
<br> * In class excercises with pencil and paper
* Functions [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C07_func.ipynb  [worksheet] ]
<!-- Friday -->
| style="vertical-align: top;"| '''Worksheet:'''
* Excercises on Pointers [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C08_pointer.ipynb  [worksheet] ]
<br><font color="red"> '''Assignment:'''
<br> * Due date: Two weeks from today
<br> * Submit through Piazza (code, description, result screen capture)
<br> * Assignment Specification [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_hw/HW_Secret_Map.ipynb  [is here] ] </font>
|-
| colspan="2"  text-align:left;"| '''Video:'''
* Pointer Animation (Stanford Univ.) [https://www.youtube.com/watch?v=5VnDaHBi8dM  [watch] ] (3m)
|-
! colspan="2" style="background: Turquoise; text-align:left;"| Week 14 - on C Language
|-
! width=50% ; style="text-align:left;"| Lecture : 21/11/2019 (Thu) ''' Pointers and Arrays '''
! width=50% ; style="text-align:left;"| Lab : 22/11/2019 (Fri) ''' Pointers and Arrays: Excercises '''
|-
<!-- Monday -->
| style="vertical-align: top;"| '''Reading:'''
* Pointers and Arrays Summary [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C09_Pointers_Arrays_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C09_Pointers_Arrays_sum.pdf  [pdf] ]
<br> * Pointers and Arrays [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C09_Pointers_Arrays.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C09_Pointers_Arrays.pdf  [pdf] ]
<!-- Friday -->
| style="vertical-align: top;"| '''Worksheet:'''
* Pointers and Arrays Worksheet [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C09_pointer_arr.ipynb  [worksheet] ]
|-
! colspan="2" style="background: Turquoise; text-align:left;"| Week 15 - on C Language
|-
! width=50% ; style="text-align:left;"| Lecture : 28/11/2019 (Thu) ''' Structures '''
! width=50% ; style="text-align:left;"| Lab : 29/11/2019 (Fri) ''' Structures: Excercises '''
|-
<!-- Monday -->
| style="vertical-align: top;"| '''Reading:'''
* Structures Summary [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C10_Structures_sum.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C10_Structures_sum.pdf  [pdf] ]
<br> * Structures [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c/KNK_C10_Structures.pptx  [ppt] ] [http://open.gnu.ac.kr/lecslides/2018-2-introProg/Slides_c_pdf/KNK_C10_Structures.pdf  [pdf] ]
<br> '''Worksheet:'''
<br> *
<!-- Friday -->
| style="vertical-align: top;"| '''Worksheet:'''
* Excercises on Structures
<br> *
|-
|-
! colspan="2" style="background: Turquoise; text-align:left;"| Week 16 - on C Language
|-
! width=50% ; style="text-align:left;"| Lecture : 05/12/2019 (Thu) ''' Review '''
! width=50% ; style="text-align:left;"| Lab : 06/12/2019 (Fri) ''' Exam '''
|-
<!-- Monday -->
| style="vertical-align: top;"| '''Review:'''
* Review of Functions, Pointers, Structures
<!-- Friday -->
| style="vertical-align: top;"| '''Exam III'''
* Place: 407-101
* Time: 12:00-14:00
|}


=== Part III - C Fundamentals ===
=== Part III - C Fundamentals ===

Revision as of 17:16, 18 July 2019

Class Information

Class Info
Class ETA00086 - 컴퓨터 프로그래밍 기초, ETA00087 컴퓨터 프로그래밍 기초 실습
Lecturer Seongjin Lee
Time and Place A & B Group (Theory): 407-508 Thursday 14:00-16:00
A Group (Practice): 407-203, Friday 14:00-16:00
B Group (Practice): 407-203, Friday 16:00-18:00
1st Exam on 11-Oct Friday 16:00-18:00 in 407-101
2nd Exam on 15-Nov Friday 16:00-18:00 in 407-101
3rd Exam on 13-Dec Friday 16:00-18:00 in 407-101
Office Hour Tuesday: 11:00-12:00
Contacts Office: 407-314
Email: insight at gnu dot ac dot kr


Part I - Python

Week - 1 Python
Lecture : 05/09/2019 (Thu) Introduction Lab : 06/09/2019 (Fri) Variables
Course Overview

* First, we will go through the course overview, and what you have to do to succeed in this class. Course Overview
Reading:
* On computation and on difference with spoken lanuage and computer language [pptx ] [pdf ]
* Abstract view on python [pptx ] [pdf ]
* Introduction to Flow Diagram [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of compution (recommend to use github) notebook

Reading:

* Variables, operations, and expressions [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of compution (recommend to use github) notebook

Video:

* Spyder 실행하고 간단한 프로그램 작성하기 (11 min) [watch]
* Spyder 에서 작성한 코드 파일로 저장하기, 불러오기, 실행하기 (10 min) [watch]
* python에서 변수 사용, 생성하기, 그리고 활용하는 예 (8 min) [watch]
* Python의 연산자 종류와 사용 예 (10 min) [watch]

Week - 2 Python
Lecture : 12/09/2019 (Thu) Chuseok(추석)' Lab : 13/09/2019 (Fri) Chuseok(추석)'
National Holiday National Holiday



Week - 3 Python
Lecture : 19/09/2019 (Thu) For Loop Lab : 20/09/2019 (Fri) input function
Reading:

* for loop is a important building block, and widely used [pptx ] [pdf ]
* In python, range function controls the number of iterations in for loop [pptx ] [pdf ]
* flow diagram for the for loop and list [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of for loop (recommend to use github) notebook

Reading:

* Introducing user interaction with input function [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of input (recommend to use github) notebook

Video:

* for 문장과 range 함수의 활용 (10 min) [watch]
* input 함수의 활용과 입력한 값의 형의 이해 (9 min) [watch]

Week - 4 Python
Lecture : 26/09/2019 (Thu) if conditions Lab : 27/09/2019 (Fri) while loop
Reading:

* Evaluation of expression and logical operators [pptx ] [pdf ]
* Controlling flow of a program with if and else [pptx ] [pdf ]
* Introducing randomness to a program [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of flow of a program (recommend to use github) notebook

Reading:

* Another method of making a loop [pptx ] [pdf ]
* flow diagram for while function [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of while loop (recommend to use github) notebook

Video:

* if 문장으로 조건 비교하여 실행하기 (15 min) [watch]
* for 문과 유사한 기능의 while문으로 반복 동작을 더 정교하게 조정하기 (7 min) [watch]

Week - 5 Python
Lecture : 03/10/2019 (Thu) Lab : 04/10/2019 (Fri) Custom Functions
개천절(National Holiday) Reading:

* Dividing the code into functions to reduce the duplicate codes [pptx ] [pdf ]
* Example of using function [pptx ] [pdf ]
* flow diagram on function [pptx ] [pdf ]
Workbook:
* In class workbook for understanding the concepts of flow of a program (recommend to use github) notebook

Video:

* 함수의 작성의 문법과 활용의 예와 자기 자신을 다시 부르는 재귀함수의 예 (11 min) [watch]

Week - 6 Python
Lecture : 10/10/2019 (Thu) Review Lab : 11/10/2019 (Fri) Exam I
Workbook:

* Practice before the exam notebook

Exam

* Place : 407-101 * Time : 16:00-18:00






Part II - C Fundamentals

Week 7 - on C Language
Lecture : 17/10/2019 (Thu) Introduction Lab : 18/10/2019 (Fri) Overview, printf, and scanf'
Reading:

* The essential basics of getting to know the C language: pre-processing, compile, variables, linking (adapted from 6.s096 MIT) [pdf ]

Reading:

* Introduction to C programming [ppt ] [pdf ]
* To read user inputs and print texts on screen [ppt ] [pdf ]
Worksheet:
* Formatted input and output [worksheet ]
* printf in detail [worksheet ]
* scanf in detail [worksheet ]

Video:

* Introduction to C programming [watch ] (44m)
* Formatted input and output [watch ] (30m)


Week 8 - on C Language
Lecture : 24/10/2019 (Thu) expressions Lab : 25/10/2019 (Fri) if -else and switch cases
Reading:

* Expresions and Operators [ppt ] [pdf ]
Worksheet:
* Expresions and Operators [worksheet ]

Reading:

* if-else and switch cases [ppt ] [pdf ]
Worksheet:
* if-else [worksheet ]
* switch case [worksheet ]

Video:

* Selection Statement [watch ] (44m)

Week 9 - on C Language
Lecture : 31/10/2019 (Thu) Control Flow Statements Lab : 01/11/2019 (Fri) Excercises on control flow statements
Reading:

* Summary on control flow [ppt ] [pdf ]
* Control flow statements [ppt ] [pdf ]
Worksheet:
* in class excercises with pencil and papers

Worksheet:

* for loop [worksheet ]
* while loop [worksheet ]
* do…while loop [worksheet ]
* break; continue; goto [worksheet ]

Video:

* On Control flow [watch ] (58m)

Week 10 - on C Language
Lecture : 07/11/2019 (Thu) Arrays Lab : 08/11/2019 (Fri) Arrays Review and Functions
Reading:

* Summary on array [ppt ] [pdf ]
* Array [ppt ] [pdf ]
Worksheet:
* array [worksheet ]

Assignemnt:
* description on [description ]
* Due: Nov-19 (Mon) before class
* submit through piazza

Review and Reading:


* Recap on Array
* Summary on Fuctions [ppt ] [pdf ]
* Details of Functions [ppt ] [pdf ]
Worshop:
* In class exercise [worksheet ]


Week 11 - on C Language
Lecture : 14/11/2019 (Thu) Review Lab : 15/11/2019 (Fri) Exam II
Review and Reading:


* Recap on Array
* Summary on Fuctions [ppt ] [pdf ]
* Details of Functions [ppt ] [pdf ]
Worshop:
* In class exercise [worksheet ]

Exam

* Place : 407-101 * Time : 16:00-18:00









Part III - C Arrays and Pointers

Week 12 - on C Language
Lecture : 14/11/2019 (Thu) Exam II Lab : 15/11/2019 (Fri) Fucntions: Exercise
Reading:

* Pointers Summary [ppt ] [pdf ]
* Pointers in details [ppt ] [pdf ]
Worksheet:
* In class excercises with pencil and paper * Functions [worksheet ]

Worksheet:

* Excercises on Pointers [worksheet ]
Assignment:
* Due date: Two weeks from today
* Submit through Piazza (code, description, result screen capture)
* Assignment Specification [is here ]

Video:

* Pointer Animation (Stanford Univ.) [watch ] (3m)

Week 14 - on C Language
Lecture : 21/11/2019 (Thu) Pointers and Arrays Lab : 22/11/2019 (Fri) Pointers and Arrays: Excercises
Reading:

* Pointers and Arrays Summary [ppt ] [pdf ]
* Pointers and Arrays [ppt ] [pdf ]

Worksheet:

* Pointers and Arrays Worksheet [worksheet ]


Week 15 - on C Language
Lecture : 28/11/2019 (Thu) Structures Lab : 29/11/2019 (Fri) Structures: Excercises
Reading:

* Structures Summary [ppt ] [pdf ]
* Structures [ppt ] [pdf ]
Worksheet:
*

Worksheet:

* Excercises on Structures
*

Week 16 - on C Language
Lecture : 05/12/2019 (Thu) Review Lab : 06/12/2019 (Fri) Exam
Review:

* Review of Functions, Pointers, Structures

Exam III

* Place: 407-101 * Time: 12:00-14:00

Part III - C Fundamentals