[기록] 컴퓨터과학과 2022년 1학기 후기
시작하며
이번 학기는 최대한 꾸준한 수강에 주안점을 두고 시작했다. 방송통신대학 커리큘럼이 이론상으로는 하루에 한 과목씩 해서 1주일에 한 강의씩 진도를 나가면 소화하기 큰 무리가 없는 수준이다. 하지만 저번 학기는 그걸 못해서 강의가 밀리고, 벼락치기를 하게 되어서 기말고사 때 큰 고충을 겪었다. 이번 학기도 초반에 조금 진도가 밀리긴 했지만, 그래도 기말고사 전 약 2주 정도의 여유를 두고 수강을 마쳤고 덕분에 저번 학기보다는 여유롭게 준비를 했던 것 같다. 그리고 전공을 다섯 과목이나 채우긴 했지만, 비교적 익숙한 내용의 강의를 두 과목 정도 섞음으로써 쉬어가는 과목도 가져갔다. 그럼 이번 학기에 수강한 다음 여섯 과목에 대한 수강후기를 남겨보고자 한다.
수강 과목
- 인터넷과 정보사회
- 이산수학
- JAVA 프로그래밍
- 데이터베이스시스템
- 디지털 논리회로
- 운영체제
1. 인터넷과 정보사회(정재화 교수님)
방송통신대 컴퓨터과학과 추천 과목을 논하면 꼭 나오는 것이 정재화 교수님의 수업들이다. 인터넷과 정보사회는 그중에서도 교양 과목에, 기말고사도 시험이 아닌 리포트로 가장 부담이 덜 한 과목으로 생각하여 채워 넣었다. 수업 내용은 컴퓨터 사이언스 전반에 걸친 개괄적인 지식을 다루는 느낌이며, 수업 시작 전 이해를 돕기 위해 적절한 시청각 자료들과 시작하기 때문에 구성적인 측면에서도 굉장히 좋은 수업이었다. 조금 넋 놓고 들어도 머리에 잘 들어오는 수업이기 때문에 조금 피곤하거나 잠이 덜 깬 출근길에 수강하는 과목으로 좋았던 것 같다. 의외로 기말고사 과제의 양이 많았긴 했지만 점수도 후하게 잘 받은 편이며, 내가 알기로는 이번 학기를 마지막으로 열린 과목이기 때문에 다음 연도부터 더 이상 수강할 수 없는 과목이 되었다.
2. 이산수학 (손진곤 교수님)
역시 방송통신대학 추천 과목을 논하면 꼭 나오는 손진곤 교수님의 수업이다. 이산수학을 듣고 느낀 첫 소감을 한 단어로 요약하면 열정이라고 할 수 있겠다. 다른 과목에서는 볼 수 없는 압도적인 수업 시간을 자랑하며, 이 시간들만 봐도 교수님의 엄청난 열정이 느껴진다. 그리고 수업 내용 자체도 잘 정제되어 있고, 가르쳐 주고 싶은 내용은 산더미 같지만 차마 시간의 한계로 인해 참는 듯(?) 한 교수님의 열정이 화면 밖으로 잘 전해지는 수업이었다. 그리고 이산수학이 얼마나 컴퓨터과학과 밀접한 수학 분야인지, 왜 선배들이 그렇게 이산수학을 강조하는지 내용적으로도 충실한 시간이었다. 과제와 시험에 대해 말하자면, 과제와 시험 모두 수업을 충실히 듣는다면 어렵지 않은 난이도로 나온다. 다만 수학 자체와 사이가 멀어졌다면, 긴 수업시간과 수학적 표현들이 조금 부담이 될 수는 있겠다고 생각했다. 하지만 개발자로서 기본기를 다지기 위해 방송통신대학 컴퓨터과학과를 다니고 있다면, 꼭(!!!) 완강할 가치가 있는 과목이라고 생각한다.
3. JAVA 프로그래밍 (김희천 교수님)
사실 자바 프로그래밍 과목은 자바를 현업에서 사용하고 있기 때문에 약간 쉬어가는 느낌으로 수강하려고 선택한 과목이었다. 그리고 JAVA 언어에 대한 기본기와 객체지향을 전반적으로 복습하는 시간을 가지려고 했다. 그런 의미에서 어느 정도 도움이 되긴 했으나, 내용 구성이 조금 아쉬웠던 것 같다. 그래도 대학 전공수업인 만큼 너무 깊이 있는 내용까지는 아니더라도 JVM의 구조나 메모리 영역, 가비지 컬렉터 메커니즘 같이 전공수업 다운 내용들을 다루었으면 어땠을까 하는 아쉬움이 있다. 실제로는 거의 주요 API 클래스 소개 정도만 다뤄지고 있었다. 언어에 대한 이해도가 있는 사람이나, 없는 사람이나 15강 동안 수업으로 듣기에는 약간 애매한 내용들이 아닐까 하는 생각이 들었다. 과제 난이도는 언어 과제인 만큼 그렇게 어렵지 않았으나, 기말 난이도는 조금 어려운 편이었다. 코드 전문에서 헷갈리는 부분을 찾는 등 이해도와 상관없이 여차하면 실수하기 쉬운 문제들이어서 고득점을 노린다면 꼼꼼히 준비해야 할 것 같았다.
4. 데이터베이스시스템 (정재화 교수님)
이번 학기에 수강한 정재화 교수님의 두 번째 강의였다. 정재화 교수님은 대체로 수업을 전반부 후반부로 나누어서 전반부에 한번, 후반부에 한번 리뷰를 해주시기 때문에 수강하고 내용을 정리하기 굉장히 편했었다. 전반부에는 우리가 흔히 알고 있는 데이터베이스의 기초에 관한 내용들(데이터베이스를 사용하는 이유, SQL 등)을 다루었고, 후반부에는 데이터베이스의 조금 깊은 작동 원리들 (트랜잭션, 인덱싱 원리, 회복시스템 등) 을 다루어서 현업 개발자가 들어도 굉장히 유익한 내용들이었다고 생각한다. 과제나 기말고사의 난이도는 보통 정도라고 생각되고, 워낙에 수업에서 정리를 잘해주시기 때문에 수업을 열심히 들었다면 무난하지 않을까 생각한다. 익히 유명한 만큼 정재화 교수님 강의는 웬만하면 듣는 것을 추천한다.
5. 디지털 논리회로 (김형근 교수님)
디지털 논리회로는 부울 대수를 시작으로 하여, 조합 논리회로, 순서 논리회로 등 컴퓨터를 구성하는 가장 작은 단위인 회로 소자들에 대해 학습하는 과목이었다. 단도직입적으로 말해서 이해하는데 가장 많은 시간을 할애한 과목이었다. 수업 한번 듣고 이해하기엔 내용이 난이도가 상당히 있고, 유튜브를 따로 보면서 추가적으로 이해하려고 노력을 많이 했던 과목이었다. 그러니까 본인이 현업에서 해당 내용들을 필요로 하지 않는다 싶다면 수강을 재고하는 것을 추천한다. 그리고 아쉬웠던 부분은, 교재 및 워크북 연습문제에 오탈자가 많아서 문제를 풀고 정답을 맞혀 보는 과정에서 상당히 어려움을 겪었다. 과제나 시험은 여타 다른 김형근 교수님 스타일대로 책 보고 문제를 풀어본 만큼 나오는 과목이라고 생각한다. (문제가 특별히 꼬아서 나오거나 하지 않는다.)
6. 운영체제 (김진욱 교수님)
운영체제는 이번 학기에서 유일하게 별도로 노트로 만들어 필기 내용을 정리한 과목이었다. 그만큼 백엔드 개발자에게 중요한 내용들을 다루고 있기 때문이기도 하고, 기술 면접에서도 자주 나오는 내용들이기 때문이다. 수업 내용은 과목 제목 그대로 운영체제의 구성 요소와 원리들에 대해 공부한다. 김진욱 교수님 수업이 크게 친절하지는 않지만, 그래도 적절한 톤과 속도로 수업을 진행하시기 때문에 집중해서 들으면 이해하는 데에 큰 어려움은 없는 수업이었다. 수업 내용도 너무 깊은 부분까지 다루지는 않지만 필요한 내용은 다 다루고 있다. 하지만 김진욱 교수님 과목 특성상, 기말고사 난이도는 상당히 까다로운 편이므로 고득점을 노린다면 상당히 꼼꼼하게 공부해야 한다. 다시 한번 강조하지만 백엔드 개발자라면 정말 정말 정말 중요한 내용들을 다루고 있기 때문에 난이도와 상관없이 수강 필요성은 정말 높은 과목이다.
마치며
이번 학기는 저번 학기보다 상대적으로 회사 일도 여유롭였기 때문에 체력적으로 이점이 있는 상태로 시작한 학기였다. 하지만 초반에 2~3주 정도 진도가 밀렸던 것이 수업 내용을 정리하는데 방해가 됐다. 다음 학기의 목표는 시작부터 무조건 하루에 한강씩 듣고 중요 과목을 정리해서, 평균 학점 4.2점 정도를 목표로 해봐야겠다.