18
강의 개요 손시운 [email protected] 컴퓨터프로그래밍기초

컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

강의 개요

손시운

[email protected]

컴퓨터프로그래밍기초

Page 2: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 2

어떤 강의일까?

컴퓨터 프로그래밍 기초

Page 3: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

컴퓨터란?

컴퓨터 = 하드웨어 + 소프트웨어(프로그램)

컴퓨터를 범용적으로 만드는 것은 바로 프로그램

컴퓨터 프로그램 사용자

워드 작업

회계장부 정리

사진편집

2017-09-01 3

Page 4: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

계산기와컴퓨터의차이

계산기는 정해진기능만을 수행한다. 기능을 변경할 수 없다.

프로그램이라는개념을 도입하여수행하는 기능을쉽게 변경할 수

있다.

2017-09-01 4

Page 5: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

프로그램이란?

Q. 왜 컴퓨터에서는 가전제품처럼 프로그램 설치 없이 바로 동작되도록 하

지 않고 불편하게 사용자가 프로그램을 설치하게 하였을까 ?

A. 컴퓨터를 범용적인 기계로 만들기 위해서이다. 컴퓨터는 프로그램만 바꾸

어주면 다양한 작업을 할 수 있다.

동영상 재생 프로그램

mp3 재생 프로그램

문서편집 프로그램

2017-09-01 5

Page 6: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

컴퓨터의정의

컴퓨터(computer)는 단순히 계산(compute)만하는 기계가 아니다.

현대적인 의미에서의 컴퓨터는 프로그램(명령어들의 리스트)에 따라 데이터

를 처리하는 기계라고 할 수 있다

2017-09-01 6

Page 7: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

스마트폰도컴퓨터의일종

피처폰: 미리 설정된 기능만 가능

스마트폰: 애플리케이션만 변경하면 다양한 용도로 사용가능

2017-09-01 7

Page 8: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

프로그램의역사

프로그래밍이 가능한 최초의 기계: 해석 기관(Analytical Engine)

만든이: 챨스 배비지

수천 개의 기어, 바퀴, 축, 레버 등이 증기로 작동

2017-09-01 8

Page 9: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

최초의프로그래머

프로그램을 최초로 만든 사람은 에이다 러브레이스(Ada Lovelace)

에이다는 대문호 바이런의 친딸

배비지의 해석 기관에 매료되어 해석 기관을 위한 프로그램을 개발하였다.

서브루틴(subroutine), 루프(loop), 점프( jump) 등의 핵심적인 컴퓨터 프로그

래밍 기본 원리를 고안

2017-09-01 9

Page 10: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

초기 컴퓨터의프로그래밍

초기 컴퓨터인 ENIAC의 프로그램은 스위치에 의하여 기억되었고, 프로그램

을 변경할 때마다 그 많은 스위치들을 처음부터 다시 연결하여야 했다.

2017-09-01 10

Page 11: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

프로그램==작업지시서

프로그램: 컴퓨터에게 해야 할 작업의 내용을 알려주는 문서

1. 사용자로부터 2개의 숫자를 입력받는다.

2. 숫자들을 더한다.3. 결과를 화면에 출

력한다.

1. 사용자로부터 2개의 숫자를 입력받는다.

2. 숫자들을 더한다.3. 결과를 화면에 출

력한다.

프로그램 = 작업지시서

CPU

하드웨어 장치

하드웨어 장치

2017-09-01 11

Page 12: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

폰노이만구조

프로그램은 메인 메모리에 저장된다.

메인 메모리에 저장된 프로그램에서 명령어들을 순차적으로 가져와서 실행

한다.

흠..프로그램을 쉽게변경할 수 있게 하려면 데이터처럼 메인메모리에 가져다 놓고하나씩 실행하면 되겠

데이터

프로그램

메인 메모리

CPU

폰 노이만

2017-09-01 12

Page 13: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 13

왜 이 강의를들어야할까?

교과목표/개요

– 정보화 사회의 중요 도구인 컴퓨터를 활용하기 위해서 컴퓨터 프로그램이 만들어

지고 사용된다.

– 본 강좌에서는 프로그램을 처음 배우는 학생이 프로그래밍 언어의 개념을 올바르

게 이해하고 응용할 수 있도록 언어의 특성과 기능에 대한 개념을 습득하고 문제

를 해결하기 위한 방법과 과정을 서술하여 C 언어로 프로그래밍하는 방법을 습득

하는 것에 목적을 둔다.

수업효과/기대

– 기본적인 컴퓨터 프로그래밍 개념과 절차를 이해하고 C 언어 구문과 사용법을 익

혀 자신의 전공 분야에서 컴퓨터를 이용한 문제 해결을 위해 컴퓨터 프로그램을

작성할 수 있는 능력을 습득한다.

Page 14: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 14

강의 계획

선수 과목?

– 없음! 누구나 이 강의를 들어도 이해할 수 있다.

– 단, 다른 프로그래밍 수업을 배웠다면 매우 쉽다!

담당 강사

– 이름: 손시운

– 사무실: 한빛관 409호

– E-mail: [email protected]

– 강의 사이트: http://cs.kangwon.ac.kr/~swson/

강의 시간 및 강의실

– 이론: 수요일 09:00~11:00 (공2호관 105호)

– 실습: 금요일 14:00~16:00 (미래관 301호)

Page 15: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 15

강의 계획

강의 교재

– 쉽게 풀어 쓴 C언어 Express (개정판), 천인국 저, 생능출판사

평가 기준

– 중간고사: 35%

– 기말고사: 35%

– 과제: 20%

– 출석: 10% (1/3 이상 결석 시 F임)

Page 16: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 16

강의 계획

과제

– 과제는 실습 위주로 챕터별 소과제와 2개의 대과제로 구성될 예정

과제는 베낄 경우 0점!!!

질문이 생기면 언제든지 메일로 보내주세요

Page 17: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 17

무엇을배울까?

중간고사 범위– Ch.01 프로그래밍의 개념

– Ch.02 프로그래밍 작성 과정

– Ch.03 C 프로그램 구성 요소

– Ch.04 변수와 자료형

– Ch.05 수식과 연산자

– Ch.06 조건문

– Ch.07 반복문

변경될 수도 있어요~

기말고사 범위– Ch.08 함수

– Ch.09 함수와 변수

– Ch.10 배열

– Ch.11 포인터

– Ch.12 문자열

– Ch.13 구조체

– Ch.14 포인터 활용

– Ch.15 전처리 및 비트 필드

– Ch.16 스트림과 파일 입출력

– Ch.17 동적 메모리와 연결 리스트

Page 18: 컴퓨터프로그래밍기초 - Kangwoncs.kangwon.ac.kr/~swson/17Fall_CP/lecture_notes/P01... · 2017-08-31 · 2017-09-01 17 무엇을배울까? 중간고사범위 – Ch.01 프로그래밍의개념

2017-09-01 18

간단한설문조사

컴퓨터를 포맷(OS 재설치)해본 적이 있는가? ( )명

컴퓨터의 하드웨어를 조립해본 적이 있는가? ( )명

다른 수업 또는 학원 등에서 컴퓨터 관련 수업을 들은 적이 있는가? ( )명

컴퓨터 관련 자격증(워드프로세서, 컴활, 정보처리 등)이 있는가? ( )명

C언어를 배우거나 공부해본 적이 있는가? ( )명

다른 프로그래밍 언어(Java, Python, 자바스크립트, 매크로 프로그래밍 등)를 배우거

나 공부해본 적이 있는가? ( )명

강의 후에 다른 컴퓨터 관련 수업을 들을 예정인가? ( )명