Introduction to Computer Programming 2018-02
Class Information
Class Info | |
---|---|
Class | ETA00086 - 컴퓨터 프로그래밍 기초, ETA00087 컴퓨터 프로그래밍 기초 실습 |
Lecturer | Seongjin Lee |
Time and Place | A & B Group (Theory): 407-101 Monday 14:00-16:00 |
A Group (Practice): 407-203, Friday 12:00-14:00 | |
B Group (Practice): 407-203, Friday 14:00-16:00 | |
Office Hour | Tuesday: 11:00-12:00 |
Contacts | Office: 407-314 |
Email: insight at gnu dot ac dot 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.
For your information, Prof. Kyounghoon Kim is teaching the same course. Do interact with all the classmates and share. Don't be a big fish in a pond.
Goal
In this course, we are going to learn the essence of 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
Python
There are two textbooks for Python. The class is based on the first book which is elementary and an introductory textbook on python for absolute beginner, but the second book is recommend. Although there is no Korean version of Think Python, it is written in plain English with friendly style. It would be better to have this book rather than the first. Moreover, the author made it freely available on the web.
- 모두의 파이썬 20일 만에 배우는 프로그래밍 기초 | 이승찬 지음 | 길벗 | 2016년 05월 09일 출간 교보문고 바로가기
- Allen B. Downey, "Think Python: How to Think Like a Computer Scientist", 2015, 원서 바로가기 한글 비공식 번역판
C
There are two must have and one (translation available) recommended books. I also recommend you to read C언어 공부법과 책추천(by sunyzero) because it gives guide on how to study the language and provides reasons why the first two books are required textbooks. We are going to use the King's book in the class. Kernighan and Ritchie's book provides very short and concise introduction of C language in less than 50 pages, which is very helpful in understanding the capabilities of the language.
- Main K.N. King, "C Programming: A Modern Approach," W. W. Norton & Company, 2nd Edition, 2008 교보문고 바로가기 (KNK로 표기)
- Translated version available on the Internet is here
- Supplementary Brian W. Kernighan, Dennis M. Ritchie, "C Programming Language" Prentice Hall, 1988 (2nd Edition) (Kernighan 의 C언어 프로그래밍) 교보문고 바로가기 (K&R로 표기)
- Supplementary Stephen Prata. "C Primer Plus". Sams, 2004 (C 기초 플러스) 교보문고 바로가기
Homework and Guidelines
- Every week, you are to meet with your team and discuss the materials that you are going to master. After the discussion, you are to write the new findings in the piazza.
- Please share your email info here.
Schedule and Readings
All pptx files contain narrations and inks, you can view/hear them by entering slide show mode. It is mandatory that you learn them before coming to the class. The class assumes that you have already learn the material for the respective day's activity.
Part I - Python
Week - 1 Python | |
---|---|
Lecture : Sep-03 (月) Introduction | Lab : Sep-07 (金) 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 : Sep-10 (月) For Loop | Lab : Sep-14 (金) 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 - 3 Python | |
Lecture : Sep-17 (月) if conditions | Lab : Sep-21 (金) 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 - 4 Python | |
Lecture : Sep-24 (月) | Lab : Sep-28 (金) Custom Functions |
추석 연휴 | Reading:
* Dividing the code into functions to reduce the duplicate codes [pptx ] [pdf ]
|
Video:
* 함수의 작성의 문법과 활용의 예와 자기 자신을 다시 부르는 재귀함수의 예 (11 min) [watch] | |
Week - 5 Python | |
Lecture : Oct-01 (月) Review | Lab : Oct-05 (金) Exam I |
Workbook:
* Practice before the exam notebook |
Exam
* Place : 407-101 * Time : 14:00-16:00 |
Part II - C Fundamentals
Week 6 - on C Language | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lecture : Oct-08 (月) Introduction | Lab : Oct-12 (金) Variables | ||||||||||||||||||||
Reading:
* The essential basics of getting to know the C language: pre-processing, compile, variables, linking (adapted from 6.s096 MIT) [pdf ] |
Reading: | ||||||||||||||||||||
Video:
* Introduction to C programming [watch ] (44m) | |||||||||||||||||||||
Week 7 - on C Language | |||||||||||||||||||||
Lecture : Oct-15 (月) printf and scanf | Lab : Oct-19 (金) Excercises on printf and scanf | ||||||||||||||||||||
Reading:
* To read user inputs and print texts on screen [ppt ] [pdf ]
|
Worksheet:
* printf in detail [worksheet ]
| ||||||||||||||||||||
Video:
* Formatted input and output [watch ] (30m) | |||||||||||||||||||||
Week 8 - on C Language | |||||||||||||||||||||
Lecture : Oct-22 (月) expressions | Lab : Oct-26 (金) 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 : Oct-29 (月) Control Flow Statements | Lab : Nov-02 (金) 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 : Nov-05 (月) Control Flow Statements | Lab : Nov-09 (金) Excercises on control flow statements | ||||||||||||||||||||
Reading:
* Summary on array [ppt ] [pdf ]
|
Exam II
} Part III - C Arrays and PointersT. B. D. Miscellaneous
Evaluation
Setup InstructionsStep 1: Installing Linux
Step 2: Installing Python and CPythonLinux
To check if python is installed properly. James@maker:~$ python
Python 2.7.13 (default, Apr 4 2017, 08:47:57)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello, world")
Hello, world WindowsDownload and install python for windows from here CLinuxC in Linux is prebuilt into the system; however, on windows it is not.
If C compiler is not installed in the system then follow the steps in the terminal sudo apt-get update # 패키지 리스트 최신화
sudo apt-get upgrade # 패키지 업그레이드
sudo apt-get install build-essential # 컴파일러 환경 설치
gcc -v # gcc 설치 버전 확인
make -v # make 설치 버전 확인 WindowsFollow the description on here Step 3: Installing Jupyter NotebookOption 1: Installation via AnacondaIt is recommended that you install Jupyter Notebook via Anaconda
If Anaconda doesn't have jupyter: you can try running
Option 2: Installation via
|