[pl in c++] 1. 수업 내용 및 진행 방법
TRANSCRIPT
![Page 1: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/1.jpg)
PL in C++
2014.7.7박민근
1 강 : 수업 내용 및 진행 방법 , 평가 소개
![Page 2: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/2.jpg)
수업전 질문http://agebreak.clbnow.com
![Page 3: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/3.jpg)
알콜코더 박민근 (@agebreak)
NHN NEXT 게임 전공 교수네오위즈 게임즈 - 야구의 신 개발NTL-inc - 드래곤볼 온라인 개발엔씨소프트 – PlayNC 빌링 서버 개발
‘ 신입 게임 개발자의 서울 상경기’(http://agebreak.blog.me)
‘ 초중급 게임 개발자 스터디 ( 데브루키 )’(cafe.naver.com/devrookie)
게임 개발자 랩소디 ( 팟캐스트 )(http://www.podbbang.com/ch/3921)
게임 클라이언트 프로그래머30 대… 그리고 오타쿠 프로그래머 ...
언젠가는 우즈벡에 .. 일류젼 우즈벡 지사를 설립할 예정
![Page 4: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/4.jpg)
Visual Studio 2013설치
![Page 5: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/5.jpg)
과학자는 배우기 위해
개발하지만
엔지니어는 개발하기 위해
배운다- 프레드 브룩스
![Page 6: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/6.jpg)
수업의 목표
![Page 7: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/7.jpg)
• 객체 지향 프로그래밍을 이해한다 .
• C++ 로 객체 지향 프로그래밍을
작성할 수 있다 .
• C++ 로 간단한 콘솔창 게임을
제작할 수 있다 .
![Page 8: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/8.jpg)
• C++ 로 필요한 자료 구조와
알고리즘을 작성할 수 있다 .
• 게임 개발에 필요한 알고리즘을 C+
+ 로 구현할 수 있다 .
• C++ 의 기본을 이해한다 .
![Page 9: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/9.jpg)
핵심 목표
![Page 10: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/10.jpg)
물론…
전부 다 중요하지
만 ...
![Page 11: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/11.jpg)
• 객체 지향적으로 클래스를 제작하고 , 상속 , 다형성등…객체 지향 프로그래밍 기법을 활용한다 .
• 포인터를 이용하여 메모리의 할당과 해제 , 관리를 이해 한다 .
• C++ 디버깅 !
![Page 12: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/12.jpg)
진행 방법
![Page 13: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/13.jpg)
• 학습• PL in C++ 개념• PL in C++ feature• PL in C++ 스킬
월요일 (2 시간 )
• 프로젝트 제작• BattleShip Game• 배운 개념과 지식을 실제로 활용• 실제 게임을 구현하면서 학습• 학습한 내용들을 이해하여 적용
목요일 (3 시간 )
![Page 14: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/14.jpg)
Flip Learng-ing
Project Based
Pair Pro-gramming
![Page 15: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/15.jpg)
Flip Learn-ing
![Page 16: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/16.jpg)
강의 안해 !!!
![Page 17: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/17.jpg)
1. Flipped Learning - 무엇인가 ?
출처 : http://www.washington.edu/teaching/teaching-resources/flipping-the-classroom/flippedclassroomuw-colors-1/
![Page 18: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/18.jpg)
2. Flipped Learning - 어떤 원리인가 ?
![Page 19: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/19.jpg)
Project Based
![Page 20: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/20.jpg)
목표 C++ 로 게임 만들
자 !!
![Page 21: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/21.jpg)
![Page 22: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/22.jpg)
![Page 23: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/23.jpg)
![Page 24: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/24.jpg)
Project Based Learning
• C++ 을 배워서 게임을 만드는 것이
아니라 , 게임을 만들기 위해서 C++ 을
배운다 .
• BattleShip Game 프로젝트를
제작하면서 , 필요한 C++ 을 구문들을
이해해 간다 .
![Page 25: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/25.jpg)
Project Based Learning
• 수업 내에서 진행하는 BattleShip
Game 프로젝트가 곧 실습 과제가 된다 .
• 학기가 끝났을 때 , 전원 BattleShip
Game 프로젝트를 이해하고 , 개발할
수 있다 .
![Page 26: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/26.jpg)
Project Based Learning
• How, What 이 아닌 , Why 를 공부한다 .
• 이것을 왜 공부해야 하는지 , 이것을
어디에 사용해야 하는지에 중점을 둔다 .
![Page 27: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/27.jpg)
Pair Pro-gramming
![Page 28: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/28.jpg)
![Page 29: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/29.jpg)
Pair Programming
• 실습은 짝 프로그래밍으로 진행된다 .
• 2 인 1 조가 되어 하나의 PC 로 같이
프로그래밍 한다 .
• 한사람은 드라이버 , 한사람은 내비게이터가
된다 .
![Page 30: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/30.jpg)
Pair Programming 의 목적 및 효과• 코드의 품질을 향상 시킨다 .
• 개발에 대하 집중력을 높인다 .
• 팀 내 커뮤니케이션을 증진시킨다 .
• 지속적인 코드 리뷰가 될 수 있다 .
• 협업을 통해 서로가 서로를 발전 시킬 수 있다 .
• 개발이 좀 더 즐거워 질 수 있다 .
![Page 31: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/31.jpg)
PP 기본 진행 방식• 1 대의 PC 에서 두명의 팀원이 같이 작업을 진행한다 .
• 키보드와 마우스를 잡고 있는 사람이 ‘드라이버’ , 옆에
앉아서 함께 작업하는 사람을 ‘네비게이터’라고 한다 .
• 일반적으로 네비게이터가 주도적으로 작업을 진행하게 된
다 .
• 네비게이터는 자신이 할려는 일을 이야기 하고 , 드라이버는
질문과 제안을 한다 .
![Page 32: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/32.jpg)
PP 기본 마음 가짐• 서로를 신뢰하며 공경한다 .
• 대화를 논쟁으로 생각하지 않는다 .
• Winner 와 Looser 가 생겨서는 안된다 .
• 코드에 대한 지나친 소유욕을 가지지 않는다 .
• 우리는 ONE TEAM 이다 .
![Page 33: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/33.jpg)
PP 시에 절대 하지 말아야 할것 !
짜증 !
![Page 34: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/34.jpg)
PP 유의 사항• 혼자 너무 오래 코딩 하지 말 것 . 돌아가면서 한다 .
• 즐겨라 .
• 믿음을 가질 것 .
• 자존심을 세우지 말자
• 옆에 있는 사람을 놔둔채 혼자 달리지 말자
• 자신보다 경혐이 많은 사람 / 적은 사람과 짝이 되어 본다
• 코드는 짝프로그래밍 하는 두 사람의 어느 누구 것도 아니다 .
![Page 35: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/35.jpg)
C++ PP 진행 방법• 짝은 매번 랜덤으로 결정 한다 .
• 짝은 매일 교체 한다 . (4 시간 )
• 1 시간마다 역할을 교대 한다 .
• 실력이 뛰어난 사람 , 실력이 부족한 사람과 같이
작업하는 경험을 가진다 .
![Page 36: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/36.jpg)
수업 평가
![Page 37: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/37.jpg)
수업 평가
•기말 프로젝트 평가 : 90%
•기타 ( 과제 , 퀴즈 ,…) : 10%10% 는 가산점 . 과제 , 퀴즈등을 우수하게 수행한 경우의 + 점수
![Page 38: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/38.jpg)
개인 프로젝트
• 수업중의 BattleShip Game 을 개인
프로젝트로 완성하여 제출
• BattleShip 알고리즘을 적절하게 개선하여
C++ 로 구현하여 완성
• 수업중의 짝 프로그래밍 코드와 별개
프로젝트
![Page 39: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/39.jpg)
개인 프로젝트
• Optional
• BattleShip 이 아닌 자신이 만들고 싶은 콘솔
게임 프로젝트를 제작 가능
• 게임의 구현도에 따른 가산점
![Page 40: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/40.jpg)
휴식 시간 !
![Page 41: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/41.jpg)
수업후 질문http://agebreak.clbnow.com
![Page 42: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/42.jpg)
짝프로그래밍짝만들기
![Page 43: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/43.jpg)
짝 만들기- 랜덤 카드
![Page 44: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/44.jpg)
BattleShip Game
![Page 45: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/45.jpg)
![Page 46: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/46.jpg)
BattleShip Game숫자야구의 2차원 버전
![Page 47: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/47.jpg)
![Page 48: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/48.jpg)
BattleShip Game Rule• 자신의 배를 임의의 위치에 배치
• 턴 순서를 결정
• 공격 턴에 상대방의 좌표를 지정
• 수비측은 결과를 통보
• 빗나감 , 히트 (종류는 알려주지 않는다 )
• 격추 – 배의 영역이 모두 히트 하였을 때 , 종류도
알려준다 .
• 턴을 교대하면서 상대방의 모든 배를 격추 시키면 승리 !
![Page 49: [Pl in c++] 1. 수업 내용 및 진행 방법](https://reader033.vdocuments.pub/reader033/viewer/2022061618/55851465d8b42a6f7f8b5129/html5/thumbnails/49.jpg)
Are you Ready?