오늘 종강한 기념으로 오사카대학 전자정보 공학과 정보시스템코스 3학년 1학기 시간표를 리뷰해보려 해요

우선 수업을 최대한 앞으로 몰아서 들어서 1,2학년 때 열심히 1교시를 끌려다닌 결과 이번학기는 1교시를 피할 수 있었습니다.
원래는 제어공학이라는 수업도 듣고싶었으나 월요일 1교시라는 선 넘은 시간표에 어 안들어~ 하고 넘겨 버려서 위와같은 시간표를 완성했습니다.

참고로 1교시는 1시간30분 2교시이후 1시간30분의 점심시간 ( 1시간이였는데 코로나 사태로 식당 밀집을 피하다고 작년 초부터 1시간반으로 늘림) 이 있어서 예를 들면 4교시는 4시 40분에 끝나게 됩니다.

사실상 듣는 과목수로는 그래도 지금까지중에 가장 적지 않나 싶었는데 결과적으로 지금 까지 경험한 적이 없는 헬 시간표였어요요
작년 2학기 전공 10과목 기말에 두들겨 맞고 이번학기는 실습위주로 해야지~ 하다가 끔찍한 꼴을 당했습니다 ㅋㅋㅋㅋ

컴파일러 - 월요일 2교시

컴파일러의 이론수업이였습니다.
컴파일러의 존재이유와 역할 그리고 설계에 관한 내용이였네요.
먼저 컴퓨터상의 문법의 개념에 대해서 배우고 명령어를 여러 상징어(토큰)으로 구성한 트리구조로 설계하는 법부터 시작하여
문법의 엄밀함에 따른 종류와 그 종류에 따른 오토마타를 구성하는 방법에 대해여 배웁니다.

정규표현식의 유한오토마타표현 정규문법이 아닌 경우의 푸시다운오토마타 등 다양한 오토마타의 구성법에 대해 배운 뒤 실제 C언어가 어떻게 컴파일러에서 어셈블리어로 구성되는지를 배웁니다. 다만 수업이 32비트 기준으로 설명하더라구요
마지막으로 생성된 어셈블리 코드를 최적화 하는 기법에 대해 설명을 하면서 끝났습니다. 평범하게 듣고 있으면 논리적으로 음음 그렇지 하고 이해할 수 있는 무난한 과목이였습니다.

인간정보공학 - 월요일 3교시

가장 많이 기대했던 과목이고 여러가지로 실망이 컸던 과목입니다.
1학년 때 부터 인간정보공학연구소에 흥미가 있었고 그곳의 대표교수가 직접 하는강의이기에 입학초기부터 듣고싶어하던 강의였으나 실제로 들은 것은 그저 잡학퍼레이드 였다는 기분입니다.

인간의 행동의 대부분은 제가 상상했던 것 이상으로 수리적 모델링이 가능하다는 사실은 정말 놀라웠습니다. 또한 이러한 연구가 1940,50년대부터 이뤄졌다는 사실도요.
또 인간 뇌의 처리와 컴퓨터의 처리가 얼마나 닮았는가에 대한 수업도 재밌었습니다. 컴퓨터비전과 인간의 눈과 뇌의 처리의 공통점, 눈의 신체적 물리적 한계를 극복하기 위한 눈의 미세한 움직임과 뇌의 보정

말 그대로 우리가 보고 느끼는건 모두 뇌의 정보처리의 결과물이며 있는 그대로의 모습일수도 아닐 수도 있다는 점을 착각, 착시에 기반하여 설명하고 그런 과목이였으며 그 뇌의 물리적 한계에 대해 수학적 모델링을 배우는 과목이였습니다.

출석레포트로 수업내용요약과 관련 링크 2개를 제시해야하는데 블로그 링크들은 뭔가 부족하여 늘 논문을 링크하다보니 1주일에 짧은 논문을 2개정도 씩 요약하고 수업 주제에 맞으면서 읽을 수 있는 논문을 찾느라 많으면 1주일에 8,9편까지도 읽어야 했던 것 같네요. 논문이라기보단 학술지의 기사에 가깝다고 할까요 한 10페이지 전후하는 분량들이였습니다.

과제레포트는 3개
Card Human Processor Model 실험의 재현 및 확인
Hopfield모델을 이용한 순환세일즈맨 문제의 해결 증명
Fitts’s Law 의 실험 및 증명

이 외에도 다양한 가점레포트가 있었으나 현실적으로 도저히 손 대기에는 부족하였고 대부분의 학생들도 그러했는지 매주 교수님은 아직 이 주제로 레포트를 내준 학생은 없지만.. 의 반복이였고 결국 그 압박을 견디지 못하고 6자유도 로봇팔의 Forward Kinematics 와 Inverse Kinematics에 관한 레포트는 작성하여 제출했습니다 ㅋㅋㅋㅋ

수업자체는 흥미로웠는데 배울수록 그래서 이게 무엇을 하고싶어하는 과목인가, 이 분야에 미래는 있는가 등등에 대해 생각하게 되어서 현재는 연구실을 어디로 들어갈지도 다시 고민을 하게 한 과목이네요

기말은 없었지만 레포트의 압박이 심한 과목 중 하나였습니다.

세큐리티이론 - 여름학기 월요일 5교시

이번학기를 힘들게 한 가장 큰 주범이며
제 대학생활에서 처음으로 과제를 때려 친 과목입니다

말이 세큐리티지 그냥 암호학과 정수론만 주구장창하며 여름학기만 한다고 수업을 2배속이아니라 교수3명이서 3배속으로 감습니다.

사실 암호학인 것을 어느정도 알고 있었고 듣기 싫었는데 저희 학과 졸업요건 전공학점이 홀수인데 이 과목이 여름학기 집중수강이라 유일하게 1학점짜리 나머지는 2학점씩이라 홀수를 딱 맞추기 위해서 들었어요 ㅋㅋㅋㅋ

외부대학생들과의 수업이기도 해서 학교의 수업 플랫폼이 아닌 이상한 플랫폼에서 진행하며 끔찍한 과제양이였습니다.
1주일 지나면 게시판에 과제 제출용 포스트가 9개씩 올라오고 교수는 시끄러워서 뭐 조금만 업데이트하고 과제 추가되었다 마감 얼마전이다 등등으로 하루에 매일이 4,5개씩 오고 과제도 처음엔 양만 많고 쉬워서 쓱쓱하다가 뒤에는 도저히 감당할 수 없게되었습니다,

그러다가 과제에 치명적인 오류를 발견했으나 이 내용을 마감날까지 아무도 지적하지 않고 교수조차 아무렇지않게 마감 뒤에도 뭔가 수정사항이나 관련 공지사항을 말하는 것을 보며 이 수업은 관리도 개판으로 이뤄지는구나 하면 처음으로 과제를 여러개를 때려쳤네요 ㅋㅋㅋㅋ 일주일에 제출할 레포트만 5개 6개씩 나오고 풀어야할 문제만 3,4개씩 나오는데 어떻게 이걸 다 커버합니까 하면서

너무 스트레스도 많이받고 힘든 과목이였네요

이 월요일 과목들 이외에는 다 무난해져서 이 뒤는 짤막짤막하게 쓰겠습니다

신호와시스템 - 화요일 3교시

무난한 해석학관련 수학 과목
삼각함수로 이루어진 여러 아날로그 신호를 어떻게 수학적으로 디지털 신호로 모델링하는가와 조합시켜서 연산하는가에 관한 과목으로 주로 푸리에변환의 응용이 메인이였다.

다만 기말고사의 계산량은 끔찍했습니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

정보사회와 공학이론 - 화요일 4교시

마음의 안식처… 고도교양과목이라 심지어 졸업 필수학점!
말이 정보사회와 공학이론이고 그냥 컴퓨터 이론 좀 더해진 중학교 도덕시간입니다. 편하게 딴생각 딴 짓하면서 강의 듣다가 레포트 주제 나오면 그것에 대해서 그럴싸하게 의견을 써서 제출하는 수업입니다.

다만 마지막에 조별발표와 레포트가 있어서 화들짝했는데 이것도 무사히 넘겼네요
정말 오아시스같은 과목이였습니다.

기계학습과 데이터처리 - 수요일 2교시

2개의 실습을 진행하며 전반부는 결정트리를 이용한 인간의 3차원 운동데이터의 분석 후반에는 자연어 처리를 진행합니다.

부담도 적당한 좋은 실습수업이였습니다.
전반부는 인간의 양 손목과 엉덩이쪽에 붙은 3차원센서의 30hz로 측정한 데이터 뭉치가 주어지며 라벨이 붙어있는데 이 데이터를 열심히 가공해서 엔트로피가 최소가 되게하는 분류구조를 만드는 것이 과제였습니다.
자세의 라벨은 누워있음 앉아있음 서있음 걸어다님이였으며 강의 후반에는 테스트데이터를 기반으로 정확도로 평가를 하며 저는 90%의 정확도로 마감했습니다

후반은 자연어처리로 다양한 통계적해석과 기계학습적 해석을 이용하고 여러 자연어처리용 데이터들을 가지고 실험을 진행했습니다.
직접 기반부터 짠다기 보다는 주어진 기반에서 자연어 데이터를 어떻게 가공해서 학습시킬지에 관한 내용으로 자연어처리가 이뤄지는 과정에 대해서 알 수 있는 좋은 기회였습니다

디지털전자회로 - 수요일 3교시

스위치 회로에 대한 설계와 이것을 어떻게 트렌지스터로 구현하는가에 대한 개념으로 저항대신 Complementary Symmetry Circuit으로 에너지 소비를 최소화시켜 논리회로를 트랜지스터로 구현하는 방법에 대해 설명하는 것으로 시작했습니다.

이후에는 MOS트랜지스터를 이용한 방법과 (거의 같음)
임의의 논리식을 트랜지스터로 구현하는 방법에 대해 배웠네요

마지막으론 이러한 회로들만 가지고 간단한 또는 목적에 맞는 CPU를 설계하는 수업이였습니다. CPU안의 각 부품들의 논리식을 만들고 그것을 회로로 만들고 연결하고 0과1을 어떻게 지정하면 어떠한 결과가 나오는지에 관한내용이 결론으로 기말 시험에도 이런 문제가 대문항 3개중에 2개로 나왔습니다

양자컴퓨팅연습 - 수요일 4교시

양자컴퓨팅에관한 이론과 실습을 하는 과목이였어요
처음에는 양자컴퓨팅의 개념과 양자튜링머신에 대한 이론 그리고 큐비트(0과1의 중첩상태를 표시하는 양자비트)의 표현을 배우고 그 뒤에는 브라켓표기에 의한 양자게이트 (양자컴퓨터상에서의 논리게이트) 를 배우고 실습을 했습니다.

qiskit 패키지를 이용한 기본적인 양자게이트의 동작확인과 양자에러 수정 그로버알고리즘을 주로 실습하였고 쇼어알고리즘은 이론만 다뤘어요

다만 기말고사에서 교수가 1시간이면 풀 수 있게 간단하게 냈고 실습이 50%니까 큰 부담 가지지 말라고하고는 진짜 제한시간 1시간에 한페이지를 반으로 나눠서 2페이지 가득 문제를 가져오고 또 어렵고 써야할 행렬도 길어서 시험에서 많이 혼쭐난 과목이였네요

양자붙은 과목들 특인가봐요 작년 양자역학도 1학년때 양자화학도 그러더니

시스템 선형대수 - 목요일 2교시

선형대수는 3년째 봐도 정말 어렵구나라고 느낀 과목이였네요.
1학년때도 했고 2학년때는 여러 과목에서 주구장창 활용했고 3학년이 되어서 다시 만났습니다.

1학년 때 배운 개념들에 더해서 여러가지 추가적인 증명과 개념을 배우는 과목이였는데 선형대수학의 증명은 당연한거 아니야 이걸 왜 이렇게까지 해서 증명하지랑 이게 뭔소리고 뭘 증명하는건데 하는 두가지 감상밖에 존재하지 않죠 ㅋㅋㅋㅋㅋ
여차저차 계산법이랑 증명 일부 암기해서 시험은 견뎌냈네요 휴…

실험 - 목요일3,4교시

말이 실험이고 사실은 실습입니다
총 3가지 실습을 진행했어요

  • 음성신호의 처리
  • 네트워크 통신분석
  • 증폭회로의 설계

음성신호의 처리는 신호처리 패키지들을 이용하여 음성 데이터를 푸리에 변환하고 필터도 씌워보고 이것저것 하면서 수학적 계산과 소리의 가공 샘플링이론의 확인 등등을 진행하는 실험이였어요

네트워크 통신분석은 과제로 주어진 통신을 한 뒤에 WireShark로 캡쳐한 패킷들을 보면서 그것들의 의미에대해 레포트를 제출하며 네트워크상 처리 대기시간을 최소화하기 위한 이론적 방법까지 계산하는 과정이였습니다

증폭회로 설계는 증폭회로 관련 이것저것 계산을 하다가 결과적으로 저항의 값들을 적절히 조절하여 교수가 제시한 스펙을 이론상으로 만족하는 회로를 구성하는 실험이였습니다.

정보시스템공학연습 - 금요일 2교시

이것도 실습과목으로 총 3개의 실습이 있었습니다

  • 정보보안실습 (CTF, Capture The Flag)
  • 게시판사이트의 개발
  • 계산기 컴파일러의 개발

정보보안 실습은 제가 소속한 학교CTF팀 동아리의 교수님께서 담당하셔서 면제받았습니다 덕분에 전반은 사실상 금요일 공강이였네요

게시판사이트의 개발은 이번학기 가장 많은 시간을 투자한 과제중 하나인데요, 조건이 HTTP통신을해주는 무언가를 사용하지 말 것이였습니다. (Flask나 아파치서버나 등등)

교수님은 루비를 권장하셨지만 사실 언어는 자유라 하셨기에 전 파이썬으로 개발하였습니다. 소켓통신만가지고 HTTP통신을 구현하기는 참 노가다의 연속이였네요

만들다보니 기능적으로 욕심이 생기고 교수님이 제시한 가산점 요소들도 만드려다보니 파이썬서버, 자바스크립트, 데이터베이스, HTML, CSS까지 정말 다양한 부분을 만들어봤네요.

특히 웹상의 자바스크립트의 작동원리를 개념부터 잘 못알고 설계했다고 느꼈을 때는 울고싶어 졌지만 아무튼 동작은 하기에 계속 진행했습니다 ㅋㅋㅋㅋ

PHP가 제 컴 환경에서 에러가났는데 고치기도 귀찮아서 그걸 다 파이썬과 자바스크립트의 Ajax통신으로 처리해버렸네요.

동작은 하는 혼란스러운 결과물이 나왔지만 아무튼 여러가지를 배울 수 있었습니다.

계산기 컴파일러는 YACC와LEX를 활용하여 교수가 제안한 스펙에 맞는 계산기를 설계하는 것이였습니다.
이것에 대해서는 블로그에 포스트가 있으니 참고바랍니다!
YACC와LEX를활용한 계산기의 설계

결말

이번학기는 수많은 과제에 치여살면서 정말 스트레스도 많이받고 힘들었던 것 같네요..
결국 못버티고 생활이 여러번 무너져서 자기관리 실패한 것도 있고 여러가지 일들도 겹쳐서 악순환에 많이 힘들었습니다만 어찌어찌 한 학기를 마무리했습니다
학점은 기대하기 힘든 학기겠지만 그래도 다양한 실습으로 배운 것도 많은 학기인 것 같았습니다