Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

국민대-컴퓨터프로그래밍-2017-1-오프라인강좌

569 views

Published on

국민대학교 컴퓨터프로그래밍, 오프라인 강좌 강의자료

Published in: Software
  • Be the first to comment

  • Be the first to like this

국민대-컴퓨터프로그래밍-2017-1-오프라인강좌

  1. 1. 컴퓨터 프로그래밍 이 민석 국민대학교 소프트웨어학부
  2. 2. https://youtu.be/ryt0a9ri500 에 동영상이… 모두의 소프트웨어, http://sw4all.kookmin.ac.kr
  3. 3. • 1학기 목표 –Excel을 유창하게 • 생산성 높은 삶을 위하여 • MOS Excel Expert 자격증 –컴퓨터 프로그램 느껴보기 • 아~ 이런 거구나, 별거 없구나, 재미 있구나 !! – 엔트리 (entry) 프로그래밍 – Physical Computing (하드웨어 활용) • 논리적, 절차적 사고의 이해 • 소프트웨어적 표현 실습 • 개인별 프로젝트 컴퓨터 프로그래밍 I 과목 소개
  4. 4. 사실 Excel로도 게임을 만들수도 있고.. • RPG http://carywalkin.ca/ • TETRIS https://www.youtube.com/watch?v=l-nMHQ1d4wY
  5. 5. http://www.think-maths.co.uk/spreadsheet Excel로 그림도 그릴 수는 있어요..
  6. 6. 개피곤…
  7. 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. 8. 그 python은 2학기에 배웁니다.
  9. 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. 10. 언어의 첫 걸음: Hello World! • Scratch 버전 • Entry 버전 • Python 버전 # Hello World! in Python 3 print("Hello World!")
  11. 11. 그리고, 이번 학기 남은 기간 동안은 ..
  12. 12. Why Entry? • Entry 역시 프로그래밍 언어의 일종 – 웹으로 되고, PC, Mac에서도 되고 • 스마트폰에서도 되고. – 쉽고, 재미있고, – 문법보다는 의미에 더 신경쓸 수 있게 하고 – “~~일이 발생하면 ~~를 해요” 라는 방식도 가능하고. – 무료, 오픈소스이고, 국산이고 – 하드웨어, 센서 연결해서… • 소위 말하는 IOT.. • 멋진거 다 할 수 있..
  13. 13. 교재 (동영상 + 교재 + 하드웨어) 컴퓨팅 사고력을 키우는 SW 교육 피지컬 컴퓨팅 (엔트리 & 코드이노) 출판사 : 한빛아카데이 ISBN : 9791156643081 하드웨어는 실습 때 제공
  14. 14. 그래서 프로그래밍 이란?
  15. 15. OFF ON 절차적으로 정리하면 만일 스위치가 ON 위치 이면 불을 켜고, 아니면 불을 끈다. 프로그램으로 짜면 if (switch == ON-position) then turn_LIGHT(ON) else turn_LIGHT(OFF) 말로 하면 스위치를 누르면 불이 켜진다. 프로그램의 예 * 모든 언어마다 문법은 조금씩 다름 로 짜면
  16. 16. 알파고도 풀 수 없는 문제.. 시작 (여자가 화가 남) 미안해 뭐가 미안해? 알아몰라 알면서 그래? 모르면서 그래? 잘못했어 뭘 잘못했는데? 남자 여자 : 멘붕에 따른 임의의 선택 (머리속에서 어설픈 동전던지기) Man Trapped
  17. 17. 예제: Man Trapped 미안해: 뭐를: 여자_화남 = TRUE; 남자(“미안해”); 여자(“뭐가 미안해?”); 남자(머릿속 동전 던지기); if (동전=앞면) then 남자(“알아”); 여자( “알면서그래?”); else 남자(“몰라”); 여자(“모르면서 그래?”); 남자(머릿속 동전 던지기); if (동전=앞면) then goto 미안해; 남자(“잘못했어”); 여자(“ 뭘 잘못했는데?”); goto 뭐를;
  18. 18. 예제: Man Trapped • 사건을 단계로 풀어보면… 1. 시작 2. ‘미안해’ 하고 3. 막 추궁 당하고, 4. 아무 대답이나 하고, 5. 제대로 일격을 당하고 6. 나름 작전을 선택하고 7. ‘미안해’ 하면 2번으로 돌아가고 8. ‘잘못했어‘ 하면 9. 막 추궁 당하고 10. 다시 4번으로 가서 반복
  19. 19. 알파고도 풀 수 없는 문제.. http://j.mp/man-trapped
  20. 20. 프로그래밍 요소 (순차, 반복, 조건) • 순차 실행 – 아래로 향하는 화살표 – 블록(문장)이 차례로 실행 • 반복 – 위로 올라가 다시오는 화살표 • 조건 – 선택에 따른 두 방향의 화살표
  21. 21. 그럼 데이터는?
  22. 22. 세상의 많은 문제의 본질은... •데이터 사이의 관계를 이해하는 것 데이터의 순서  정렬 (Sorting) : 어떤 기준이든. 데이터의 소속  분류 (Categorizing) 및 인식 : 어떤 구분이든. 데이터의 연관성  관계 (Relation)의 설정 : 어떤 이유이든. 데이터의 변화  추세(Trend)의 확인 : 어떤 관점이든.
  23. 23. 데이터의 순서
  24. 24. 데이터의 소속 • 소속, 분류의 문제 • 인식의 문제  Spam 메일 vs 중요 메일 사과인가 배인가? 개인가 고양이인가? 이 자는 누구인가? 나이는 몇인가?
  25. 25. 데이터의 연관성 • 두 데이터 사이의 관계 친구인가? 그렇고 그런 관계인가?
  26. 26. 데이터의 변화 • 추세의 확인과 예측 지금까지는 어땠는데… 다음은 어떻게 될 것인가? http://tvchosun.com/pollab//publicopinion.html
  27. 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. 28. Shell Insertion Merge Quick Heap Comb https://www.youtube.com/watch?v=ZZuD6iUe3Pc
  29. 29. https://www.youtube.com/watch?v=14oa9QBT5Js
  30. 30. 요약 • 효율적인 프로그래밍 도구가 필요하다. • 엔트리를 배운다. – 쉽다, 재미있다 • 프로그램이란 별거 아니다. – 논리에 따라 순차적인, 반복적인, 명령의 수행 • 데이터가 중요하다. – 순서, 소속, 연관성, 변화 • 그렇다.
  31. 31. 컴퓨터프로그래밍 페이스북 그룹 http://j.mp/kmu-comp 끝 이민석 국민대학교 소프트웨어학부

×