ݺߣ

ݺߣShare a Scribd company logo
컴퓨터 프로그래밍
이 민석
국민대학교 소프트웨학붶
https://youtu.be/ryt0a9ri500 에 동영상이…
모두의 소프트웨어, http://sw4all.kookmin.ac.kr
• 1학기 목표
–Excel을 유창하게
• 생산성 높은 삶을 위하여
• MOS Excel Expert 자격증
–컴퓨터 프로그램 느껴보기
• 아~ 이런 거구나, 별거 없구나, 재미 있구나 !!
– 엔트리 (entry) 프로그래밍
– Physical Computing (하드웨어 활용)
• 논리적, 절차적 사고의 이해
• 소프트웨어적 표현 실습
• 개인별 프로젝트
컴퓨터 프로그래밍 I 과목 소개
사실 Excel로도 게임을 만들수도 있고..
• RPG
http://carywalkin.ca/
• TETRIS
https://www.youtube.com/watch?v=l-nMHQ1d4wY
http://www.think-maths.co.uk/spreadsheet
Excel로 그림도 그릴 수는 있어요..
개피곤Ħ
그래서
• 문제 해결을 위한 효과적인 도구가 필요
• 가장 많이 사용되는 프로그래밍 언어
– TIOBE Index, Apr. 2017
(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)
– 5위 : Python
• 1위 ~ 4위 : 어디선가 많이 들어본 Java, C, C++, C#
• 해커톤 사용 언어 순위
– 해커톤 : 1박2일~2박3일시간의 짧은 시간 안에 (팀으로)
소프트웨어 (서비스, 게임)을 개발하는 것
– http://www.bloter.net/archives/234334
– 3위 : Python
• 1위 : HTML/CSS, 2위 : JavaScript, 4위 : Java
그 python은 2학기에 배웁니다.
언어의 첫 걸음: Hello World!
• Java 버전
• C 버전
// Hello World in Java
class HelloWorld {
static public void main(String args[]) {
System.out.println("Hello World!”);
}
}
/* Hello World in C, Ansi-style */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
puts("Hello World!");
return EXIT_SUCCESS;
}
언어의 첫 걸음: Hello World!
• Scratch 버전
• Entry 버전
• Python 버전
# Hello World! in Python 3
print("Hello World!")
그리고, 이번 학기 남은 기간 동안은 ..
Why Entry?
• Entry 역시 프로그래밍 언어의 일종
– 웹으로 되고, PC, Mac에서도 되고
• 스마트폰에서도 되고.
– 쉽고, 재미있고,
– 문법보다는 의미에 더 신경쓸 수 있게 하고
– “~~일이 발생하면 ~~를 해요” 라는 방식도 가능하고.
– 무료, 오픈소스이고, 국산이고
– 하드웨어, 센서 연결해서…
• 소위 말하는 IOT..
• 멋진거 다 할 수 있..
교재 (동영상 + 교재 + 하드웨어)
컴퓨팅 사고력을 키우는 SW 교육
피지컬 컴퓨팅
(엔트리 & 코드이노)
출판사 : 한빛아카데이
ISBN : 9791156643081
하드웨어는 실습 때 제공
그래서
프로그래밍 이란?
OFF
ON
절차적으로 정리하면
만일 스위치가 ON 위치 이면
불을 켜고,
아니면
불을 끈다.
프로그램으로 짜면
if (switch == ON-position) then
turn_LIGHT(ON)
else
turn_LIGHT(OFF)
말로 하면
스위치를 누르면 불이 켜진다.
프로그램의 예
* 모든 언어마다 문법은 조금씩 다름
로 짜면
알파고도 풀 수 없는 문제..
시작
(여자가 화가 남)
미안해
뭐가 미안해?
알아몰라
알면서
그래?
모르면서
그래?
잘못했어
뭘 잘못했는데?
남자
여자
: 멘붕에 따른 임의의 선택
(머리속에서 어설픈 동전던지기)
Man Trapped
예제: Man Trapped
미안해:
뭐를:
여자_화남 = TRUE;
남자(“미안해”);
여자(“뭐가 미안해?”);
남자(머릿속 동전 던지기);
if (동전=앞면) then
남자(“알아”);
여자( “알면서그래?”);
else
남자(“몰라”);
여자(“모르면서 그래?”);
남자(머릿속 동전 던지기);
if (동전=앞면) then
goto 미안해;
남자(“잘못했어”);
여자(“ 뭘 잘못했는데?”);
goto 뭐를;
예제: Man Trapped
• 사건을 단계로 풀어보면…
1. 시작
2. ‘미안해’ 하고
3. 막 추궁 당하고,
4. 아무 대답이나 하고,
5. 제대로 일격을 당하고
6. 나름 작전을 선택하고
7. ‘미안해’ 하면 2번으로 돌아가고
8. ‘잘못했어‘ 하면
9. 막 추궁 당하고
10. 다시 4번으로 가서 반복
알파고도 풀 수 없는 문제..
http://j.mp/man-trapped
프로그래밍 요소 (순차, 반복, 조건)
• 순차 실행
– 아래로 향하는 화살표
– 블록(문장)이 차례로 실행
• 반복
– 위로 올라가 다시오는 화살표
• 조건
– 선택에 따른 두 방향의 화살표
그럼
데이터는?
세상의 많은 문제의 본질은...
•데이터 사이의 관계를 이해하는 것
데이터의 순서
 정렬 (Sorting) : 어떤 기준이든.
데이터의 소속
 분류 (Categorizing) 및 인식 : 어떤 구분이든.
데이터의 연관성
 관계 (Relation)의 설정 : 어떤 이유이든.
데이터의 변화
 추세(Trend)의 확인 : 어떤 관점이든.
데이터의 순서
데이터의 소속
• 소속, 분류의 문제
• 인식의 문제
 Spam 메일 vs 중요 메일
사과인가 배인가?
개인가 고양이인가?
이 자는 누구인가?
나이는 몇인가?
데이터의 연관성
• 두 데이터 사이의 관계
친구인가?
그렇고 그런 관계인가?
데이터의 변화
• 추세의 확인과 예측
지금까지는 어땠는데… 다음은 어떻게 될 것인가?
http://tvchosun.com/pollab//publicopinion.html
알고리즘 예, 데이터의 정렬 방식
• Simple sorts
 Insertion sort
 Selection sort
• Efficient sorts
 Merge sort
 Heap sort
 Quick sort
• Bubble sort and variants
 Bubble sort
 Shell sort
 Comb sort
• Distribution sort
 Counting sort
 Bucket sort
 Radix sort
• …
문제는 다 같다:
데이터를 순서대로 정렬하는 것
답은 다르다:
데이터의 모양에 따라서
http://en.wikipedia.org/wiki/Sorting_algorithm
Shell Insertion
Merge Quick Heap
Comb
https://www.youtube.com/watch?v=ZZuD6iUe3Pc
https://www.youtube.com/watch?v=14oa9QBT5Js
요약
• 효율적인 프로그래밍 도구가 필요하다.
• 엔트리를 배운다.
– 쉽다, 재미있다
• 프로그램이란 별거 아니다.
– 논리에 따라 순차적인, 반복적인, 명령의 수행
• 데이터가 중요하다.
– 순서, 소속, 연관성, 변화
• 그렇다.
컴퓨터프로그래밍
페이스북 그룹
http://j.mp/kmu-comp
끝
이민석
국민대학교 소프트웨학붶

More Related Content

국민댶-컴퓨터프로그래밍-2017-1-ᅩᅳᅡᅵᆫᄀơᆼᅪ

  • 2. https://youtu.be/ryt0a9ri500 에 동영상이… 모두의 소프트웨어, http://sw4all.kookmin.ac.kr
  • 3. • 1학기 목표 –Excel을 유창하게 • 생산성 높은 삶을 위하여 • MOS Excel Expert 자격증 –컴퓨터 프로그램 느껴보기 • 아~ 이런 거구나, 별거 없구나, 재미 있구나 !! – 엔트리 (entry) 프로그래밍 – Physical Computing (하드웨어 활용) • 논리적, 절차적 사고의 이해 • 소프트웨어적 표현 실습 • 개인별 프로젝트 컴퓨터 프로그래밍 I 과목 소개
  • 4. 사실 Excel로도 게임을 만들수도 있고.. • RPG http://carywalkin.ca/ • TETRIS https://www.youtube.com/watch?v=l-nMHQ1d4wY
  • 7. 그래서 • 문제 해결을 위한 효과적인 도구가 필요 • 가장 많이 사용되는 프로그래밍 언어 – TIOBE Index, Apr. 2017 (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) – 5위 : Python • 1위 ~ 4위 : 어디선가 많이 들어본 Java, C, C++, C# • 해커톤 사용 언어 순위 – 해커톤 : 1박2일~2박3일시간의 짧은 시간 안에 (팀으로) 소프트웨어 (서비스, 게임)을 개발하는 것 – http://www.bloter.net/archives/234334 – 3위 : Python • 1위 : HTML/CSS, 2위 : JavaScript, 4위 : Java
  • 8. 그 python은 2학기에 배웁니다.
  • 9. 언어의 첫 걸음: Hello World! • Java 버전 • C 버전 // Hello World in Java class HelloWorld { static public void main(String args[]) { System.out.println("Hello World!”); } } /* Hello World in C, Ansi-style */ #include <stdio.h> #include <stdlib.h> int main(void) { puts("Hello World!"); return EXIT_SUCCESS; }
  • 10. 언어의 첫 걸음: Hello World! • Scratch 버전 • Entry 버전 • Python 버전 # Hello World! in Python 3 print("Hello World!")
  • 11. 그리고, 이번 학기 남은 기간 동안은 ..
  • 12. Why Entry? • Entry 역시 프로그래밍 언어의 일종 – 웹으로 되고, PC, Mac에서도 되고 • 스마트폰에서도 되고. – 쉽고, 재미있고, – 문법보다는 의미에 더 신경쓸 수 있게 하고 – “~~일이 발생하면 ~~를 해요” 라는 방식도 가능하고. – 무료, 오픈소스이고, 국산이고 – 하드웨어, 센서 연결해서… • 소위 말하는 IOT.. • 멋진거 다 할 수 있..
  • 13. 교재 (동영상 + 교재 + 하드웨어) 컴퓨팅 사고력을 키우는 SW 교육 피지컬 컴퓨팅 (엔트리 & 코드이노) 출판사 : 한빛아카데이 ISBN : 9791156643081 하드웨어는 실습 때 제공
  • 15. OFF ON 절차적으로 정리하면 만일 스위치가 ON 위치 이면 불을 켜고, 아니면 불을 끈다. 프로그램으로 짜면 if (switch == ON-position) then turn_LIGHT(ON) else turn_LIGHT(OFF) 말로 하면 스위치를 누르면 불이 켜진다. 프로그램의 예 * 모든 언어마다 문법은 조금씩 다름 로 짜면
  • 16. 알파고도 풀 수 없는 문제.. 시작 (여자가 화가 남) 미안해 뭐가 미안해? 알아몰라 알면서 그래? 모르면서 그래? 잘못했어 뭘 잘못했는데? 남자 여자 : 멘붕에 따른 임의의 선택 (머리속에서 어설픈 동전던지기) Man Trapped
  • 17. 예제: Man Trapped 미안해: 뭐를: 여자_화남 = TRUE; 남자(“미안해”); 여자(“뭐가 미안해?”); 남자(머릿속 동전 던지기); if (동전=앞면) then 남자(“알아”); 여자( “알면서그래?”); else 남자(“몰라”); 여자(“모르면서 그래?”); 남자(머릿속 동전 던지기); if (동전=앞면) then goto 미안해; 남자(“잘못했어”); 여자(“ 뭘 잘못했는데?”); goto 뭐를;
  • 18. 예제: Man Trapped • 사건을 단계로 풀어보면… 1. 시작 2. ‘미안해’ 하고 3. 막 추궁 당하고, 4. 아무 대답이나 하고, 5. 제대로 일격을 당하고 6. 나름 작전을 선택하고 7. ‘미안해’ 하면 2번으로 돌아가고 8. ‘잘못했어‘ 하면 9. 막 추궁 당하고 10. 다시 4번으로 가서 반복
  • 19. 알파고도 풀 수 없는 문제.. http://j.mp/man-trapped
  • 20. 프로그래밍 요소 (순차, 반복, 조건) • 순차 실행 – 아래로 향하는 화살표 – 블록(문장)이 차례로 실행 • 반복 – 위로 올라가 다시오는 화살표 • 조건 – 선택에 따른 두 방향의 화살표
  • 22. 세상의 많은 문제의 본질은... •데이터 사이의 관계를 이해하는 것 데이터의 순서  정렬 (Sorting) : 어떤 기준이든. 데이터의 소속  분류 (Categorizing) 및 인식 : 어떤 구분이든. 데이터의 연관성  관계 (Relation)의 설정 : 어떤 이유이든. 데이터의 변화  추세(Trend)의 확인 : 어떤 관점이든.
  • 24. 데이터의 소속 • 소속, 분류의 문제 • 인식의 문제  Spam 메일 vs 중요 메일 사과인가 배인가? 개인가 고양이인가? 이 자는 누구인가? 나이는 몇인가?
  • 25. 데이터의 연관성 • 두 데이터 사이의 관계 친구인가? 그렇고 그런 관계인가?
  • 26. 데이터의 변화 • 추세의 확인과 예측 지금까지는 어땠는데… 다음은 어떻게 될 것인가? http://tvchosun.com/pollab//publicopinion.html
  • 27. 알고리즘 예, 데이터의 정렬 방식 • Simple sorts  Insertion sort  Selection sort • Efficient sorts  Merge sort  Heap sort  Quick sort • Bubble sort and variants  Bubble sort  Shell sort  Comb sort • Distribution sort  Counting sort  Bucket sort  Radix sort • … 문제는 다 같다: 데이터를 순서대로 정렬하는 것 답은 다르다: 데이터의 모양에 따라서 http://en.wikipedia.org/wiki/Sorting_algorithm
  • 28. Shell Insertion Merge Quick Heap Comb https://www.youtube.com/watch?v=ZZuD6iUe3Pc
  • 30. 요약 • 효율적인 프로그래밍 도구가 필요하다. • 엔트리를 배운다. – 쉽다, 재미있다 • 프로그램이란 별거 아니다. – 논리에 따라 순차적인, 반복적인, 명령의 수행 • 데이터가 중요하다. – 순서, 소속, 연관성, 변화 • 그렇다.

Editor's Notes

  1. 순서는 : 어떤 식이든 Sorting 소속은 : Categorize 분류, 인식 : 사진을 보고 개or고양이, 사과or배 연관성은 : 관계의 정의 : 친구, 부모, 학교-학생 변화는 : 미래 예측 : 어떤 관점이든
  2. 사진으로 성별과 나이를 잘 맞출 수 있다면… -- 예, 백화점 엘리베이터에서
  3. 사람 사이의 관계를 잘 알 수 있다면..
  4. 문제의 이해.. 뭘 (변화를 주도하는) 의미 있는 데이터로 볼 것인가? 유용하지만 가장 어려운 것 신용도를 조사한다면 의미있는 것과 아닌 거.