제9회 소프트웨어공학 단기전문가강좌

한국정보과학회 소프트웨어공학 소사이어티

제9회 소프트웨어공학 단기전문가강좌

2021년 7월 13일(화) / 20일(화), 온라인

 


행사개요

주제: 프로그램 합성 [ 2021 단기전문가강좌 ]

일시: 2021.07.13(화) 오전 9:00 ~ 오후 6:00 / 20(화) 오전 9:00 ~ 오후 6:00

장소: 온라인 (참여 링크 추후 등록메일로 공지)

주최: 한국정보과학회

주관: 한국정보과학회 소프트웨어공학 소사이어티

등록: ~ 2021. 7. 9. 까지

(30명 선착순/별도의 현장 등록은 없습니다.)

 

 


모시는글

한국정보과학회 소프트웨어공학 소사이어티는 매년 여름마다 단기 전문가 강좌를 개최하고 있습니다. 2021년에는 아홉 번째로 최근 학계와 산업계에서 많은 관심을 갖고 있는 “프로그램 자동 합성 기술”에 대한 주제로 여러분을 만나게 되었습니다. 탐색 기반 소프트웨어공학에 대한 연구와 니즈가 증가하고 있는 시점에서 재사용 가능한 소프트웨어를 탐색하고 이를 자동으로 합성하여 소프트웨어 개발해 가는 접근 방법은 생산성 및 품질 향상이라는 측점에서 매우 중요한 공학적 기술이라 할 수 있습니다.

이번 단기 전문가 강좌의 강사로 모신 한양대학교의 이우석 교수님은 프로그램 자동 합성 기술 분야에서 오랫동안 연구와 강의를 해오신 전문가로서, 다양한 프로그램 합성 전략에 대하여 이해하고, 이를 기반으로 프로그램 합성기를 직접 개발해 보는 유익한 시간을 제공할 것입니다. 이번 단기 전문가 강좌는 코드 기반 소프트웨어공학을 공부하는 연구자들에게는 물론, 산업체의 소프트웨어 개발자에게도 매우 유익한 기회가 될 것으로 확신합니다. 비록, 코로나 바이러스의 국가 안전 시책에 따라 이번 강좌가 비대면으로 진행하지만, 흥미로운 주제와 풍성한 콘텐츠를 준비하였으니 여러분의 많은 참여와 관심을 부탁드립니다.
            2021년 6월 14일   한국정보과학회 소프트웨어공학 소사이어티 회장 홍 장 의

 


강사 및 과목 개요

강사: 이우석 교수 (한양대 에리카 캠퍼스)

예제로부터 프로그램 코드를 자동으로 학습하는 기술을 귀납적 프로그래밍(inductive programming) 또는 일반적으로 프로그램 합성(program synthesis)이라고 한다. 최근 프로그램 합성 기술이 눈부시게 발전하고 있으며, MS Excel의 FlashFill과 같이 여러 상용 제품에서도 엔드 유저를 위한 프로그램 기술로 각광받고 있다. 본 단기 강좌에서는 프로그램 합성 기술에 대한 기본적인 이해를 갖추고, 용도에 알맞게 사용하는 방법을 다룬다. 또한 현재까지 제안된 다양한 프로그램 합성 전략을 통해 프로그램 합성 분야의 동향을 소개한다. 프로그램 합성 기술 관련 도구인 PROSE SDK를 사용하여 직접 프로그램 합성기를 만들어 봄으로써 실제적인 도구 활용 방법도 익힌다.

 

  학습목표

(1) 프로그램 합성 기술에 대한 이해를 갖추고, 용도에 알맞게 사용하는 방법을 익힌다.
(2) 현재까지 제안된 다양한 프로그램 합성 전략을 살펴본다.
(3) PROSE SDK를 사용하여 직접 프로그램 합성기를 만들어본다

  사전지식

(1) 일차 술어논리 (first order logic) 및 형식 문법 중 문맥 둔감 문법 (context-free grammar) 에 대한 기본적인 이해
(2) 자료구조, 이산수학, 알고리즘에 대한 기본적 이해
(3) 실습을 위해 C#에 대한 약간의 숙련도가 필요.
일반적으로 위와 같은 사전 지식이 필요하나, 본 강좌에서는 수강생들이 위와 같은 지식을 충분히 갖추지 않았다고 가정하고 기초부터 설명할 계획임.

준비물

• 수강생들은 실습을 위해 맥 혹은 윈도우즈 기반의 노트북 지참 (Virualbox, MS Visual Studio, MS PROSE SDK설치 필요)
• 실습 1,2,3에서 사용되는 도구들은 강사가 Virtualbox 이미지로 제공하여 환경에 관계없이 실행할 수 있도록 할 예정임
• 실습 4에서 사용되는 Microsoft PROSE SDK는 Visual Studio 만 설치되어 있다면 맥과 윈도우즈 모두 사용 가능함

 

 


프로그램

7/13 (화) 강사: 이우석 교수 (한양대 에리카 캠퍼스)
09:00 – 10:00 프로그램 합성 소개 (Introduction to program synthesis, SMT, Syntax-guided synthesis)
10:00 – 11:00 합성전략 1: 하나씩 나열해보며 찾기 (Bottom-up / Top-down enumerative search)
11:00 – 12:00 탐색 공간 줄이기 (search space pruning)
12:00 – 13:00 중식
13:00 – 13:30 실습 1 – SyGuS 포맷 소개 및 EUSolver 사용해보기
13:30 – 14:30 통계모델 기반 탐색 우선 순위 매기기 (search space prioritization)
14:30 – 15:00 실습 2 – Euphony 로 통계모델 학습 및 적용해보기
15:00 – 16:00 합성전략 2: 양방향 탐색 전략 (Bidirectional synthesis strategy)
16:00 – 17:30 합성전략 3: 효율적으로 여러 프로그램 찾기 (representation-based search)
17:30 – 18:00 실습 3 – Duet 사용해보기
7/20 (화) 2일차:
09:00 – 09:30 합성전략 4: 랜덤하게 바꾸며 찾기 (stochastic search)
09:30 – 12:00 합성전략 5: 제약식을 풀어서 찾기 (constraint based search)
12:00 – 13:00 중식
13:00 – 14:00 연역합성 (deductive synthesis) 전략들 소개
14:00 – 15:00 프로그램 합성 응용: 비 개발자를 위한 프로그래밍, 프로그램 최적화
15:00 – 18:00 실습 4 – Mircrosoft PROSE SDK 를 사용한 자바 스크립트 프로그램 합성기 작성

 

 


참가등록

  • 등록인원/등록비:
등록인원 등록비
선착순 30명 학생 30만원 / 일반 40만원

(현장 등록은 별도로 없습니다/무통장입금, 카드결제 모두 가능: 청구서 발행 가능)

  • 등록 기간: ~ 2021. 7. 9.
  • 제공 자료: 강의자료 배포, 한국정보과학회 소프트웨어공학 소사이어티 인증 수료증 발급
  • 프로그램 문의: 소프트웨어공학 소사이어티 기획부회장 이찬근 교수 (cglee@cau.ac.kr),
    교육부회장 이정원 교수 (jungwony@ajou.ac.kr)
  • 사전등록 문의: 한국정보과학회 정가영 대리 (gyjeong@kiise.or.kr) Tel. 02-588-4001