1 / 58

전산 교과목 체제와 기초프로그래밍 강좌

전산 교과목 체제와 기초프로그래밍 강좌. 2002 년 8 월 김 진형 ( KAIST 전산학과). Copyleft@2002 by J.H.Kim. 내 용. 소프트웨어 산업 현황 소프트웨어 산업을 위한 대학의 역할 전산 교과목 체계 프로그래밍 기초 과목의 설계 및 구현. 정보통신 산업의 분류. 정보통신 서비스 기간통신 서비스 별정 통신 서비스 부가 통신 서비스 정보통신 기기 통신기기 정보기기 방송기기 부품 소프트웨어 및 컴퓨터 관련 서비스. 국내 정보통신 산업 생산액 (단위 : 조원).

jaclyn
Télécharger la présentation

전산 교과목 체제와 기초프로그래밍 강좌

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 전산교과목 체제와 기초프로그래밍 강좌 2002년 8월 김 진형 (KAIST 전산학과) Copyleft@2002 by J.H.Kim

  2. 내 용 • 소프트웨어 산업 현황 • 소프트웨어 산업을 위한 대학의 역할 • 전산 교과목 체계 • 프로그래밍 기초 과목의 설계 및 구현 2

  3. 정보통신 산업의 분류 • 정보통신 서비스 • 기간통신 서비스 • 별정 통신 서비스 • 부가 통신 서비스 • 정보통신 기기 • 통신기기 • 정보기기 • 방송기기 • 부품 • 소프트웨어 및 컴퓨터 관련 서비스 3

  4. 국내 정보통신 산업 생산액 (단위 : 조원) 통신기기 방송기기 소프트웨어 4 전체 수출의 30% 1 US$ = 1000원 출처: 정보통신부 웹(www.mic.go.kr)

  5. 한국 : 세계 제1의 정보통신 인후라 • 2438만명의 인터넷 인구(2001년 말) • 7세-19세의 93.3%, 20대의 84.6%, 30대의 61.6% • 76.9%의 가구가 PC 보유 • 750만 가구가 초고속통신망에 연결 • 인터넷 Banking 인구 : 1000만 명 • 62.4%가 매일 접속, 주 평균 12시간 사용 • 인터넷 인구의 84.4%가 email 사용 • 2750만 무선통신 서비스 가입자 • 원천 기술의 부족 : 2001년 퀄컴에 지급할 기술료 3억2천만 달라 5

  6. 정보 산업인/기술인의 시대적 사명 • “인터넷, 무선통신을 이용한 서비스 개발, 시장 선점” • 우수한 정보통신 인후라의 활용 • 전자정부, 전자상거래, 교육정보화, 문화컨텐츠 개발 • 산업의 정보화 • 기간 사업의 경쟁력 제고 • 정보기술을 이용한 신 기술 개발의 촉진 • BT, NT 등 소프트웨어 산업이 향후 10년간 한국을 이끌어 가야 한다 6

  7. S/W 산업의 위상 21C 대표적 지식 산업 막대한 파급효과 • 지식기반의 고부가가치 창출 • 환경 친화적 사업 • 산업 경쟁력 제고의 기반 • 사회 전분야에 파급 Digital 경제의 핵심 미래 지향적 성장산업 우리나라 최적 산업 • 고성장 산업 • 선진국의 전략적 육성 산업 • 높은 교육수준 활용 • 자원 부족 극복 한국S/W산업 발전과 창조적 인재상, 김광호, 2002년 5월 KAIST특강 자료

  8. 세계 S/W 분야별 시장 현황과 전망 단위 : 억 달라 8

  9. Software is the Major Part 9

  10. 국내 S/W 분야별 생산 현황 및 전망 단위 : 10억원 CAGR 24.2% 10 세계 시장 비율 2001년 1.51% 2006년 2.32% 예상

  11. 경쟁국 소프트웨어 생산 및 수출 비교 ※ 한국은 2001년 기준 다른 국가는 2000년 기준 * 자료 : 소프트웨어진흥원 (단위 : 백만불) 11

  12. 소프트웨어를 통한 가치 창출 • 소프트웨어 제품 개발 (Publication, 솔루션, Product) • 업무용, 오락용 포함 • 기업 및 정부에 대한 정보 서비스 제공 • 컨설팅, 고객 시스템 개발, 시스템 통합 • In-House 소프트웨어 개발 • 소프트웨어를 통한 인터넷 사업 • 내장 시스템 • 기술 판매 • 소프트웨어 Localization, 영업지원, 훈련 12

  13. 정보 재화(소프트웨어)의 특징 • 높은 초기 생산비용, 낮은 재생산 비용 • 경험하기 전에는 가치를 인정하지 않음 • 신상품 구매 회피 • 사용 기회 제공이 필수 • 상표 및 브랜드 파워 중요 • 정보재화의 가치는 소비자에 따라 상이 • 차별화 된 버전 제공 용이 • 데모용, 일반용, 전문가용 • 개인화 된 가격 정책 • 특정 기술에 고착 현상(lock-in) • 높은 전이 비용 – 강한 자를 더 강하게 13 *정보출처 : Sapiro and Varrian, Information Rules, Harvard business school press, 1999

  14. 정보 재화(소프트웨어)의 판매 전략 • 시장 선점 • 소비자가 상품이 널리 쓰일 것이라는 기대감을 주도록 해야 • 네트웍 외부효과 • MS를 쓰는 이유는 많은 사람이 사용하기 때문에 • 훨씬 더 우수한 제품으로 고객 탈취 • 호환성 제공 • 전환비용이 싼 소비자를 겨냥 • 고착 효과의 탈피 • 표준의 채택 • 선점 경쟁에서 시장의 몫 경쟁으로 14

  15. 국내 S/W 산업의 문제점 • ▪ 국제적 표준 품질에 대한 인식부족 • 회사별 자체용으로 S/W개발 낮은 품질 생산성 및 수출저조 개발인력부족 • ▪ 고급 기술인력 부족 • 불법복제 등으로 개발 의욕 저하 기술력 부족 ▪ 주요 핵심기술의 해외 종속 - DBMS, ERP는 대부분 선진국에 의존 - 국내 N/W장비 : 외국업체 90% 점유 한국S/W산업 발전과 창조적 인재상, 김광호, 2002년 5월 KAIST특강 자료

  16. 우리 컴퓨터-소프트웨어 산업의 현황 • 컴퓨터 시스템 산업의 포기 • 기술력, 마케팅 능력의 높은 장벽을 실감 • TiCom, K-DOS, 바다 DBMS • 소프트웨어 Publishing 산업 고전 중 • Global standard, 창의적 아이디어, 마케팅 능력 부족 • 작은 국내 시장 • 닷컴 기업의 몰락 : 첨단 세계 시장을 겨냥하기에는 실력 부족 • 대기업 및 선두 기업 수출 추진 중이나 부진 • 응용 소프트웨어 개발 산업은 가내 수공업적 연명 • 국가 정보화 사업, 산업 정보화 사업 등 SI 국내 시장 • 경쟁력에는 의문이 있으나 지역적 이점 등으로 • 기술력보다는 노동집약적 산업으로 안삭됨 • 컨텐츠 산업은 초기 단계 – 우리의 능력 검증 안됨 • 총 수출액에 S/W가 차지하는 비율 : 1.5% 16

  17. IT Maturity Model IT as a strategic business competence IT as enabler of business process innovation IT as a cost center Companies in Korea 17 Source: McKinsey IT survey, Korea 2001

  18. 소프트웨어산업을 위한 대학의 역할

  19. 주요 경쟁국 국가 경쟁력 변화 19

  20. 과학 기술 인력 수준 • 총 R&D 인력(97)(천명)10위 • 1인당 총 R&D 인력(97) 22위 • 기업체 총 R&D 인력(97) 8위 • 1인당 기업체 총 R&D 인력 19위 • 노동시장에 실력있는 엔지니어가 충분히 있는 정도*43위 • 노동시장에 실력있는 정보기술자가 충분히 있는 정도*43위 IMD 1999년 자료 “세계 경쟁력 년감” 20

  21. 노동시장의 기술 인력 확보 21

  22. 한국 대학의 경쟁력 • IMD Report에서 • 교육인적 자원 경쟁력 32위 • 대학 교육의 효율성 • 48개국중 47위 (2000년) • 49개국중 47위(2001년) • 교육시스템 효율성 44위 22

  23. 한국 총인구 vs 대학 재학생 수 23

  24. 구세대 엔지니어, 신세대 엔지니어 아는 게 많다 계속해서 배울 줄 안다 눈치가 있다 아이큐가 높다 안목이 높다 창의력 있다 팀플레이 (따라)한다 팀워크 (함께)한다 말 잘 듣는다 말 잘 한다 순발력 있다 스스로 알아서 한다 손재주 있다 끈기 있다 GIS 전개와 대응 방안, 조벽에서 옮김

  25. 학문으로서의 Computer Science 미래Interview with Ken Thompson, Computer Magazine, May 1999 • Computer Science 는 이미 중년기에 접어들었다. • computing is a finite field • 컴퓨터는 이미 일상용품(commodity)가 되었다 • OS나 컴파일러를 몰라도 컴퓨터 사용할 수 있다. • The entry fee is too high. • 좋은 OS, Browser의 아이디어가 있어도 상용화 불가능 • Computer Science 의 관점이 점점 더 특화, 다양화 되고 있다. 해석: 이제는 컴퓨터 시스템 개발보다 컴퓨터 응용, 즉 소프트웨어 기술에 치중해야 25

  26. Computer Science의 배 경 • 글로벌 정보화 사회의 핵심 기술 • 인터넷, 소프트웨어, 정보시스템, 전자상거래, 전자정부, 문화컨텐츠, 교육컨텐츠, Game • 모든 산업과 깊은 관련 분야 • 금융, 유통, 국방, 교육, 의료, 교통, 행정 • 모든 학문과 관련 • BT, NT등의 신학문 분야 태동 • 기존 학문 연구하는 방법의 변화 • 전자 등의 모든 공학분야, Information System 등의 경영분야 • 인지과학, Medical & Nursing Informatics, 국어정보학 • 다양화, 특화 되고있다 • S/W Engineering, Information Systems, 멀티미디어 26

  27. Engineering 학문의 발전 과정 박수용 “공학적 개념의 프로그래밍 교육”에서, (2002년 7월 프로그레밍 교육 워크숍 발표 자료) Science Ad-hoc practice ProfessionalEngineering Production Commercial • 교육된 전문가들 • 분석과 이론 • 과학에 의한 진전 • 전문 클래스에 의한 교육 • 분석을 통하여 새로운 응용이 가능 • 제품의 다양화에 의한 시장 분할 Craft • 숙련된 기술자들 • 절차가 수립되어 있음 • 실용적인 정제 작업 • 기계적인 훈련 • 자원의 공급과 비용에 대한 경제적인 고려 • 판매를 위한 생산 • 대가(Virtuoso)와 재능있는 아마츄어들 • 직관과 맹목적인 압력(Force) • 우연에 의한 진전 • 계획없는 전파 • 가능한 자원의 지나친 사용 • 판매 보다는 사용을 위한 생산 27

  28. 컴퓨터-소프트웨어 학과의 진화 추세 School of Computing Computer Science Computer Engineering Software Engineering Information Systems 28

  29. 컴퓨터-소프트웨어 인력 양성의 현황 • 대학이 컴퓨터-소프트웨어 노동시장 진입의 주 통로 • 타 전공자도 특별한 훈련없이 시장에서 경쟁 • 비정규 교육 기관의 선전, 대학과 경쟁 • 전문가 훈련의 많은 부문을 대기업에서 부담 • 취업후 장시간 교육 실시 • 중소기업에서는 Career Plan 개념 부재 대학이 함량 부족한 졸업생 과다 배출 4년제 대학 취업률 53%, 75% 이상의 기업이 경력자 선호 • 컴퓨터-소프트웨어 능력과 응용분야의 전문지식을 겸비한 고급엔지니어, 설계자의 부족 • Software architect, project leader, project manager의 부족 • 재교육, 재 충전 기회의 부족, 조기 노화 29

  30. 컴퓨터-소프트웨어 학과의 교육 목표 • 현장의 요구에 부합하는 능력을 갖춘 소프트웨어 엔지니어의 양성 • CIO 자질 양성 • 소프트웨어 엔지니어의 정의 • Software system의 analysis(분석), specification(시방작성), design(설계), development(개발), certification(인증), maintenance(유지관리), testing(검사)을 業으로 하는 사람 (from IEEE/ACM Code of Ethics) 30

  31. CS 졸업생이 갖추어야 할 것일반적인 능력 • System-level perspective • High-level understanding of systems as a whole • Interplay between theory and practice • Familiarity with common themes • Abstraction, complexity, evolutionary change • Significant project experience • Demonstrate practical application of principles • Adaptability • Maintain skills as the field evolves 31

  32. CS 졸업생이 갖추어야 할 것능력과 기술 • 전산에 관련된 업무를 수행하기 위한 지적 능력 • Knowledge and understanding of principles and theories, Modeling, Requirement, Critical evaluation and testing, Methods and tools, Professional Responsibility • 전산에 관련된 실무적 기술 • Problem Identification, Analysis, design and Implementation of software systems, along with documentation • Evaluation, Information management, Human-computer interaction, Risk assessment, Tools, Operation • 전산학에서 배양했지만 다른 일반적인 문제에도 적용할 수 있는 기술 • Communication, Teamwork, Numeracy, Self Management, Professional development 32

  33. CS 졸업생이 갖추어야 할 것변화에의 대처 • 독립적으로 생각할 수 있도록 가르침을 받는 것보다는 스스로 배우는 것을 강조 • 특정 정보의 전달을 피하고 스스로 지식과 기술을 획득하도록 • 도전적이고 상상력이 풍부한 연습문제를 제공 • 교육이 지속적 효과를 갖도록 이론을 바탕으로 한 건실한 틀을 제공 • 교육장비와 교재는 최신으로 • 학생들이 정보 출처 및 분야의 변화에 민감하도록 • 협동적 학습과 통신기술을 이용한 집단 상호작용을 강조 • 전문성을 유지하기 위한 평생교육의 필요성을 확신토록 33

  34. CIO’s Mission Statement* Provide technology vision and leadership for developing and implementing IT initiatives that create and maintain leadership for the enterprise in a constantly changing and intensely competitive marketplace 34 *from http://www.gartner.com

  35. Chief Information Officer 책무 • 회사의 목표를 위하여 IT 사용을 지휘 • 기술 및 회사 업무에 관한 지식을 이용하여 회사의 사업 전략에 기술 배치 전략을 조율 • 정보시스템 부서의 기술 구매, 구현작업, 업무를 감독 • 회사 business process reengineering의 리더 • 회사내의 정보를 생산적이고, 효율적이며 가치있게 사용하기 위한 IT 인후라를 보강 • 지식 경영의 리더 및 지적재산의 평가 35

  36. 전산학 교과목 체계

  37. 공학도에게 가르쳐야 할 교육내용* Tools(도구) 원리와 전문기법의 응용을 돕는 최신 제품 Applications(응용분야) 원리와 전문기법이 적절하게 적용되는 전문 영역 Practices(전문기법) 우수한 전문인이 보편적으로 사용하는 문제해결 기법 Principles(원리) 전체 영역을 집배하는 변치않은 개념 Mathematics(수학) 많은 현상의 해석을 가능하게 하는 형식적 토대 37 *B. Meyer “Software Engineering in the Academy” IEEE Computer, May 2001

  38. 대학별 교육 내용의 균형 선택 Principle Math Practice Applications Tools 38

  39. 학부 교과 내용 구성 (김진형보고서*) 현장 R&D 석박사과정 Product 개발 인력 SI 인력 Embedded Software Web and Internet Service MMedia 개발 인력 학사과정 Computing 공통 기초 39 * http://ai.kaist.ac.kr에서 software교육 link를 따라가면 Down 받을 수 있음

  40. 컴퓨터-소프트웨어 교과목 구성 • 교양 전산–1학년 때에 이수토록 권장 • Introduction to Computing 1 & 2 • 전공 진입 프로그래밍 심화 과목 – 필수 • 컴퓨터-소프트웨어 분야의 기초 과목 • 수학 과목 중에서 전산학에 필요한 것 • 컴퓨터-소프트웨어 분야의 공통 고급 과목 • Track별 전공 심화 과목 • ProductDevelopment(PD), System Integration(SI), Web and Internet service(WI), Embedded System(ES), MultiMedia(MM), Research (R&D) • 졸업 프로젝트 - 필수 40

  41. 통합 커리큐럼

  42. Computing Curricula 2001 : Computer Science • 대학의 Computer Science 교과목 체계 제안 • Joint Task Force on Computing Curricula, IEEE Computer Society & ACM • Final Report on 12/15/2001 • www.acm.org , 236 pages 42

  43. 31 43 16 10 10 38 Total 272 Core Hours 3 8 21 31 15 18 36 Computer Science Body of Knowledge Source : IEEE/ACM Computing Curricula 2001 Computer Science

  44. 프로그래밍 기초 교과목 개발

  45. 기초 프로그래밍 교육의 의의 • 전산학을 공부하기 위한 핵심 기술 • 비전공자에게도 필요한 “Skills course”로 인정 • 일반학과에서도 필수로 지정하는 추세 • 취업을 위한 필수 능력으로 인정됨 • 전통적으로 “Introduction to Programming”로 시작 –programming-first approach • 프로그래밍 언어 형태에 따라서 • Imperative-first, Objects-first, Functional-first • Other approaches are also suggested • Breadth-first, algorithm-first, hardware-first 45

  46. Progamming-First 에서의 문제점 • “전산학=프로그래밍”이라는 잘못된 인식 주입 가능성 • 이론에 관한 관심이 적어진다 • Syntax나 특정언어의 특성에 집착할 가능성 • 프로그래밍을 ad hoc방법론에 의지할 가능성 • 프로그래밍 절차를 Oversimplify할 가능성 • 디자인, 분석, Testing을 간과하고 coding만 • 새로운 문제, 환경에 적응 능력 결여 • 입학전에 프로그래밍 해본 학생들 문제 • “프로그래밍을 해야만 문제를 풀수 있다”는 잘못된 생각 • 응용패키지의 활용성 간과, 특히 타 전공자들에게 46

  47. Programming Fundamentals (38 hrs) • 전산학 공부하는데 필수적 도구 • 최소한 한 언어는 능숙하게 사용하도록 • 4년간 최소 두개의 Programming paradigm 훈련 • PL, SE 과목과 중첩 가능성 • Fundamental Programming constructs(9) • Algorithms and Problem solving(6) • Fundamental Data Structure (14) • Recursion (5) • Event-Driven programming (4) 47

  48. Topics of Fundamental Programming Constructs (9 core hours) • Basic Syntax and semantics of a higher-level language • Variables, types, expressions, and assignment • Simple I/O • Conditional and iterative control structures • Function and Parameter Passing • Structured decomposition 48

  49. Topics of Algorithms and problem solving (6 core hours) • Problem solving strategies • The role of algorithms in the programming process • Implementation strategies • The concept and properties of algorithms 49

  50. Topics of Fundamental Data Structures (14 core hours) • Primitive types • Arrays • Records • String and string processing • Data representation in memory • Static, stack and heap allocation • Runtime storage management • Pointers and references • Linked structures • Implementation strategies for stacks, queues, and hash tables • Implementation strategies for graphs and trees • Strategies for choosing right data structures 50

More Related