CS 전공 과정 교과서 소개하기

Written on May 24, 2018

학생들끼리 비교하는 것의 장점

  • 자기 학교에 무엇이 빠져서 자신에게 무엇이 부족한지 알 수 있다
  • 새로운 분야를 공부하기 시작할때 다른 사람의 사례를 보고 참조할 수 있음

다른 사람에게 좋은 점

  • 요즘 CS 전공자가 어떤 것을 배우고 졸업하게 되는지 알수있다
  • 면접을 하는 시니어라면 요즘 학생들이 무엇을 아는지 예상할 수 있다

영어 강의는 영어 강의명. 프로젝트성 과목 제외.

  • 이산수학: Discrete Mathematics and Its Applications
  • Computer Programming: Java, C++. 기본적인 자료구조(stack, queue, tree)
  • 논리설계: Contemporary Logic Design. 하지만 실습은 책과 별도로 이루어짐
  • 논리설계실험: 7 segment digit 회로 구현부터 Micro Processor 구현까지. 납땜부터 브레드보드, 나중에는 verilog로 FPGA에
  • 프로그래밍의 원리: 고유 교재를 쓰지만 내용적으로는 SICP(마법사 책). Racket, OCaml, 요즘은 Scala를 한다고 들음
  • 자료구조: Data Abstraction and Problem Solving with JAVA: Walls and Mirrors. 하지만 책을 그리 사용하지는 않음. Big-O 부터 기본적인 알고리즘들, 해시테이블, 우선순위큐, 그래프, 밸런스트리(RB, AVL) 까지
  • Electrical and electronics circuits: Foundations of Analog and Digital Electronic Circuits. edx에 유사 강의가 있어서 그것을 함께 공부함
  • Computer Architecture: CSAPP. 전반부. 후반부는 시스템 프로그래밍에서 다룸.
  • Operating System: Operating Systems Principles & Practice. 수업은 책으로 하고 과제는 3.10 kernel 해킹
  • 프로그래밍 언어: 이광근 교수님 고유 교재. 전반부는 추론 법칙, c-like 언어 컴파일러 구현, 후반부는 바이트코드 인터프리터 버츄얼머신, 함수형 언어 컴파일러 구현, 타입 추론 시스템 구현 등. OCaml 기반
  • Algorithm: Introduction to Algorithms
  • Hardware System Design: 고유 교재. 여러 종류의 설계를 해보고(DMA 등) 최종적으로 FPGA에 머신러닝을 위한 matrix-vector multiplication accelerator 구현

안들었지만 어떻게 접한 과목

  • 데이터베이스: Database System Concepts
  • Introduction to Data Mining: Mining of Massive Datasets