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