Upload
coen
View
223
Download
7
Embed Size (px)
DESCRIPTION
[ 2014-1] 정보통신기초 Week 1 : 강의 소개 & 서론. 담당교수 : 최 윤 정. [2014-1] . [ 정보통신기초 ] 정보통신 환경과 컴퓨터 공학에서 다루는 분야에 대한 소개 각 분야별 기초 이론과 실습을 수업합니다 . 강의 목표 운영 방법 평가 방법 과제 안내. [ 컴퓨터 응용 및 실습 1] 객체지향 프로그래밍 및 응용 Language : Java & UML & 관련 툴. 강의 소개 및 목표. [ 정보통신기초 ] 이론. - PowerPoint PPT Presentation
Citation preview
[ 컴퓨터 응용 및 실습 1] 객체지향 프로그래밍 및 응용
Language : Java & UML & 관련 툴
[ 정보통신기초 ] 정보통신 환경과 컴퓨터 공학에서 다루는 분야에
대한 소개
각 분야별 기초 이론과 실습을 수업합니다 .
[2015-1]
강의 목표
운영 방법
평가 방법
과제 안내
2
강의 소개 및 목표
컴퓨터 및 정보통신 분야와 관련된 다양한 주제에 대해 알아봅니다 .
각 분야별 최근의 이슈들을 살펴보고 다양한 관점에서 접근해봅니다 .
- 구현가능성 , 안전성 , 윤리 , 보안 , 프라이버시 , 책임성 등 ..
각 분야들과 학년별 과목간의 관계를 이해하며 앞으로의 학습계획을 설
정 / 정리 할 수 있도록 합니다 .
[ 정보통신기초 ] 이론
각 주제와 관련된 여러 가지 공학 툴을 다루어 보면서 기본기를 다집니다 .
실습
3
컴퓨터과학총론 (12th edition). 이광수 역 , 홍릉출판사
교재 안내
• Chap1 : 데이터의 저장
• Chap2 : 데이터의 조작
• Chap3 : 운영체제
• Chap4 : 네트워킹과 인터넷
• Chap5 : 알고리즘
• Chap6 : 프로그래밍 언어
• Chap7 : 소프트웨어 공학
• Chap8 : 데이터 추상화
• Chap9 : 데이터베이스 시스템
• Chap10 :( 컴퓨터그래픽스 )• Chap11 : 인공지능
• Chap12 :( 계산이론 )
11 판 12 판
4
강의 운영
이론 vs. 실습 이론 학습 후 필요 시 퀴즈 / 확인 실습
과제
시험 : 중간 + 기말 + 퀴즈
수업자료실 : http://home.konkuk.ac.kr/~cris 강의 내용 및 게시판 : 질의 응답 및 실습시간 미션과제 제출용 :
http://cafe.daum.net/cris.lecture
5
과제 형태
조사 과제 : report 이론에 대하여 : 추가내용을 더 조사하고 정리하여 수업 전 제출합니다 .
실습 과제 : 구현
계획 , 설계 , 구현과정에서 필요한 미션을 수행한 후
보고서 / 소스화일 / 스크린 샷 등의 형태로 제출합니다 .
개인별 수행을 원칙으로 함 .
6
평가 방법 및 정책
과제 확인 시간 : 매 수업시간 마다 .
실습 과제 결과 : 팀 혹은 개인당 5~10 분 정도의 양으로 정리하여 발표
과제 제출 마감 후 : -2 점 / 1 일
중간 및 기말고사 후 필요 시 재시험
반영 비율
중간고사 : 30%, 기말고사 : 30%
퀴즈 및 과제물 : 20%
출석 및 수업참여도 : 20%
7
오늘의 실습 : 실습실 컴퓨터 환경 및 설치된 프로그램 목록 확인하기
기본 : 문서편집기 , MS Office 제품들
기본 개발 언어 및 툴 : C, Java, Visual Studio, DEV C , Eclipse. 등 .. 설계 tool : UML .. 운영체제 : window , Linux .. 기타 공학도구 : Progress, Unity3D, MATLAB, Protégé , Lisp .. 웹서버용 개발환경 : APM 등
8
둘러보기 : 무엇을 할 수 있는가 .. [ 멋쟁이 사자처럼 ]
다양한 색과 배경 , 무엇보다 열의 , 열정을 가진 사람들의 모임 . 전공자와 비전공자들과의 가치있는 소통 . 3 개월간 공부 , 2 개월간 서비스 개발 .. 어디까지 가능했을까 ?
지난 프로젝트들…
기본기 + 성실함 + 열정이 만났을 때 가능했던 일들 . 계획과 설계의 중요성 .! Http://home.konkuk.ac.kr/~cris/lectures.html
9
산 비탈에 지어진
아파트 , 그러
나 ..곧 무너집니다 .
원인은
…‘ 부실공사’
철근 70 개 5개
처음부터
‘ 지질검사’조차
하지 않았습니다 .…….…왜 ..?‘ 화강암석이니
단단하겠지 !’
13
수업 상담 및 help
팀 / 개인 상담은 미리 연락하세요
010-4258-8522 E-mail : [email protected], [email protected] Office Hour: 목 ,금 11:00 ~ 17:00 시간표 확인할 것 . 수업자료실과 수업시간표를 참고합니다 .
33
용어
알고리즘 : 작업을 수행하는 방법을 정의하는 단계들의
집합
프로그램 : 알고리즘의 한 표현
프로그래밍 : 프로그램을 개발하는 과정
소프트웨어 : 프로그램과 알고리즘
하드웨어 : 장비
35
알고리즘의 역사
알고리즘에 관한 연구는 수학의 한 분야로 시작되었다 . 알고리즘 예 :
나눗셈법
유클리드의 호제법 알고리즘
Gödel 의 불완전성 정리 (Incompleteness Theorem): 알고리즘으로 해결할 수 없는 문제들이
존재한다 .
36
유클리드의 호제법 알고리즘
설명 : 이 알고리즘은 두 개의 자연수가 입력되는 것을 가정하고
그 두 값의 최대공약수를 계산한다 . 절차 :
단계 1. 두 입력 값 중 큰 값은 M, 작은 값은 N 에 지정한다 . 단계 2. M 을 N 으로 나누고 그 나머지를 R 이라고 부른다 . 단계 3. R 이 0 이 아닐 경우 , N 이 가진 값을 M 에 지정하고
R 의 값은 N 에 지정한 다음 단계 2 로 돌아간다 . R 이 0일
경우 , 현재 N 에 지정된 값이 최대공약수이다 .
GCD (M, N) Coding!!!37
쉬면서 코딩해봅니다 .^^
수학적으로 정의된 방법을 그대로 적용한 예
int GCD(int M,int N){int R=1;
R=M%N;printf("M: %d N: %d R : %d \n", M,N,R);
// 출력용 코드
if(R==0) return N;GCD(N,R);
}
반복문을 적용한 예 .
int GCD_L(int M,int N){ int R=1;
while(R!=0){R=M%N;if(R==0) break;M=N;N=R;
printf("M: %d N: %d R : %d \n", M,N,R); // 출력용 코드
} return N;}
38
테스트용 메인함수
int main(){
int M,N,S1, S2;
printf("-----------------\n"); printf("M : "); scanf("%d",&M); //M 입력 printf("N : "); scanf("%d",&N); //N 입력
S1=GCD(M,N); S2=GCD_L(M,N);
printf("GCD : %\n",S1); printf("GCD _L: %\n",S2);
}39
컴퓨터의 기원
초창기 컴퓨터 장비
주판 (Abacus): 주판알의 위치로 숫자 표현
톱니바퀴 기반 장비 (1600s-1800s) 톱니바퀴 위치로 숫자 표현
파스칼 , 라이프니츠 , 배비지
40
초창기 데이터 저장 방법
천공카드
직조 패턴 저장에 Jacquard Loom(1801) 이 사용한 것이
효시임
배비지의 해석엔진에서 프로그램 저장에 사용
1970 년대 말까지 널리 사용
톱니바퀴 위치
41
초창기 컴퓨터
기계 릴레이 방식
1940: 벨연구소에서 Stibitz 의 계산기
1944: Mark I: 하버드에서 Howard Aiken 과 IBM
진공관 방식
1937-1941: 아이오와대에서 Atanasoff-Berry
1940 년대 : Colossus: 독일 암호 분석을 위한 영국의 비밀 장비
1940 년대 : ENIAC: 펜실베이니아대의 Mauchly 와 Eckert
42
개인용 컴퓨터 - PC
컴퓨터 취미생활자들이 먼저 사용
IBM 이 1981 년 PC 를 소개
기업에서도 채택함
대부분의 데스크톱 컴퓨터를 위한 표준 하드웨어 설계로
정착됨
대부분의 PC 는 Microsoft 의 소프트웨어를 사용함
45
개인용 컴퓨터 (PC) – Altair 8800– Altair 8800 from Micro
Instrumentation Telemetry Systems (MITS) of Albuquerque, NM
– 1975 년 1 월 Popular electronics 잡지에 최초 소개
– 최초의 대량생산된 Personal Computer 로 여겨짐
– Bill Gates/Paul Allen 이 Altair BASIC 제작 (a true programming language, and the first commercial Microsoft computer product)
Announced: March 1975
Price: US $395 as a kit
US $495 assembled
CPU: Intel 8080, 2.0 MHz
RAM: 256 bytes, 64K max
Display: front panel LEDs
Controls: front panel switches
Expansion: card-cage
with 16 card slots
Storage: external Cassette or
8" floppy drive
OS: CP/M, BASIC
46
개인용 컴퓨터 (PC) – IBM 5100
Model: 5100Introduced: September, 1975Price: US $19,975 w/ 64K RAMWeight: 55 poundsCPU: IBM proprietary, 1.9MHzRAM: 16K, 64K maxDisplay: 5" monochrome monitor
64 X 16 textStorage: Internal 200K tape (DC300)Ports: tape / printer I/O portOS: APL and/or BASIC
– First Portable Computer (55 lb)
47
개인용 컴퓨터 (PC) – Apple I
– Steve Wozniak from HP and Steve Jobs
Introduced: March 1976
Released: July 1976
Price: US $666.66 w/4K RAM
How many? about 200 total
CPU: MOS 6502, 1.0 MHz
RAM: 4K, 65K max
Display: monochrome
280 X 192, 40 X 24 text
Keyboard: not included.
Ports: composite video output
keyboard interface
one vertical expansion slot
Storage: cassette interface available
OS: firmware in ROM (HEX)
Apple BASIC on cassette
48
개인용 컴퓨터 (PC) – Apple II
– One of first color display– Built-in BASIC language
– 8 expansion slots– memory expansion
– floppy disk controllers– PASCAL and CP/M emulator
cards– parallel, serial, and SCSI cards
– processor accelerators– video cards
Released: April 1977
Price: US $1298 with 4K RAM
US $2638 with 48K RAM
CPU: MOS 6502, 1.0 MHz
RAM: 4K min, 48K max
Display: 280 X 192, 40 X 24 text
6 colors maximum
Ports: composite video output
cassette interface
8 internal expansion slots
Storage: generic cassette drive
external 143K floppy (1978)
OS: Woz Integer BASIC in ROM
49
개인용 컴퓨터 (PC) – IBM PC
– Five internal ISA expansion slots on the motherboard
– additional memory– video card
– optional floppy drive controller– RS-232 serial port card
– modem card for dialing-up remote computer systems
Model: 5150
Released: September 1981
Price: US $1,565 ~ $3,000
CPU: Intel 8088, 4.77MHz
RAM: 16K, 640K max
Display: 80 X 24 text
Storage: dual 160KB 5.25-inch disk drives
Ports: cassette & keyboard only
5 internal expansion slots
OS: PC-DOS v1.0
50
개인용 컴퓨터 (PC) – Compaq Portable
– The Compaq Portable was the first 100% compatible IBM
computer clone.– It's transportable, designed so it
can easily be taken aboard an airliner as carry-on luggage
Introduced: November 1982
Released: March 1983
Price: US$3590 (two floppy system)
How many? 53,000 in 1983, the first year
Weight: 28 pounds.
CPU: Intel 8088, 4.77MHz
RAM: 128K, 640K max
Display: 9" monochrome monitor built-in
80 X 25 text
Color graphic card
Storage: Two 320K 5-1/4" disk drives
Ports: 1 parallel (expansion card)
OS: MS-DOS
51
개인용 컴퓨터 (PC) – Apple Macintosh
– Macintosh is considered to be the first commercially successful
computer to use a GUI.
Model: M0001
Introduced: January 1984
Price: US$2495
CPU: Motorola 68000, 7.83 Mhz
RAM: 128K, later 512K
Display: 9-inch monochrome screen
512x342 pixels
Ports: Two DB9 serial ports
Printer port
External floppy port
Storage: Internal 400K SSDD floppy
optional external floppy ($495)
OS: Macintosh GUI
(graphical user interface)
52
20세기말의 혁신
인터넷을 통한 통신 혁명
월드와이드웹 (World Wide Web) 검색 엔진 (Google, Yahoo, Microsoft 등등 ) 게다가 SNS..!
컴퓨터 장비의 소형화
임베디드 시스템 ( 자동차 내비게이션 ) 스마트폰
53
컴퓨터과학의 중심 주제
컴퓨터 기술의 영향 : 정부 , 경제 , 과학연구 , 데이터의 역할 , 통신 , … ……………………………
컴퓨터과학의 7 대 주제 : 알고리즘 , 추상화 , 창의성 , 데이터 ,
프로그래밍 , 인터넷 , 사회적 영향
0-54
컴퓨터과학의 핵심적 질문들
알고리즘적 처리과정에 의해 해결될 수 있는 것은 어떤
문제들인가 ?
어떻게 하면 알고리즘을 보다 쉽게 찾을 수 있을 것인가 ?
어떻게 알고리즘의 표현 및 전달 기법을 개선할 수 있을까 ?
서로 다른 알고리즘들의 특성들을 어떻게 분석하고 비교할 수
있을까 ?
57
알고리즘과 기술에 관한 지식을 보다 우수한 컴퓨터를
만드는데 어떻게 적용할 것인가 ?
알고리즘은 정보처리에 어떻게 이용될 수 있는가 ? 알고리즘은 지능적 행동의 발현에 어떻게 응용될 수 있는가 ? 알고리즘의 응용은 사회에 어떤 영향을 미칠 것인가 ?
58
추상화 (abstraction)
추상화 : 개체의 외적 속성과 내적 구성의 세부사항을
구별하는 것
추상적 도구 : 그 내적 구성을 모르고서도 사용할 수 있도록
만들어진 컴포넌트
59
창의성
컴퓨터과학은 본질적으로 창의적인 학문
알고리즘을 발견하고 적용하는 일은 인간 활동
표현 형태를 다양하게 확장함
대규모 소프트웨어 시스템을 만드는 일은 새로운 대형
조각품을 창조하는 일과 같다 .
0-60
데이터에 관한질문
일상적인 디지털 정보들을 컴퓨터에서는 어떻게
저장하는가 ? 숫자 , 텍스트 , 이미지 , 소리 , 비디오 , …
실세계의 아날로그 정보들에 관한 근사 데이터를
컴퓨터에서는 어떻게 구하는가 ? 컴퓨터에서는 데이터상의 오류를 어떻게 탐지하고
예방하는가 ? 디지털 데이터가 계속 늘어나고 상호연결성이 강화되는 데
따른 파생효과는 무엇인가 ?62
프로그래밍
프로그래밍에 대한 광의적 정의 : 사람의 의도를 실행 가능한 알고리즘으로 변환하는 일
컴퓨터 하드웨어는 단순한 알고리즘 명령들만을 실행할 수
있다 . 프로그래밍 언어가 제공하는 추상화를 통해 사람들은 훨씬
복잡한 문제들을 위한 해답을 추론하고 코딩할 수 있다 .
0-63
프로그래밍에 관련된 핵심 질문
프로그램은 어떻게 만드는가 ? 어떤 종류의 오류들이 프로그램에서 발생하는가 ? 프로그램상의 오류들을 어떻게 발견하고 고치는가 ? 프로그램에서 오류들이 미치는 영향은 무엇인가 ? 프로그램을 문서화하고 평가하는 방법은 무엇인가 ?
0-64
사회적 영향 1
컴퓨터과학의 발전으로 제기된 의문들
법률 분야 : 권리와 책임에 관한 의문
정부 부문 : 법제화에 관한 의문
업무 현장 : 전문성에 관한 의문
사회 생활 : 사회적 행동에 관한 의문
66
사회적 영향 3
No “ 정답”은 없으며 , 여러 측면의 인식 제고가 필요함 : 다양한 관련 당사자에 대한 인식
대안들에 대한 인식
대안들의 단기적 파생 결과와 장기적 파생 결과에 대한 인식
성격론적 윤리학
“ 선한 행동”은 “선한 성격”의 자연스런 결과
0-68
윤리 이론
결과론적 윤리론 : 최대의 이익을 가져오는 것이
무엇인가 ?
의무론적 윤리학 :본질적 의무가 무엇인가 ?
계약론적 윤리론 :어떤 계약을 존중해야 하는가 ?
성격론적 윤리학 :어떤 사람이 되기를 원하는가 ?
69
책의 목차
1 장 : 데이터의 저장
2 장 : 데이터의 조작
3 장 : 운영체제
4 장 : 네트워킹과 인터넷
5 장 : 알고리즘
6 장 : 프로그래밍 언어
7 장 : 소프트웨어 공학
8 장 : 데이터 추상화
9 장 : 데이터베이스시스템
10 장 : 컴퓨터그래픽스
11 장 : 인공지능
12 장 : 계산이론
70