Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

컴퓨터 과학 총론

No description
by

진욱 김

on 13 May 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 컴퓨터 과학 총론

5.6효율성과 정확성
1) 알고리즘 효율성
(1) 하나의 문제를 해결할 수 있는
여러 알고리즘

(2) 효율성(문제해결에 걸리는 시
간)이 선택의 기준

(3) 빅 오 기호를 써서 알고리즘의
시간적인 효율을 분석할 수 있다


사전 테스트 루프(pretest loop) : 본체 실행 전에 종료 조건을 테스트하는 방법

사후 테스트 루프(posttest loop) : 본체 실행 후에 종료 조건을 테스트하는 방법

5.2 알고리즘의 표현
컴퓨터 과학 총론
5) 소프트웨어 검증
5.알고리즘
1. 프리미티브
5.4 상향식 방법론
2) 알고리즘 정확성
3. while 루프 구조와 repeat 루프 구조
4. 루프 구조의 테스트 방법
변수의 특별한 한 종류로써, 함수 등과 같은 서브루틴의 인풋으로 제공되는 여러 데이터 중 하나를 가르키기 위해 사용된다.
2. 배정문
1. 의사코드
5.3 알고리즘의 발견
특정 프로그래밍 언어의 문법을 따라 씌여진 것이 아니라, 일반적인 언어로 코드를 흉내내어 알고리즘을 써놓은 코드를 말한다
1) 단계적 개선법
알고리즘 발견의 기초
2) 상향식과 하향식
3) 하향식 방법론
4) 상향식 방법론
원래의 문제를 작은 문제들로 분할한다.
1) 단계적 개선법
2) 하향식 방법론
3) 상향식 방법론
5) 청소년 SNS의 영향
1) 순차 검색 알고리즘

2) 루프 제어
1) 순차 검색 알고리즘


2) 루프 제어
3) 반복 제어의 구성요소들
5. 삽입 정렬 알고리즘
자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
6. 그 외 알고리즘
5.5 재귀구조
3) 부정확한(Incorrect) 알고리즘의 결과
4) 분할정복 전략
어보트(ABORT: Abnormal Termination, ABEND: Abnormal End)
무한 루프(Infinite Loop)
정상적으로 끝났지만 잘못된 결과를 출력


제품이 올바르게 생성되고 있는가?(Are we building the product right?)

소프트웨어가 고객이 의도한 요구사항에 따라 구현되었음을 보장하는 활동

‘고객이 의도한 환경이나 사용 목적에 맞게 올바른 제품을 만들고 있음’을 보장

확인과 검증 작업은 실제로 구분하기 어려운 경우가 존재함

결국, 소프트웨어의 품질을 보장하는 것

(1) 정형 기법
소프트웨어와 하드웨어 시스템의 명세, 개발, 형식 검증을 위한 특정한 종류의 수학적 기반 기술이다.

정형 기법은 매우 다양한 이론 전산학 기초의 응용(특히 논리 계산, 형식 언어, 오토마타 이론, 프로그램 의미론, 더 나아가 소프트웨어와 하드웨어 명세 및 검증의 문제에 대한 형 체계, 대수적 자료형)이라고 말할 수 있다.
(2) 사전 조건과 사후 조건
사전 조건
:

컴포넌트나 시스템이 특정 테스트 케이스 또는 테스트 절차(test rocedure)를 수행하기 전에 반드시 충족되어야 하는 환경 및 상태 조건
(3) while 구조에 연계된 명제들
명제

루프 불변 명제(Loop Invariant) : while문(또는 모든 순환문)이 그 조건식을 검사하는 매 경우에 대하여 참일 것이라고 가정하는 속성이다.
Thank you
Q & A
숫자 표기법 변환을 위한 알고리즘
데이터 파일의 압축과 해제를 위한 알고리즘
데이터 오류의 탐지 및 정정을 위한 알고리즘
제어를 위한 알고리즘

알고리즘의 정형적 정의
알고리즘은 모호하지 않고 실행 가능한
단계들의 집합이며, 단계들에는 순서가
정해져 있고 종료되는 프로세스를 정의한다.
참고문헌
1) 양재수 외 3명(2011), 스마트 모바일이 미래를 바꾼다, 매일 경제신문사
2) 디에스피 편집부(2012), 2012 스마트혁명과 동향분석, 디에스피 연구지
3) 이혜원 외 3명(2008), 청소년권리와 청소년복지, 한울
4) 천정웅(2012), 청소년 복지론, 신정
5) 이용교(2012), 디지털 청소년 복지 제3판, 인간과 복지
6) 천정웅(2011), 차세대 청소년학 총론, 양서원
7) 천정웅(2013), 청소년 문제와 보호, 양서원
8) 김성이 외 3명(2010), 청소년복지학, 양서원
9) 지석규(2011), 스마트폰 2천만 시대의 길눈이 스마트 학,(주)마이디팟
10) 설진아(2011), 소셜미디어와 사회변동 , 커뮤니케이션북스
11) 김은미 외 3명(2011), SNS혁명의 신화와 실제 , 나남
12) 박혜진(2012), 「청소년의 스마트폰 애플리케이션이용과 중독의 관계」,
전북대학교 교육 대학원 석사학위논문
13) 김재근(2012), 「스마트폰 환경을 고려한 웹사이트의 GUI연구」,
인천대학교 석사학위논문
14) 김대진(2011), 「SNS(Social Network Service)의 사용자 만족과 지속적
사용을 위한 영향요인에 관한 연구」, 중앙대학교 박사학위 논문
15) 정건희(2010), 「청소년사이버참여의 어제와 오늘」, 한국시민청소년학회
추계학술제
16) 신광우 외 2명(2011), 2011년 정보문화실태조사, 한국정보화진흥원
17) 강학주 외 8명(2012 ),스마트 혁명시대의 쟁점들, 한국정보화진흥원
18) 여성가족부(2011), 2011년 인터넷 중독 실태조사
19) MOO홈페이지 http://moo.incheon.go.kr
20) 한국일보 http://news.hankooki.com/
21) 보안뉴스 http://www.boannews.com
22) 연합뉴스 http://www.yonhapnews.co.kr/
23) 조선일보 http://edu.chosun.com/
24) 아주경제신문 http://www.ajunews.com 등
부분 알고리즘(Sub-Algorithm)으로 분할

부분 알고리즘의 전후에 단언(斷言, 잘라 말함, Assertion)이 옳음을 증명

단언은 "이 상태에 이르면 이런 사실이 성립한다"의 형태로 제시

단언 = 인베리언트(Invariant, 불변의 사실).
3. 매개변수
https://www.cyber1388.kr
1) 문제해결 기술
문제를 이해한다.
알고리즘적인 절차로 어떻게 문제를 해결할지에 대한 개략전인 생각을 정리한다.
알고리즘을 기술하고 다시 프로그램으로 표현한다.
프로그램이 정확한지 검토하고, 또 이 프로그램을 다른 문제의 해결에도 사용할 수 있도록 일반화할 수 있는지 평간한다.
단순히 프로그램 제작 순서를 거꾸로 하는 것이 아니며 프로그램 언어와 목표하는 프로그램의 유기적인 상호관계를 바탕으로 재사용 가능한 코드를 생산하는 것입니다.
톱다운 방식은 프로그램 크기가 커질 수록 참여하는 개개 프로그래머의 역할이 작아지지만, 바텀업 방식에서는 오히려 각 프로그래머의 역할이 커질 수도 있다고 합니다.

긍정적인측면
부정적인 측면
=>
소외감, 우울,
자아정체감상실,
대인관계 회피
기기의 "노예"
반복을 구현함에 있어 루프 패러다임과는 또 다른 패러다임을 제공한다. 재귀법에서 명령 집합을 원래 작업의 부분 작업으로서 반복하는 형태이다.
정렬된 리스트에서 특정한 값을 찾는 알고리즘

처음 중간의 값을 임의의 값으로 선택하여, 그 값을
찾고자 하는 값과 크고 작음을 비교하는 방식이다.
1) 2진 검색 알고리즘
5.1 알고리즘의 개념
알고리즘이란 무엇인가?
알고리즘의 추상적 특성

알고리즘 vs. 알고리즘 표현
이야기 vs. 책

알고리즘은 여러 방식으로 표현 가능함

예) 섭씨 온도를 화씨 온도로 변환한다.

알고리즘의 불명확성 vs. 알고리즘 표현의 불명확성

알고리즘 표현 정밀도의 문제

Primitive 사용으로 해결 가능
컴퓨터 프로그램 작성에서 어떤 복잡한
프로그램을 만드는 데 사용될 수 있는
언어의 가장 기본적인 단위
2. 프로그래밍 언어
프리미티브 조합규칙의 집합
3. 구문과 의미
구문이란 프리미티브의 기호 표현
의미는 프리미티브가 나타내는 개념
의사코드를 만드는 한 가지 방법은 정형적인
프로그래밍 언어의 구문과 의미구조를
사용하되 그 언어의 규칙들을 다소 완화하고
비정형적인 구문들을 섞어 사용하는 것이다.
변수에 어떤 값을 배정해 주는 문장입니다.
배정문에서는 등호를 기준으로 좌변에 변수를, 우변에 배정할 값이나 그 값을 계산할 식을 써 주면 됩니다. 변수는 값을 저장해 줄 수 있는 일종의 용기와 같은 것이라고 생각하시면 됩니다
서브루틴의 인풋으로 제공되는 여러 데이터들을 전달인자(argument) 라고 부른다. 보통 매개변수의 목록은 서브루틴의 정의 부분에 포함되며, 매번 서브루틴이 호출될 때 마다 해당 호출에서 사용된 전달인자들을 각각에 해당하는 매개변수에 대입시켜 준다.
톱다운 방식은 plan and implementation 방식으로서, 프로그램에 대한 전반적인 설계를 먼저 구체적으로 하고 이를 모듈별로 나누어 구현하는 방식입니다. 하지만 처음에 만든 디자인이 완전한 경우는 거의 없기 때문에 계획이 수정되면서 이의 구현이 계속 변화해야 하고, 최악의 경우에는 처음부터 다시 시작해야 하는 일도 생기게 됩니다.
이에 반해 바텀업 방식은 프로그램의 목표에 맞추어 언어를 재설계하고(LISP 의 마크로 기능을 말하는 듯) 이를 기반으로 융통성있게 프로그램을 만들어 나가는 방식을 의미합니다.
하향식 방법론과 상향식 방법론
리스트의 처음부터 마지막까지 조사하여 대상과 비교한다.

검색이란 자료의 집합에서 원하는 어떤 자료(Key)가 있는지, 있다면 어디쯤에 있는지를 찾아내는 알고리즘입니다.
폐쇄 시스템(closed system)의 주류를 이루는 것으로, 자동 제어 방식이라고도 한다.
입력된 정보를 처리하고 그 결과를 출력할뿐만 아니라 최종 조건이 충족될 때까지 반드시 그 출력의 일부를 어떤 방법으로든 재차 입력측에 되돌려 같은 처리를 하는 제어 방식을 말한다.
루프(loop)라는 반복 구조이며, 본체(body)라고 불리는 명령들의 집합이 특정 제어 과정 하에서 반복적으로 실행되는 것.
(1) 초기화 : 종료 조건으로 이행되어갈 초기 상태를 확립한다.

(2) 테스트 : 현재 상태와 종료 조건을 비교하고 이들이 같으면 반복을 종료시킨다

(3) 변경 : 종료 조건을 향해 나아가도록 상태를 변화시킨다.
종료 조건은 빈자리가 기준 항목보다 크지 않은 이름 바로 아래에 오거나 빈자리가 리스트 상단에 이르렀을 때 발생한다.
선택 정렬(selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.

1. 주어진 리스트 중에 최솟값을 찾는다.

2. 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).

3. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
버블 정렬(bubble sort) : 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내며 정렬하는 방식이다
2) 재귀제어
재귀법 - 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식으로 주어진 문제를 푸는 방법이다.
기본 케이스 - 재귀 함수가 추가적인 호출 전에 종료 조건을 테스트하도록 설계된 것
부정확성을 증명(오류가 있음을 증명)
정확성을 증명할 수는 없음 (오류가 없음을 증명할 수는 없음)
정확성 = 가능한 모든 입력에 대해 프로그램이 제대로 작동
검증(Validation)
사후 조건
:
테스트 또는 테스트 상세 절차(test procedure)를 실행한 후에 충족되어야 하는 환경 또는 상태 조건.
Full transcript