Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today
Total

스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (13) - 카렐 그 이후

스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (13) - 카렐 그 이후 본문

카테고리 없음

스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (13) - 카렐 그 이후

KRONNA 2016. 7. 15. 10:01


정말 잘 해주셨습니다. 드디어 한달간의 대장정을 마쳤네요. 여러분은 카렐 과정을 졸업하셨습니다. 여러분 중에는 프로그래밍과 코딩이 무엇인지도 모르는 상태로 시작한 분들이 많은데, 벌써 주어진 복잡한 과제를 풀기 위해 알고리즘을 구상하고 코딩하는 것까지 자유자재로 해내실 수 있게 되었다는게 놀랍습니다. 오늘은 여러분이 컴퓨터 과학을 계속 추구하신다면 어떤 옵션들이 있는지, 카렐 그 이후의 단계에 대해 얘기하고자 합니다.



카렐은 끝이 났어도 CS106A 과정은 끝이 아닙니다. 지금까지 카렐과 과제를 해결하시면서 여러분은 자기도 모르게 자바 프로그래밍 언어의 구문을 익히고 계셨습니다. 제가 다음에 돌아왔을때는 카렐의 세계에서 카렐의 문제를 해결해주는걸 벗어나 우리의 세계에서 사람들에게 유용한 프로그램들을 만들어 볼겁니다. 유저가 숫자를 넣으면 수학적 계산을 대신해주는 계산기나 유저가 플레이할 수 있는 간단한 게임 등을 만들어 볼거구요. 사람들이 실제로 사용할 수 있는 프로그램을 만드는건 더 어렵지 않을까 생각하실 수 있으나 우리는 그때도 이클립스를 켜고 똑같은 창에 똑같은 방식으로 메소드를 적게될겁니다. 다만 더 다양한 메소드들을 사용해서 말이죠. 




물론 그때까지 기다리지 않으셔도 됩니다. 자바를 개발한 Sun사를 인수한 Oracle은 OCJA/OCJP라 불리는 시험을 통해 자바를 충분히 익힌 개발자들에게 자격증을 수여해주고 있으니, 관련 내용을 검색해 Oracle의 자격증 시험을 준비하셔도 됩니다. CS106A 과정 다음에 오는 프로그래밍 과정인 CS106B에서는 C++ 프로그래밍 언어를 쓰고 있으니 C++ 언어를 시도해보셔도 좋습니다. C++는 자바에서 편리하게 자동으로 수행해주는 많은 기능들을 수동적으로 직접 해야하기 때문에 실제 컴퓨터의 프로그램이 어떻게 작동하는지를 더 자세히 배우는데 유용한 언어죠. 데이터를 분석하거나 여러분의 분야에 컴퓨터 프로그래밍을 접목시키고 싶으시다면 대학 연구진들이 애용하는 Python (파이썬)과 데이터 분석에 특화된 R에 대해 검색해보셔도 좋습니다. 물론 이 중 어느 언어를 배우셔도 그 언어를 통해 프로그래밍의 개념을 더 깊이 익히고 나면 다른 언어를 배우는게 매우 쉬워지니 그때 그때 필요한 언어를 배우시면 됩니다.




실제 사용되는 프로그램을 만드는것도 재밌지만 컴퓨터 과학이라는 학문을 이론적인 레벨로 파고들고 싶으신 분도 계신가요? 좀 더 깊은 레벨에서 "아무리 뛰어난 컴퓨터(인공지능)도 절대 풀지 못 하는 문제도 있는가?"와 같은 철학적인 질문을 과학적으로 답해보고 싶으신 분들은 컴퓨터과학 이론에 대해 검색해보세요. 숫자가 아니라 논리를 계산하는 "이산수학"을 사용하는 "계산 가능성 이론"을 배우시면 무한한 메모리와 무한한 속도의 컴퓨터도 풀지 못 하는 문제들을 보실 수 있을 겁니다. 


여러분과 함께 한달을 보낼 수 있어서 즐거웠습니다. 많은 분들이 이메일과 메신저를 통해서 질문과 응원, 다양한 의견들을 나눠주셨습니다. 여러분과 대화하며 저 역시 많은것을 배웠습니다. 스마트폰부터 TV까지 뛰어난 품질의 전자기기들로 유명한 대한민국이 소프트웨어 분야에서 힘을 쓰지 못 해서 많이 아쉬웠는데, 더 많은 한국인들이 프로그래밍을 쉽고 재밌는 분야로 인식하고 시작했으면 좋겠습니다. 다음에 자바 과정으로 다시 뵐때까지 모두들 건강하시고 언제라도 이메일로 연락주세요! ^^


Stanford CS106A 수업에 대한 모든 권리는 스탠포드 대학교가 가지고 있습니다. "스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음"은 스탠포드 대학교의 CS106A 수업을 남녀노소 누구나 쉽게 배울 수 있도록 각색하고 한국어로 번역한 내용이며, 본글에 대한 모든 권리도 스탠포드 대학교가 가지고 있습니다. CS106A 수업에 사용되는 교재인 Karel the Robot Learns Java와 The Art & Science of Java를 작성해주신 Eric Roberts 교수님과 CS106A 수업을 가르치고 계시며 해외로 수업 내용 반출을 허락해주신 Mehran Sahami 교수님 그리고 Marty Stepp 교수님께 감사드립니다.


스탠포드 대학교에서 컴퓨터 과학을 전공중인 박준원이라고 합니다. 질문은 junwonpk@stanford.edu로 보내주시면 24시간 내로 답변 드리겠습니다. 설명을 따라했는데도 똑같이 작동하지 않거나 설명에 이해하기 어려운 부분이 있으면 주저하지 말고 질문 보내주세요! ^^

Comments