Introduction to Computer Programming 2017-02: Difference between revisions

From Innovation
Jump to: navigation, search
Line 69: Line 69:
! Week !! Topic !! Lecture !! !! Lab !! !! References
! Week !! Topic !! Lecture !! !! Lab !! !! References
|-
|-
| 1 || Python || Aug-29 || Introduction & Course Overview D01 || Aug-30 & Aug-01 || Variables D02-03, Operations and variables  Reading:  Day02 간단한 프로그램 만들기 Day03 연산과 변수 ||  
| 1 || Python || Aug-29 || Introduction & Course Overview D01 || Aug-30 & Aug-01 || Variables D02-03, Operations and variables  <br>'''Reading'''<br>Day02 간단한 프로그램 만들기 <br>Day03 연산과 변수 ||  
|-
|-
| 2 || || Sep-05 || Flow Diagram D04-05, for Loops Reading:  Day04 for 명령을 사용하여 똑같은 작업 반복하기 Day05 range 명령을 사용하여 변화를 주면서 반복하기 || Sept-06 & Sept-08 || Drawing and Input D06-07, Drawing and Input Reading: Day06 거북이 그래픽으로 그림 그리기  Day07 정보 입력하기 ||  
| 2 || || Sep-05 || Flow Diagram D04-05, for Loops <br>'''Reading'''<br>Day04 for 명령을 사용하여 똑같은 작업 반복하기 <br>Day05 range 명령을 사용하여 변화를 주면서 반복하기 || Sept-06 & Sept-08 || Drawing and Input D06-07, Drawing and Input <br>'''Reading''': <br>Day06 거북이 그래픽으로 그림 그리기  <br>Day07 정보 입력하기 ||  
|-
|-
| 3 || || Sep-12 || Control Flow D08-09, Condition/Random Reading:  Day08 True/False 판단하기 Day09 random 모듈로 임의의 수 뽑기 || Sept-13 & Sept-15 || Quiz 1 D13-14 Drawing and Game Reading:  Day13 거북이 그래픽 응용하기 Day14 계산 맞히기 게임 만들기 ||  
| 3 || || Sep-12 || Control Flow D08-09, Condition/Random <br>'''Reading'''<br>Day08 True/False 판단하기 <br>Day09 random 모듈로 임의의 수 뽑기 || Sept-13 & Sept-15 || Quiz 1 D13-14 Drawing and Game <br>'''Reading'''<br>Day13 거북이 그래픽 응용하기 <br>Day14 계산 맞히기 게임 만들기 ||  
|-
|-
| 4 || || Sep-19 || Repetition D10 Loops Reading:  Day10 while 명령으로 반복하기 || Sept-20 & Sept-22 || Arrays D14-15 Typing Game Reading: Day15: 타자 게임 만들기 ||  
| 4 || || Sep-19 || Repetition D10 Loops <br>'''Reading'''<br>Day10 while 명령으로 반복하기 || Sept-20 & Sept-22 || Arrays D14-15 Typing Game <br>'''Reading''': <br>Day15: 타자 게임 만들기 ||  
|-
|-
| 5 || || Sep-26 || Function D11-12 Definition and calls Reading:  Day11 함수를 정의하고 호출하기 Day12 함수 응용하기 || Sept-27 & Sept-29 || Review ||  
| 5 || || Sep-26 || Function D11-12 Definition and calls <br>'''Reading'''<br>Day11 함수를 정의하고 호출하기 <br>Day12 함수 응용하기 || Sept-27 & Sept-29 || Review ||  
|-
|-
| 6 || C || Oct-03 || 추석 || Oct-4-6 || 추석 ||  
| 6 || C || Oct-03 || 추석 || Oct-4-6 || 추석 ||  
|-
|-
| 7 || || Oct-10 || EXAM I Place: 407-101 Duration: 2 Hours || Oct-11 & Oct-13 || Introduction to C Writing and compiling the first program Reading: Ch2: 첫번째 프로그램, 자료형, C에서 문자, C에서 숫자 In class project: Trial and Error || K&R Ch 1
| 7 || || Oct-10 || EXAM I Place: 407-101 Duration: 2 Hours || Oct-11 & Oct-13 || Introduction to C Writing and compiling the first program <br>'''Reading''': Ch2: 첫번째 프로그램, 자료형, C에서 문자, C에서 숫자 In class project: Trial and Error || K&R Ch 1
|-
|-
| 8 || || Oct-17 || Variables and datatypes, operators Reading:  Ch5: 변수의 종류, 변수 정의하기 Ch9: 기본적인 산술 계산, 연산자의 우선 순위 Ch10: 복합 연산자 || Oct-18 & Oct-20 || Declarations and expressions In class project: || K&R Ch 2
| 8 || || Oct-17 || Variables and datatypes, operators <br>'''Reading''':  Ch5: 변수의 종류, 변수 정의하기 Ch9: 기본적인 산술 계산, 연산자의 우선 순위 Ch10: 복합 연산자 || Oct-18 & Oct-20 || Declarations and expressions In class project: || K&R Ch 2
|-
|-
| 9 || || Oct-24 || Control Flow  Reading:  Ch11: if 사용하기, else 사용하기 Ch14: while루프 Ch15: for 반복문, break사용하기 Ch17: switch 만들기 || Oct-25 & Oct-27 || Quiz 2 Statements and blocks In class project: || K&R Ch 3
| 9 || || Oct-24 || Control Flow  <br>'''Reading''':  Ch11: if 사용하기, else 사용하기 Ch14: while루프 Ch15: for 반복문, break사용하기 Ch17: switch 만들기 || Oct-25 & Oct-27 || Quiz 2 Statements and blocks In class project: || K&R Ch 3
|-
|-
| 10 || || Oct-31 || Functions and Program Structure Reading:  Ch30: 함수를 이용한 구조화 Ch31: 값으로 전달하기 Ch32: 값 반환하기 || Nov-01 & Nov-03 || Scope, Recursion Review || K&R Ch 4
| 10 || || Oct-31 || Functions and Program Structure <br>'''Reading''':  Ch30: 함수를 이용한 구조화 Ch31: 값으로 전달하기 Ch32: 값 반환하기 || Nov-01 & Nov-03 || Scope, Recursion Review || K&R Ch 4
|-
|-
| 11 || || Nov-07 || EXAM II Place: 407-101 Duration: 2 Hours || Nov-08 & Nov-10 || Arrays Reading:  Ch21: 배열 복습하기, 배열 안에 값 저장하기 In class project: ||  
| 11 || || Nov-07 || EXAM II Place: 407-101 Duration: 2 Hours || Nov-08 & Nov-10 || Arrays <br>'''Reading''':  Ch21: 배열 복습하기, 배열 안에 값 저장하기 In class project: ||  
|-
|-
| 12 || || Nov-14 || Pointers Reading:  Ch24: 메모리 주소, 포인터 변수 선언하기, 역참조 연산자 * 사용하기  Ch25: 배열의 이름은 포인터이다, 문자와 포인터, 포인터의 배열 Ch32: 주소로 전달하기 || Nov-15 & Nov-17 || Address Arithmetic In class project: || K&R Ch 5
| 12 || || Nov-14 || Pointers <br>'''Reading''':  Ch24: 메모리 주소, 포인터 변수 선언하기, 역참조 연산자 * 사용하기  Ch25: 배열의 이름은 포인터이다, 문자와 포인터, 포인터의 배열 Ch32: 주소로 전달하기 || Nov-15 & Nov-17 || Address Arithmetic In class project: || K&R Ch 5
|-
|-
| 13 || || Nov-21 || User Defined Data Types Reading:  Ch27: 구조체의 정의, 구조체 변수에 데이터 저장하기 || Nov-22 & Nov-24 || Quiz 3 Structures In class project: || K&R Ch 6
| 13 || || Nov-21 || User Defined Data Types <br>'''Reading''':  Ch27: 구조체의 정의, 구조체 변수에 데이터 저장하기 || Nov-22 & Nov-24 || Quiz 3 Structures In class project: || K&R Ch 6
|-
|-
| 14 || || Nov-28 || Input and Output Reading:  Ch28: 디스크 파일, 파일 열기 Ch29: 랜덤 파일 열기, 파일 안에서 돌아다니기 || Nov-29 & Dec-01 || File Access In class project: || K&R Ch 7
| 14 || || Nov-28 || Input and Output <br>'''Reading''':  Ch28: 디스크 파일, 파일 열기 Ch29: 랜덤 파일 열기, 파일 안에서 돌아다니기 || Nov-29 & Dec-01 || File Access In class project: || K&R Ch 7
|-
|-
| 15 || || Dec-05 || Review || Dec-6-8 || Learn to Debug ||  
| 15 || || Dec-05 || Review || Dec-6-8 || Learn to Debug ||  

Revision as of 12:38, 22 August 2017

Class Information

Class A Class B
Lecturer Seonah Lee Seongjin Lee
Assistant John Doe Jane Doe
Time and Place Tuesday: 407-508, 09:00-11:00 Tuesday: 407-101 09:00-11:00
Wednesday: 407-203 10:00-12:00 Wednesday: 407-202 10:00-12:00
Friday: 407-203 10:00-12:00 Friday: 407-202 10:00-12:00
Office Hour Tuesday: 11:00-12:00
Contacts Room: 407-307 Room 407-314
Email: saleese.gnu.ac.kr Email: insight@gnu.ac.kr

Course Introduction

In the Computer Engineering, the language you use determines the capabilities of the software you develop. The more powerful a language is, the easier you can increase the performance and the simpler you can write the software. We are going to learn two languages in this course, Python and C. Python is a versatile, yet powerful, language that is easy to learn as well as the ease of the use. Many of the well-known companies are using Python to solve many of the engineering problems. For example, Dropbox desktop client is written in Python. Another language we are learning in the class is C. Since Dennis Ritchie at AT&T Bell Lab in the early 1970s developed C Programming Language, it has become one of the most powerful language used by various developers working in mobile, enterprise, and embedded systems. The success of C language is the result from its portability, standard library, ready use of the hardware, and ease of optimization.

Goal

In this course, we are going to learn the essence of two languages, namely Python and C. Students are going to learn the following concepts.

  • Compiling and running the program
  • Variables, Data Types, and Arithmetic Expressions
  • Loops and Control Flows
  • Arrays and Pointers
  • Functions
  • Data Structures
  • File I/O

Textbook

Main Textbook

  • 모두의 파이썬 20일 만에 배우는 프로그래밍 기초 | 이승찬 지음 | 길벗 | 2016년 05월 09일 출간
  • 어서와 C언어는 처음이지! 초보자를 위한 C 프로그래밍 완벽가이드 | 그레그 페리 , 딘 밀러 지음 | 천인국 옮김 | 인피니티북스 | 2015년 06월 26일 출간

Supplementary Textbook

  • Allen B. Downey, "Think Python: How to Think Like a Computer Scientist", 2015, 정식 번역본 없음
  • Stephen G. Kochan, "Programming in C", Fourth Edition, Pearson Education, 2015, ISBN 0-321-77641-0 (처음 시작하는 C 프로그래밍)
  • Brian W. Kernighan, Dennis M. Ritchie, "C Programming Language" Prentice Hall, 1988 (2nd Edition) (Kernighan 의 C언어 프로그래밍)
  • Stephen Prata. "C Primer Plus". Sams, 2004 (C 기초 플러스)


Evaluation

Categories Ratio Categories Ratio
Attendance 10 Exam I 20
Assignments 20 Exam II 20
Quiz 10 Exam II 20
Total 100%


Schedule and Readings

Week Topic Lecture Lab References
1 Python Aug-29 Introduction & Course Overview D01 Aug-30 & Aug-01 Variables D02-03, Operations and variables
Reading:
Day02 간단한 프로그램 만들기
Day03 연산과 변수
2 Sep-05 Flow Diagram D04-05, for Loops
Reading:
Day04 for 명령을 사용하여 똑같은 작업 반복하기
Day05 range 명령을 사용하여 변화를 주면서 반복하기
Sept-06 & Sept-08 Drawing and Input D06-07, Drawing and Input
Reading:
Day06 거북이 그래픽으로 그림 그리기
Day07 정보 입력하기
3 Sep-12 Control Flow D08-09, Condition/Random
Reading:
Day08 True/False 판단하기
Day09 random 모듈로 임의의 수 뽑기
Sept-13 & Sept-15 Quiz 1 D13-14 Drawing and Game
Reading:
Day13 거북이 그래픽 응용하기
Day14 계산 맞히기 게임 만들기
4 Sep-19 Repetition D10 Loops
Reading:
Day10 while 명령으로 반복하기
Sept-20 & Sept-22 Arrays D14-15 Typing Game
Reading:
Day15: 타자 게임 만들기
5 Sep-26 Function D11-12 Definition and calls
Reading:
Day11 함수를 정의하고 호출하기
Day12 함수 응용하기
Sept-27 & Sept-29 Review
6 C Oct-03 추석 Oct-4-6 추석
7 Oct-10 EXAM I Place: 407-101 Duration: 2 Hours Oct-11 & Oct-13 Introduction to C Writing and compiling the first program
Reading: Ch2: 첫번째 프로그램, 자료형, C에서 문자, C에서 숫자 In class project: Trial and Error
K&R Ch 1
8 Oct-17 Variables and datatypes, operators
Reading: Ch5: 변수의 종류, 변수 정의하기 Ch9: 기본적인 산술 계산, 연산자의 우선 순위 Ch10: 복합 연산자
Oct-18 & Oct-20 Declarations and expressions In class project: K&R Ch 2
9 Oct-24 Control Flow
Reading: Ch11: if 사용하기, else 사용하기 Ch14: while루프 Ch15: for 반복문, break사용하기 Ch17: switch 만들기
Oct-25 & Oct-27 Quiz 2 Statements and blocks In class project: K&R Ch 3
10 Oct-31 Functions and Program Structure
Reading: Ch30: 함수를 이용한 구조화 Ch31: 값으로 전달하기 Ch32: 값 반환하기
Nov-01 & Nov-03 Scope, Recursion Review K&R Ch 4
11 Nov-07 EXAM II Place: 407-101 Duration: 2 Hours Nov-08 & Nov-10 Arrays
Reading: Ch21: 배열 복습하기, 배열 안에 값 저장하기 In class project:
12 Nov-14 Pointers
Reading: Ch24: 메모리 주소, 포인터 변수 선언하기, 역참조 연산자 * 사용하기 Ch25: 배열의 이름은 포인터이다, 문자와 포인터, 포인터의 배열 Ch32: 주소로 전달하기
Nov-15 & Nov-17 Address Arithmetic In class project: K&R Ch 5
13 Nov-21 User Defined Data Types
Reading: Ch27: 구조체의 정의, 구조체 변수에 데이터 저장하기
Nov-22 & Nov-24 Quiz 3 Structures In class project: K&R Ch 6
14 Nov-28 Input and Output
Reading: Ch28: 디스크 파일, 파일 열기 Ch29: 랜덤 파일 열기, 파일 안에서 돌아다니기
Nov-29 & Dec-01 File Access In class project: K&R Ch 7
15 Dec-05 Review Dec-6-8 Learn to Debug
16 Dec-12 Exam III Place: 407-101 Duration: 2 Hours K&R Appendix B

Miscellaneous

  • Class A and B will be taught with same text book, class materials, exercises, and assignments. There might be minor differences regarding the teaching methods and use of the time; however, overall layout and the course schedule in both of the classes is the same.
  • Each class is graded separately.