SlideShare a Scribd company logo
1 of 15
Download to read offline
강의 12/16:
연구와 오픈소스
신정규
2016년 11월 30일
학계와 오픈소스
오픈소스는 학계에서 시작되었습니다.
초기 오픈소스 되짚어보기
▪ 초기 오픈소스 (1950~1960년대)
▪ 모든 소프트웨어가 오픈소스였음
▪ 연구소 및 학계 주도의 컴퓨터 개발
▪ 소스 교환에 대한 제약이 없었음
▪ 예) UNIVAC -> A-2 -> UNIVAC
▪ 오픈소스 그룹
▪ IBM (1967) / SHARE group
▪ DEC / DECUS group
▪ 개발자 = 사용자 = 연구자 = 설계자
1970년대 부터의 연구용 오픈소스
▪ 아직까지도 유지되는 연구 분야의 오픈소스
▪ TeX (Donald Knuth)
▪ SPICE (UC Berkeley)
▪ BSD (Unix / UC Berkeley)
유료 연구 소프트웨어의 시대
▪ Mathematica (1988)
▪ Wolfram
▪ 첫 symbolic calculation software
▪ 예: 1차함수
▪ NeXT용 소프트웨어로 시작
▪ C, Java
▪ MATLAB (1984)
▪ Mathworks
▪ 계산 컴퓨팅용 언어
▪ 포트란 wrapper로 시작
▪ C -> Java
▪ IMSL (International Mathematics
and Statistics Library)
돌아온 오픈소스 연구 소프트웨어
▪ Linux의 발전
▪ 저렴한 UNIX:
▪ 다운사이징 / 클러스터링의 발전
▪ 고전 소프트웨어들의 재개발
▪ GSL (GNU Scientific Library)
▪ ROOT: Data analysis framework (CERN / 2003)
▪ Fortran 라이브러리들의 대체
연구와 오픈소스 언어 / 프레임웍
연구용 오픈소스 언어 / 컴파일러
▪ FORTRAN
▪ 오래된 역사
▪ 수치 해석 라이브러리
▪ 오픈소스 구현체: gForrtran
▪ C
▪ 활발하게 사용되는 언어중 가장
오래됨
▪ 많은 언어들의 기반 언어
▪ 오픈소스 구현체: gcc
▪ R
▪ 통계 처리에 특화된 언어
▪ 다양한 패키지를 쉽게 설치 가능
▪ 오픈소스 언어
연구용 언어 / 오픈소스 구현체
▪ Mathematica
▪ Wolfram Research
▪ 수학에 특화된 언어
▪ Symbolic calculation
▪ MATLAB
▪ 행렬 연산에 특화된 언어로 시작
▪ 과학 연구용 언어로 각광
▪ 다양한 연구 분야에 사용
▪ Sage
▪ Mathematica의 오픈소스 구현체
▪ 문법 호환
▪ 추가 문법들이 있음
▪ Octave
▪ MATLAB의 오픈소스 구현체
▪ C++로 구현
▪ 모듈 지원
연구용 오픈소스 패키지 (python)
▪ Python
▪ Numpy
▪ FORTRAN의 수치해석
라이브러리의 파이썬 인터페이스
▪ 행렬 연산에 특화됨
▪ scipy
▪ numpy 및 기타 패키지를 이용해
만든 과학 계산용 모듈
▪ matplotlib
▪ 행렬 플로팅 라이브러리
▪ MATLAB 문법과의 호환성을
고려하여 개발함
▪ scikit-learn
▪ 기계학습용 라이브러리
▪ Scikit-image
▪ 이미지 처리용 라이브러리
연구용 오픈소스 패키지 (python interface)
▪ PyGSL
▪ GSL 라이브러리 래퍼
▪ Pandas
▪ 데이터 분석및 핸들링 라이브러리
▪ PIL
▪ 파이썬 이미지 라이브러리
▪ Spark
▪ 대규모 데이터 분석용 프레임웍
▪ TensorFlow
▪ 딥러닝 연산 프레임웍
▪ Keras
▪ TensorFlow 또는 Theano
인터페이스를 통합하는 프레임웍
오늘의 Learn by run:
실습!
Learn by run: 연구용 코드 실습
▪ 준비
▪ codeonweb의 practice 에서 python3 언어를 고릅시다.
▪ 또는 컴퓨터에 jupyter를 설치하고 jupyter notebook을 실행합시다.
▪ Python+numpy로 행렬 연산해보기
▪ 랜덤한 숫자가 든 4x4 행렬 두 개 만들기 (A, B)
▪ 기본적인 행렬 연산: 합, 차, 곱
▪ transpose / inverse 계산하기
▪ Python+numpy 내장 함수 사용하기
▪ 1~100사이의 랜덤 숫자 1000개 만들기
▪ 0~10 사이를 1000개로 나누어 1x1000 크기의 벡터 만들기
▪ python+matplotlib로 그래프 그려보기
▪ plot
▪ 앞에서 만든 0~10사이의 수 1000개로 sin / cos 그래프를 한 그림 위에 그리기
▪ histogram
▪ 앞에서 만든 1~100사이의 랜덤 숫자 1000개로 분포 그려보기 (10단계)
▪ scatter plot
▪ 0~100사이의 정규 분포 숫자 1000개를 담은 두 벡터 x, y를 만들기
▪ x,y 를 좌표로 하는 2차원 scatter plot 그리기
Next is...
13/16: Special Lecture (Deep learning)
@inureyes
Questions? inureyes@gmail.com
OR
https://www.codeonweb.com/circle/@oss-basics-hu

More Related Content

Similar to OSS SW Basics Lecture 12: Open source in research fields

[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션Ian Choi
 
[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pubJaewook. Kang
 
Open stack 세미나자료_장현정
Open stack 세미나자료_장현정Open stack 세미나자료_장현정
Open stack 세미나자료_장현정Nalee Jang
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기OpenStack Korea Community
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여Ji-Woong Choi
 
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SWmosaicnet
 
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftOpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftIan Choi
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님NAVER D2
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력Ian Choi
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드Ian Choi
 
『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기복연 이
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systemsH K Yoon
 

Similar to OSS SW Basics Lecture 12: Open source in research fields (14)

JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
 
[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub
 
Open stack 세미나자료_장현정
Open stack 세미나자료_장현정Open stack 세미나자료_장현정
Open stack 세미나자료_장현정
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여
 
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
 
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftOpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
 
쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택
 
『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systems
 

More from Jeongkyu Shin

Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Jeongkyu Shin
 
Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Jeongkyu Shin
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
TensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsTensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsJeongkyu Shin
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIJeongkyu Shin
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기Jeongkyu Shin
 
오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들Jeongkyu Shin
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개Jeongkyu Shin
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권Jeongkyu Shin
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubJeongkyu Shin
 
Google Polymer in Action
Google Polymer in ActionGoogle Polymer in Action
Google Polymer in ActionJeongkyu Shin
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlowJeongkyu Shin
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Jeongkyu Shin
 
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)Jeongkyu Shin
 
Deep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsDeep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsJeongkyu Shin
 
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)Jeongkyu Shin
 
OSS SW Basics Lecture 14: Open source hardware
OSS SW Basics Lecture 14: Open source hardwareOSS SW Basics Lecture 14: Open source hardware
OSS SW Basics Lecture 14: Open source hardwareJeongkyu Shin
 
OSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectOSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectJeongkyu Shin
 
OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)Jeongkyu Shin
 

More from Jeongkyu Shin (20)

Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0
 
Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Machine Learning in Google I/O 19
Machine Learning in Google I/O 19
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
TensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsTensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning Models
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AI
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
 
오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow Hub
 
Google Polymer in Action
Google Polymer in ActionGoogle Polymer in Action
Google Polymer in Action
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlow
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
 
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
 
Deep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsDeep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractions
 
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
 
OSS SW Basics Lecture 14: Open source hardware
OSS SW Basics Lecture 14: Open source hardwareOSS SW Basics Lecture 14: Open source hardware
OSS SW Basics Lecture 14: Open source hardware
 
OSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectOSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term project
 
OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)
 

OSS SW Basics Lecture 12: Open source in research fields

  • 3. 초기 오픈소스 되짚어보기 ▪ 초기 오픈소스 (1950~1960년대) ▪ 모든 소프트웨어가 오픈소스였음 ▪ 연구소 및 학계 주도의 컴퓨터 개발 ▪ 소스 교환에 대한 제약이 없었음 ▪ 예) UNIVAC -> A-2 -> UNIVAC ▪ 오픈소스 그룹 ▪ IBM (1967) / SHARE group ▪ DEC / DECUS group ▪ 개발자 = 사용자 = 연구자 = 설계자
  • 4. 1970년대 부터의 연구용 오픈소스 ▪ 아직까지도 유지되는 연구 분야의 오픈소스 ▪ TeX (Donald Knuth) ▪ SPICE (UC Berkeley) ▪ BSD (Unix / UC Berkeley)
  • 5. 유료 연구 소프트웨어의 시대 ▪ Mathematica (1988) ▪ Wolfram ▪ 첫 symbolic calculation software ▪ 예: 1차함수 ▪ NeXT용 소프트웨어로 시작 ▪ C, Java ▪ MATLAB (1984) ▪ Mathworks ▪ 계산 컴퓨팅용 언어 ▪ 포트란 wrapper로 시작 ▪ C -> Java ▪ IMSL (International Mathematics and Statistics Library)
  • 6. 돌아온 오픈소스 연구 소프트웨어 ▪ Linux의 발전 ▪ 저렴한 UNIX: ▪ 다운사이징 / 클러스터링의 발전 ▪ 고전 소프트웨어들의 재개발 ▪ GSL (GNU Scientific Library) ▪ ROOT: Data analysis framework (CERN / 2003) ▪ Fortran 라이브러리들의 대체
  • 8. 연구용 오픈소스 언어 / 컴파일러 ▪ FORTRAN ▪ 오래된 역사 ▪ 수치 해석 라이브러리 ▪ 오픈소스 구현체: gForrtran ▪ C ▪ 활발하게 사용되는 언어중 가장 오래됨 ▪ 많은 언어들의 기반 언어 ▪ 오픈소스 구현체: gcc ▪ R ▪ 통계 처리에 특화된 언어 ▪ 다양한 패키지를 쉽게 설치 가능 ▪ 오픈소스 언어
  • 9. 연구용 언어 / 오픈소스 구현체 ▪ Mathematica ▪ Wolfram Research ▪ 수학에 특화된 언어 ▪ Symbolic calculation ▪ MATLAB ▪ 행렬 연산에 특화된 언어로 시작 ▪ 과학 연구용 언어로 각광 ▪ 다양한 연구 분야에 사용 ▪ Sage ▪ Mathematica의 오픈소스 구현체 ▪ 문법 호환 ▪ 추가 문법들이 있음 ▪ Octave ▪ MATLAB의 오픈소스 구현체 ▪ C++로 구현 ▪ 모듈 지원
  • 10. 연구용 오픈소스 패키지 (python) ▪ Python ▪ Numpy ▪ FORTRAN의 수치해석 라이브러리의 파이썬 인터페이스 ▪ 행렬 연산에 특화됨 ▪ scipy ▪ numpy 및 기타 패키지를 이용해 만든 과학 계산용 모듈 ▪ matplotlib ▪ 행렬 플로팅 라이브러리 ▪ MATLAB 문법과의 호환성을 고려하여 개발함 ▪ scikit-learn ▪ 기계학습용 라이브러리 ▪ Scikit-image ▪ 이미지 처리용 라이브러리
  • 11. 연구용 오픈소스 패키지 (python interface) ▪ PyGSL ▪ GSL 라이브러리 래퍼 ▪ Pandas ▪ 데이터 분석및 핸들링 라이브러리 ▪ PIL ▪ 파이썬 이미지 라이브러리 ▪ Spark ▪ 대규모 데이터 분석용 프레임웍 ▪ TensorFlow ▪ 딥러닝 연산 프레임웍 ▪ Keras ▪ TensorFlow 또는 Theano 인터페이스를 통합하는 프레임웍
  • 12. 오늘의 Learn by run: 실습!
  • 13. Learn by run: 연구용 코드 실습 ▪ 준비 ▪ codeonweb의 practice 에서 python3 언어를 고릅시다. ▪ 또는 컴퓨터에 jupyter를 설치하고 jupyter notebook을 실행합시다. ▪ Python+numpy로 행렬 연산해보기 ▪ 랜덤한 숫자가 든 4x4 행렬 두 개 만들기 (A, B) ▪ 기본적인 행렬 연산: 합, 차, 곱 ▪ transpose / inverse 계산하기 ▪ Python+numpy 내장 함수 사용하기 ▪ 1~100사이의 랜덤 숫자 1000개 만들기 ▪ 0~10 사이를 1000개로 나누어 1x1000 크기의 벡터 만들기
  • 14. ▪ python+matplotlib로 그래프 그려보기 ▪ plot ▪ 앞에서 만든 0~10사이의 수 1000개로 sin / cos 그래프를 한 그림 위에 그리기 ▪ histogram ▪ 앞에서 만든 1~100사이의 랜덤 숫자 1000개로 분포 그려보기 (10단계) ▪ scatter plot ▪ 0~100사이의 정규 분포 숫자 1000개를 담은 두 벡터 x, y를 만들기 ▪ x,y 를 좌표로 하는 2차원 scatter plot 그리기
  • 15. Next is... 13/16: Special Lecture (Deep learning) @inureyes Questions? inureyes@gmail.com OR https://www.codeonweb.com/circle/@oss-basics-hu