게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
AI - 컴퓨터 과학 학습
게시물ID : computer_336332짧은주소 복사하기
작성자 : 오토메틱시티(가입:2017-02-01 방문:221)
추천 : 1
조회수 : 280회
댓글수 : 0개
등록시간 : 2017/02/19 09:42:50

대다수의 독자들이 프로그래밍이나 여타 컴퓨터 분야에 종사하겠지만, 그래도 참고바랍니다.  


다른 과목들과 마찬가지로 만 2세 경에 시작하는 것이 바람직합니다. 유아용 컴퓨터 학습 앱(게임)이 많이 나와있고, 품질도 썩 훌륭합니다. 영어, 산수 공부와 마찬가지로 아이패드 미니 수준의 태블릿이 좋습니다.


컴퓨터 과목과 여타 과목 간의 비율은 유치원 단계에서 대략 2:8, 초등 과정에서 3:7, 중등 과정에서 5:5, 대학 과정에서 7:3, 대학원 과정에서 10:0으로 상정합니다.


유치원 단계에서 EToy 등의 프로그래밍 교육용 앱을 이용하면, 프로그래밍 언어와 컴퓨터의 구조를 자연스레 익힐 수 있습니다. 유치원 과정에서는 이런 저런 다양한 앱들을 가능한 많이 접할 기회를 제공하는 것이 최선입니다. 아쉽게도 영어, 산수 등의 과목과는 달리 만 2~15세 사이의 어린이와 청소년을 위한 체계적인 컴퓨터 학습 커리큘럼이 없으므로, 꿩 대신 닭으로 하나의 학습 타깃을 정한다면, 당근 리눅스입니다.


늦어도 초등과정에 접어들 나이면 태블릿과 더불어 반드시 리눅스 머신을 함께 사용해야 합니다. 아마존이나 Google Cloud Platform의 Virtual Machine을 이용하면, 집이나 학원에 별도의 PC를 마련하여 리눅스를 설치할 필요가 없고, Debian, Ubuntu 등 다양한 버전의 리눅스를 쉽게 설치하고 지울 수 있으며, 저렴합니다. 5-5-4-3-3 학제를 기준으로, 중등과정을 마칠 무렵에는 리누스 토발즈가 작성한 Linux Kernel을 재현할 수 있는 수준에 이르는 것이 바람직합니다. 다행스러운 점은 Udemy, Coursera, edX 등 대표적인 MOOC(Massive Open Online Curriculum)들이 이미 서비스 중이거나, 준비하고 있는 컴퓨팅 관련 코스 대부분이 리눅스 기반의 교수 시스템(Tutoring System)을 통해 출석/결석과 같은 학사 관리와 강의, 시험 등을 진행하므로, 학습자들이 원하든 않든 리눅스의 구조와 기능을 자연스레 익힐 수 있습니다. 종래의 프로그래머들도 마찬가지지만, AI 분야에서의 리눅스는 더욱 특별한데, 그 이유는 후미에 말씀드리겠습니다.  

Screen Shot 2017-02-19 at 9.40.39 AM.jpg


초등과정 학습자들은 리눅스 쉘 프로그래밍, Git, 파이썬, C, 간단한 웹 프로그래밍 등을 익히고, 원리보다는 익숙해지는데 초점을 둬야 합니다. 또한, 유치원 고학년부터 간단한 AI 프레임워크를 경험할 수 있어야 하는데, 이 부분은 ‘로보틱스 학습’에서 자세히 언급합니다.   


아래 표는 연령대 및 학제에 기초한 추천 교재(앱, 강좌)입니다. 향후, 컴퓨터 과학의 표준적인 커리큘럼을 구성하는데 참고가 될 수 있는 자료들을 취합하였으며, 일부 코스는 연령대에 적합하지 않을 수 있습니다. 가령, 초등 과정에 Berkeley 등의 대학 교양강좌가 포함되어 있습니다. 2017년 현재는 AI 프로그래머를 지망하는 초등학생을 위한 컴퓨터 과학 과정이 없으므로, 학부모 또는 지도자가 적절한 부분만 발췌하거나, 가능한 쉽게 풀어서 제공하는 것이 바람직합니다.


Age

Computer Science

유치원

(2~5)

C1

GCompris

Childsplay

C2

TuxPaint

EToys

C3

SuperTux

Secret Maryo

C4

TomBoy

TuxTyping

C5

Kalzium

Atomix

C6

Tux of Math Command


초등

(7~11)

C7

Introduction to Linux

Linux & Shell

C8

Python


C9

Computer Science

Introduction to Computer Science

C10

Computer Science 101

CS 101 Stanford University

C11

The Beauty and Joy of Computing

CS 10 UC Berkeley

C12

Introduction to Computer Science

CS 50 Harvard University

C13

Structure & Interpretation of Computer Programs [Racket]

CS 61A UC Berkeley

C14

Fundamental Programming Concepts

CS 1109 Cornell University

C15

Introduction to Computing Using Python

CS 1110 Cornell University

중등

(12~15)

C16

Julia Programming

Learning Julia

C17

Operating Systems and Systems Programming

CS 162 UC Berkeley

C18

Database Systems

15-721 Carnegie-Mellon University

C19

Hack Your Language!

CS164: UC Berkeley

C20

Intro to Programming Language

Programming Languages

C21

Introduction to Algorithms

Introduction to Algorithms

C22

Computability, Complexity, Algorithms: Algorithms

Computability, Complexity, Algorithms: Algorithms

C23

Computability, Complexity, and Algorithms: Computability

Computability, Complexity, and Algorithms: Computability

C24

Computer Networking:

Computer Networking:

C25

Programming Foundations with Python

Programming Foundations with Python

C26

How to Use Git and GitHub

How to Use Git and GitHub

C27

Computer Vision

Javascript Basics

C28

Intro to Decentralized Apps

Intro to Decentralized Apps

대학

(16~18)

C29

Programming Languages

CS 173 Brown University,

C30

Data Structures

CS 61B UC Berkeley

C31

Graduate Level Algorithm Design and Analysis

ECS 222A UC Davis

C32

Advanced Data Structures

6.851 MIT

C33

Advanced Algorithms

6.854J/18.415J MIT

C34

Great Ideas in Theoretical Computer Science

6.045 MIT

C35

Cognitive Science

C131 Berkeley

C36

Operating Systems and Systems Programming

CS 162, UC Berkeley

C37

Analysis of Algorithms

CSE 373 Stony Brook University

C38

Algorithm Design and Analysis

ECS 122A UC Davis

C39

Structure and Interpretation of Computer Programs

6.001 MIT

C40

Operating Systems (Undergrad)

CSCI-UA.0202: NGU

C41

Social Implications of Computing

195 berkeley

C42

Engineering Software as a Service

169 Berkeley

C43

Machine Structures

61C - B

C44

Data Structures

CS 61B: - Shewchuk - UC Berkeley

C45

History of Information

Info C103. UC Berkeley

C46

Introduction to Embedded Systems

EECS 149: (Fall 2014, UC Berkeley)

C47

Programming Abstractions

10-701 Carnegie-Mellon University

C48

Introduction to Computer Systems (ICS)

15-213, Carnegie-Mellon University

C49

Introduction to Computer Architecture

18-447 Carnegie-Mellon University

C50

Programming Methodology

CS 106A Stanford University

C51

Mathematics for Computer Science

MIT

C52

Efficient Algorithms and Intractable Problems

CS 170: Berkeley

C53

Programming Paradigms

CS 107 Stanford University

C54

Programming Practice Using Scala

CS 109 KAIST


유치원과 초등 과정을 합친 10년 동안 컴퓨터에 익숙해 지고, 수학의 토대가 어느 정도 갖춰지면, 중등 과정(만 12세)부터 수준높은 과목을 시작할 수 있습니다. 가령, Julia 언어는 수학 및 컴퓨터 과학의 배경 지식이 탄탄하지 않으면 제대로 익힐 수 없습니다. 또한, 중등과정 4년은 Scikit-learn, TensorFlow, Theano 등의 다양한 AI 프레임워크를 본격적으로 익히고, 크고 작은 뉴럴 네트워크를 직접 작성해 보고, 국내외 다양한 AI 콘테스트에 참여할 시기이기도 합니다.


중등과정을 마칠 무렵(만 16세)에 리눅스 커널을 다룰 수 있는 수준이 되는 인구의 비율이 대략 0.2~0.5% 정도될 것으로 추정하는데, 대략 200~300명 중 1명이며, 연령별 인구를 400,000명으로 가정하면, 각 연령 별로 1,000명 선입니다. 이 학습자 그룹은 대학에서 인공지능을 전공하도록 유도하는 것이 바람직합니다. 대학 진학 인구를 10%로 보면, 40,000명 중에서 1,000명은 인공지능을 전공하고, 나머지 39,000명은 여타 전공을 선택하는 상황을 상정하여, 표에 나열된 과목들은 전공과 무관하게 대학에 진학하는 모든 사람(연령별 인구의 10%)이 이수해야할 과목들로 정리하였습니다. 학부 과정부터 AI를 전공하는 경우는 표에서 나열된 것보다 많은 것을 배워야 할 텐데, ‘로보틱스 학습'편에서 재차 기술합니다.


마지막으로, AI에서 리눅스가 더욱 중요한 이유는 AI 시스템이 도시 운영체계(City Operating System)로 진화하기 있습니다. 기존 OS가 CPU, 메모리, 사운드 카드, 비디오 카드, 및 각종 버스와 포트를 제어하듯, AI 기반의 City OS는 도시 내부의 모든 기관, 단체, 장치, 시설, 차량, 주거 공간, 상업과 생산 활동 등을 제어하게 될 것이고, OS의 기본적인 동작 메커니즘을 이해하려면 리눅스가 최선입니다. 리눅스를 완전히 이해해야 AI를 활용한 City Operating System을 작성할 수 있습니다. City Operating System은 해당 편에서 보다 자세히 기술합니다.


출처 https://docs.google.com/document/d/1kHUsdsAZlyIZzle1MIvFW2wIPbf_COTcYauGF6wQhY0/pub
꼬릿말 보기
전체 추천리스트 보기
댓글쓰기
리스트 페이지로
데이터절약모드
◀뒤로가기
PC버전
맨위로▲
공지 운영 게시판요청 자료창고