본문 바로가기

WORK/Career and Entrepreneurship

비전공자 미국 CS 석사 가능할까? (4) - Prerequisite coursework for CS Master's Degree

앞서 Georgia Tech 의 OMSCS 과정을 소개하면서, 비전공자들이 CS 석사 과정에 지원하기 위해서 일종의 Prerequisite 이 필요하다는 이야기를 했었다. 

2020/08/04 - [INVESTMENT/Career Investment] - 비전공자 미국 CS 석사 가능할까? (1) - OMS CS / Georgia Tech University

 

비전공자 미국 CS 석사 가능할까? (1) - OMS CS / Georgia Tech University

IT 업계 종사자로서 CS (Computer Science) 학위를 소지하지 않고 있다는 점은 종종 Disadvantage 로 작용한다. 업무에 필요한 필수 지식들의 깊이가 종종 깊지 않다는 인상을 스스로 받기도 할 뿐만 아니��

tech-millennial.tistory.com

거기에 상당히 많은 요구사항들이 있었는데 이를 전부 MOOC 로 충족하려고 보니 참 너무 부담되는 것.

그래서 실제로 Admission 을 받은 사람들에게 이야기를 들어보기로 했다. 뭐, 직접 아는 사람이 있는 건 아니니, 역시나 온라인으로 찾아볼 수 밖에. 너무나 다행히도 미국의 소셜네트워크 중 하나인 레딧의 OMSCS 그룹을 들어가서, 'non CS prerequisite' 을 검색해 찾아보니 수 많은 비전공자들이 남겨놓은 질문들에 친절하게 답변을 남겨놓은 내용을 찾을 수 있었다.

 

Reddit 의 글을 읽다보면 결국 결론은 요정도다.

  • Community College 에 가서 CS 관련 수업을 듣고 학점을 괜찮게 받아라
  • OMSCS 의 문턱이 높은 편은 아니다. 수업을 듣고 따라갈 수 있을 정도라는 인상을 주는 것이 중요하다.

일단 한국에 있는 상황으로서 미국의 Community College 에 다닐 수는 없으니 패스. 

'수업을 듣고 따라갈 수 있을 정도' 가 어느정도 인지 알기 위해서는 실제로 Admission 을 받은 CS background 가 아닌 사람들이 어떤 것들을 지원서에 넣었는지를 보아야 할 것이다. 

 

다행히도, Admission 을 받은 사람들의 코멘트를 보면 주요 내용을 이렇다.

 

 

What prerequisite CS courses should I have before applying? (Non-CS bachelors).

Hi there, I'm having trouble finding more information about this. The OMSCS website only states that they recommend taking CS courses at...

www.reddit.com

 

Personally, I wouldn't worry about an intro programming course. As I see it, classes land in one of three categories.

The "absolute must haves" from what I've gleaned from other non-CS undergrads who got in is:

  • Data structures

  • Algorithms/Complexity

  • Discrete Math (or similar)

The "recommended, but not necessary" classes:

  • Operating Systems

  • Automata/Grammars/Computability

  • Software Development/Design

The "very helpful, but not expected" classes:

  • Computer Architecture

  • Calculus I/II

  • Linear Algebra

  • Numerical Methods/Analysis

  • Compilers

  • Parallel Computing

I'd definitely make sure you have credit for everything in the first category, at least one or two from the second category, and if you want to stand out, one or two from the third category.

I'd recommend you get them for credit from an accredited university (as a non-degree student) and get a good grade, but colleges and non-accredited sources have been accepted in the past.

 

'반드시 들어야 하는 수업' 으로는

  • 자료구조
  • 알고리즘
  • 이산수학

'추천, 하지만 필수는 아닌 수업' 으로는

  • 운영체제 (< - 필수적으로 수강해야 된다는 코멘트들도 다수)
  • 오토마타 및 계산이론 (<- 이것도 필수라고!)
  • 소프트웨어 개발 및 설계 

 

'굉장히 도움이 됨, 하지만 기대되지 않는 수업'으로는

  • 컴퓨터 구조
  • 미적분학 1/2
  • 선형 대수학
  • 수치 해석
  • 컴파일러
  • 병렬 컴퓨팅

이 있다. 결국 학부 수준에서도 필수적으로 배우는 요소들 - 자료구조/알고리즘/이산수학 - 에 대해서는 어떻게든 알고는 들어와야 한다는 것. 게다가 OMSCS 의 Machine Learning 전공을 생각한다면 각종 수학과 관련된 과목을 이수하는 것도 분명 지원서에서 눈에 띌만한 내용일 것이다. 

 

이런 것들을 요구하는 이유는 명확하다. CS 석사는 코딩 부트 캠프가 아니기 때문! 그래서, Admission Office 는 학생들이 정말 컴퓨터의 구조와 원리를 배우는 CS 를 공부하고 싶어 하는 것인지 알고 싶어 한다. 

 

결국 정리해 보면, 비전공자로서 Safe 하게 입학 승인을 받으려면 아래 수업들은 들어야 한다는 것!

 

최소 기준

  • 프로그래밍 (C & Java) *Python 까지 알고 있다면 좋고
  • 자료구조
  • 알고리즘
  • 이산수학

안전한 기준

  • 오토마타
  • 운영체제

특히 Admission 을 받은 사람들이 강조하는 것은 위 수업들을 그냥 수료하는 것이 아니라, Grade 를 받을 수 있는 Coursework 을 골라서 제대로된 학점을 받아야 한다는 것이다.

 

+

 

관련해서 Georgia Tech 의 Undergraduate Course 들을 찾아보니 아래 수업들이 가장 유사한 수업이다.

(순서는 Prerequisite 을 고려한 수강 순서)

 

전공 필수

  • 프로그래밍 - CS 1301 Introduction to Computing and Programming, 3
  • 프로그래밍 - CS 1331 Introduction to Object-Oriented Programming, 3
  • 자료구조 및 알고리즘 - CS 1332 Data Structures and Algorithms, 3
  • 이산수학 - CS 2050 or CS 2051 Introduction to Discrete Math for CS, 3
  • 알고리즘 분석 및 설계 - CS3510 or CS3511 Design and Analysis of Algorithms, 3 
    -> OMSCS 의 CS 6550 Design and Analysis of Algorithm 과 중복
  • 오토마타 - CS 4510 Automata and Complexity Theory, 3

 

+ 전공 선택

  • 머신러닝 - CS 4641 Machine Learning, 3
    -> OMSCS 의 CS 7641 Machine Learning 과 중복

+ 수학 과목

  • 미분 - Math 1551 Differential Calculus, 3
  • 적분 - Math 1552 Integral Calculus, 3
  • 선형대수 - Math 1554 Linear Algebra, 3

따라서, OMSCS - ML Specialization 에 합격하기 위한 Potential 을 보여주려면 위 하이라이트한 과목(교양 수준 과목 & 옵션 과목 제외)에서 B 정도 수준을 받으면 될 것 같다.

 

아래는 Georgia Tech - B.S of Computer Science - Intelligence thread 의 Coursework prerequisites

 

반응형