알고리즘 문제, 수학적 사고로 접근하라
Edited by 송유준(2학년 · 인공지능 소프트웨어과)
전공 과목 공부 방법
전공 과목의 경우에는 수업 시간에 선생님이 해주시는 말씀에서 대부분의 시험 문제가 출제되기 때문에 수업에 집중하고, 시험 전에 선생님께서 정리해 주시는 내용을 정리하여 공부하면 좋은 성적을 기대할 수 있을 것 같습니다.
국민대 알고리즘 및 알고리즘 공부법
BOJ와 같은 Online Judge 사이트를 자주 이용했습니다. 하루에 많게는 10문제에서 적게는 1문제 정도 꾸준히 문제를 풀며 20분 이상 시간이 드는 문제는 다른 사람들이 정리한 풀이를 보고 넘어가는 방식으로 문제를 푸는 것보다 어떻게 접근하고 어떻게 풀이하는지에 대해 익히는 것을 중점으로 공부했습니다.
컴퓨팅 사고력
알고리즘 문제를 수학 문제와 비슷한 방식으로 바라보는 시각을 기르는 것이 알고리즘 문제 풀이에 도움이 될 수 있습니다. 알고리즘 문제를 읽고 어떤 알고리즘을 사용하고, 제한 시간 내에 해답을 도출해 내기 위한 적절한 방법을 떠올리는 과정이 수학 문제를 읽고 어떤 개념을 사용하여 풀어내는 문제인지를 생각해 내는 과정과 유사하다는 생각이 들었고 실제로 컴퓨팅 사고력 증진에 있어서 많은 도움을 주었던 것 같습니다.
게임콘텐츠과는 이렇게 합니다
Edited by 최승한(2학년 · 게임콘텐츠과)
게임콘텐츠과는 학과 내 선택과목이 ‘게임 프로그래밍’과 ‘스마트 문화 앱 콘텐츠 제작’ 수업이 있습니다. 게임프로그래밍 선택을 위주로 설명하고자 합니다.
게임프로그래밍 수업에서는 처음에는 게임 엔진인 ‘Unity’에 대한 개념을 배우고 소규모 프로젝트 과제를 통해 Unity 엔진에서 사용 할 수 있는 기능들을 심화 학습을 하며 내가 만들고 싶은 게임을 구성하며 기획하다가 1학기 중간부터 게임 제작을 위한 팀을 구성하여 게임 개발 기획을 제출하고 개발을 시작합니다. 게임프로그래밍 선택과목은 주 3시간으로 배정되는 데 1교시는 Unity 공부, 2교시는 프로젝트 제작, 3교시는 개인 개발 활동 일지를 기록합니다. 개인 개발 활동 일지는 세부 능력과 특기사항을 작성하는 데 활용합니다. 이렇게 하다가 나중에 11월 말에 최종적으로 게임 기능 설명서 제출과 게임 시연을 하고 완성된 게임은 12월에 예정된 ‘단원진로학술제’에 만든 게임을 전시합니다.
게임프로그래밍 수업의 전체적인 커리큘럼은 1학기에는 게임의 역사, 게임의 원리(게임 루프, 델타 시간 등), Unity 게임 엔진의 기초를 배우면서 기본기를 익혀나갔고, 2학기에 들어가면서 게임 제작 프로젝트를 시작했습니다.
게임 제작 프로젝트를 하면서 여러 어려움이 있었는데요. 처음에 리눅스를 좋아해서 리눅스 터미널 콘셉트를 이용한 게임을 만들자는 기획을 냈고, 3명의 팀원을 모아 팀을 구성하고 결국 해당 기획이 선택됐습니다. 하지만 초반 기획은 터미널의 매력을 전혀 보여줄 수 없을 만한 기획이었고 팀원들과 다투면서 터미널을 버려야 하나 생각했지만, 이미 터미널 제작이 많은 시간을 들인 터라 버릴 순 없었습니다. 그러던 중 어느날 체육 교과 수업을 하던 중 같은 과의 친구가 필자에게 “서버 키우기 같은 게임 만드는 게 어때?”라고 했고 이 말을 듣자마자 “이거다!”라는 생각이 들어 수업이 끝난 뒤 기획을 구체화했고 구체화한 기획을 팀원들에게 공유하고, 같이 회의한 결과 새로운 기획으로 바꾸기로 했습니다. 물론 새로운 기획으로 바꾸고 난 뒤에도 UI 구성 및 여러 다른 문제로 조금씩의 다툼은 있었지만 해결해 나갔습니다.
게임 제작 프로젝트를 진행하기 위해서 프로그래밍 관련 전공 공부는 당연하게도 필수적입니다. 저는 프로그래밍 학원도 다녀보고 프로그래밍 전공책도 읽어보고 관련 영상도 시청하는 등의 방법을 시도해 봤습니다. 이 중에서 가장 추천하는 방법은 ‘관심이 있는 분야에서 사용하는 프로그램 등의 코드를 직접 뜯어보면서 공부하는 방법’인데요. 만약 내가 지금 뭘 배울지도 모르겠고 배우고 싶은 것도 없다고 하면 내가 좋아하는 게임 혹은 그 게임의 플러그인 및 MOD 코드 등을 뜯어보며 거기서 사용하는 언어도 배워보고 제작법도 배워보면서 직접 관심 있는 거의 프로그램 등을 제작해 보는 방식으로 배우는 것도 좋다고 생각합니다.
저는 ‘마인크래프트’라는 게임의 관심이 있어 마인크래프트 플러그인에 대해 알게 된 뒤 프로그래밍에 관심이 커졌고, 이에 따라 소프트웨어 쪽으로 공부를 더욱 깊이 해보고 싶다는 생각이 들어 영상이나 책도 찾아보며 우리 학교까지 오게 되었습니다. 위 방법은 아직 배우고 싶은 게 확실하지 않은 후배분들에게 추천하는 방법입니다.
또한 “난 배우고 싶은 게 확실히 있다”라는 후배분들 중 C언어와 C++에 대해 배우고 싶다는 후배분들에게 추천하는 사이트가 하나 있는데요. 바로 모두의 코드(https://modoocode.com)라는 웹 사이트를 추천합니다. 필자도 친구들에게 소개받아 보게 되었는데 처음부터 시작해서 심화 내용까지 매우 잘 담고 있고 PDF로도 내려받을 수 있는 등 좋은 점이 많아 추천하게 되었습니다. 그 외에도 Kotlin은 유튜브의 ‘디모의 Kotlin 강좌’, 알고리즘은 『뇌를 자극하는 알고리즘』 책 등이 저에게는 도움이 많이 되었습니다.
부족한 글이지만 후배 여러분이 전공 역량을 키울 수 있다는 희망을 가지셨으면 좋겠습니다.
조성진 기자
답글 남기기