Introduction to Computer Programming 2019-02: Difference between revisions
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) '' | ! 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] ] | |||
<br> '''Worksheet:''' | |||
<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" text-align:left;"| '''Video:''' | |||
* Introduction to C programming [https://www.youtube.com/watch?v=XDlux67CLTM&t=0s&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI [watch] ] (44m) | |||
<br> * Formatted input and output [https://www.youtube.com/watch?v=xK8JDpbC9x8&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=2 [watch] ] (30m) | |||
< | |||
| | |- | ||
* | ! colspan="2" style="background: Turquoise; text-align:left;"| Week 8 - on C Language | ||
|- | |||
! 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''' | |||
|- | |||
<!-- Monday --> | |||
| style="vertical-align: top;"| '''Reading:''' | |||
* 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] ] | |||
<!-- 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] ] | ||
<br> '''Worksheet:''' | |||
<br> * if-else [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04a_if.ipynb [worksheet] ] | |||
<br> * switch case [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C04b_switch.ipynb [worksheet] ] | |||
|- | |||
< | | colspan="2" text-align:left;"| '''Video:''' | ||
* Selection Statement [https://www.youtube.com/watch?v=0qxVW_6Cg4w&list=PLWm33cHVRby7GeGFaFP4vVDQSW4_vRbFI&index=4 [watch] ] (44m) | |||
|- | |||
! colspan="2" style="background: Turquoise; text-align:left;"| Week 9 - on C Language | |||
|- | |||
! width=50% ; style="text-align:left;"| Lecture : 31/10/2019 (Thu) '''Control Flow Statements''' | |||
! width=50% ; style="text-align:left;"| Lab : 01/11/2019 (Fri) '''Excercises on control flow statements''' | |||
|- | |||
<!-- Monday --> | |||
| style="vertical-align: top;"| '''Reading:''' | |||
* 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:''' | |||
<br> * in class excercises with pencil and papers | |||
<!-- Friday --> | |||
| style="vertical-align: top;"| '''Worksheet:''' | |||
* 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] ] | |||
<br> * do…while loop [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05c_do-while.ipynb [worksheet] ] | |||
<br> * break; continue; goto [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C05d_br_con_goto.ipynb [worksheet] ] | |||
|- | |||
< | | colspan="2" text-align:left;"| '''Video:''' | ||
* On Control flow [https://www.youtube.com/watch?v=wTeFGICePUc [watch] ] (58m) | |||
<br> * | |- | ||
! colspan="2" style="background: Turquoise; text-align:left;"| Week 10 - on C Language | |||
|- | |||
! width=50% ; style="text-align:left;"| Lecture : 07/11/2019 (Thu) '''Arrays''' | |||
! width=50% ; style="text-align:left;"| Lab : 08/11/2019 (Fri) '''Arrays Review and Functions''' | |||
|- | |||
<!-- Monday --> | |||
| style="vertical-align: top;"| '''Reading:''' | |||
* 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> * | <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:''' | |||
<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] ] | |||
<br> * Due: Nov-19 (Mon) before class | |||
<br> * submit through piazza </font> | |||
<!-- Friday --> | |||
| style="vertical-align: top;"| '''Review and Reading:''' | |||
<br> * Recap on Array | |||
< | <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] ] | ||
<br> '''Worshop:''' | |||
<br> * | <br> * In class exercise [http://open.gnu.ac.kr/lecslides/2018-2-introProg/c_ws/C07_func.ipynb [worksheet] ] | ||
<br> ''' | |||
<br> * | |||
|- | |||
! colspan="2" style="background: Turquoise; text-align:left;"| Week 11 - on C Language | |||
|- | |||
! width=50% ; style="text-align:left;"| Lecture : 14/11/2019 (Thu) '''Review''' | |||
<!-- | ! 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> | <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:
* Variables, operations, and expressions [pptx ] [pdf ]
|
Video:
* Spyder 실행하고 간단한 프로그램 작성하기 (11 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 ]
|
Reading:
* Introducing user interaction with input function [pptx ] [pdf ]
|
Video:
* for 문장과 range 함수의 활용 (10 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 ]
|
Reading:
* Another method of making a loop [pptx ] [pdf ]
|
Video:
* if 문장으로 조건 비교하여 실행하기 (15 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 ]
|
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 ]
|
Video:
* Introduction to C programming [watch ] (44m)
| |
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 ]
|
Reading:
* if-else and switch cases [ppt ] [pdf ]
|
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 ]
|
Worksheet:
* for loop [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 ]
|
Review and Reading:
|
Week 11 - on C Language | |
Lecture : 14/11/2019 (Thu) Review | Lab : 15/11/2019 (Fri) Exam II |
Review and Reading:
|
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 ]
|
Worksheet:
* Excercises on Pointers [worksheet ]
|
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 ]
|
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 ]
|
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 |