컴퓨터 과학에서 수학을 어떻게 활용하는가? (번역)

매케이(HawK)·2022년 12월 20일
0

2021년 11월 3일 / edX 팀

컴퓨터는 핵심적으로 계산기이다. "컴퓨터(Computer)"는 어원적으로 컴퓨팅(Computing)을 하는 기계다. 노트북을 계좌 정리보다 이메일을 보내는데 더 자주 쓴다해도 기계 안에서는 수학이 쓰인다.

만일 컴퓨터 과학에 관한 커리어를 희망한다면, 성취를 위해 수학이 얼마나 필요한지 궁금할 것이다. 답변은 당신의 컴퓨팅 커리어로 무엇을 하고 싶은지, 또 얼마나 심화된 결과를 원하는지에 달려있다.

컴퓨터 과학에서 수학이 필요한가요?

수학은 컴퓨터 시스템에서 기반이 되기 때문에 모든 프로그래머와 컴퓨터 과학자는 기초 수학지식을 습득해야 한다. 수학의 분야와 레벨은 컴퓨터 과학의 어떤 분야에서 일하고 싶은지에 달려있다.

어떤 컴퓨터과학 커리어 트랙은 최소한 수학지식만을 요구한다. 예컨데 기초 프로그래밍 언어를 알고 간단한 계산을 할 수 있다면 기초적인 모바일 앱을 개발할 수 있다.

하지만 만일 컴퓨터과학 커리어에서 더 멀리 가고 싶다면 - 아마 컴퓨터 보안이나 운영체제와 같은 심화 분야와 같이 - 일부 심화된 수학 개념을 이해해야만 한다. 그 누구도 컴퓨터 과학자가 수학자이기를 기대하지는 않지만 고등학교와 대학 레벨의 수학은 기회를 창출한다.

"(CS 교육에서) 자료구조와 알고리즘에 대해 더 배우게 된다. 이것들은 핵심과도 같으며, CS의 수학적 면모에 해당한다."

David Joyner는 "(CS 교육에서) 자료구조와 알고리즘에 대해 더 배우게 된다."라고 한다. David Joyner Ph.D는 조지아 공대의 컴퓨팅 칼리지의 온라인 교육의 총괄 디렉터이다.

"자료구조와 알고리즘은 일종의 핵심이며, 컴퓨터과학의 수학적 사이드에 해당합니다. 그것들은 매우매우 중요합니다. 왜냐하면 그것들은 컴퓨터 개발이 정말로 무엇인지 알게 하는데 심화된 지식을 제공하기 때문이죠."

DIVE DEEPER

수학은 컴퓨터과학에서 기본이지만 수학에 대한 열정은 CS 분야에서 성공을 위한 선수조건이 아닙니다. Joyner는 다음과 같이 말합니다. "객체지향프로그래밍은 사람들에게 컴퓨터과학이란 고등학교 때 수학을 아주 잘했던 사람들만을 위한 학문이 아니라는 사실을 알려주고 싶어하는 저의 소망에 불을 붙입니다. 객체지향프로그래밍은 철학과 깊은 관계가 있는 프로그래밍 분야입니다."

CS에서는 어떤 종류의 수학이 쓰이죠?

컴퓨터 과학자들은 각기 다른 종류의 수학을 씁니다. 고급 알고리즘과 행렬을 쓰는 사람들은 미분 방정식과 같은 높은 레벨의 개념을 이해해야 합니다.

하지만 떠오르는 신예 전문가들에게는 정수론과 기본 방정식들을 마스터하는 게 더 중요합니다. 다음은 알아야 할 몇가지 주제들입니다.

2진법과 16진법

이진법은 0과 1만을 써서 모든 수학적 개념을 표현합니다. 컴퓨터는 이진법을 쓰기 때문에 컴퓨터 과학자는 이진법을 알아야 합니다.

컴퓨터는 2진수를 읽지만 사람에게는 2진수를 다루는 게 불편할 수 있습니다. 따라서 그 대안으로, 컴퓨터 프로그래밍은 16진법을 씁니다. 16진법은 사람에게 더 직관적이며 2진법으로 전자적으로 변환됩니다.

이산수학

이산수학은 '만져지는' 수학입니다. 이산수학은 구별되고 분리되는 것들 사이의 관계를 분석합니다. 이산수학의 개념은 다음을 포함합니다.

  • 확률
  • 조합론
  • 논리
  • 정수론
  • 그래프 이론

이산수학의 문제해결과정들은 현대 컴퓨터 공학의 근간입니다. 이것들은 간단하거나 복잡한 분야를 모두 아우릅니다.

  • 컴퓨터 아키텍처
  • 함수형 프로그래밍
  • 분산 시스템
  • 머신러닝과 인공지능

컴퓨터과학 전문가에게 이산수학은 복수의 알고리즘을 시험하고 무엇이 가장 효과적인지를 알게 합니다. 한편, 이산수학을 배우며 계발하게 되는 논리적 사고는 프로그래밍과 개발 업무를 더욱 순서론적으로 접근하게 도와줄 것입니다.

통계

데이터는 지난 몇년간 과학적 컴퓨팅의 중요한 측면으로 부상해왔습니다. 데이터의 증대된 중요성으로 인해 모든 컴퓨터 과학 학생들에게 통계는 중요한 주제입니다.

통계는 컴퓨터 프로그램이 정확한 일반화와 예측을 제공하게 합니다. 통계에 대한 이해는 다음과 같은 개념을 이해하는데 용이하게 합니다.

  • 데이터 마이닝
  • 머신러닝
  • 미래 예측
  • 말하기 인식
  • 사용자 반응성
  • 컴퓨터 그래픽 분석

통계에 대해 더 배울수록, 복잡한 자료구조를 더 잘 활용할 수 있게 됩니다. 그럼으로써 고급 알고리즘을 더 잘 짤 수 있고, 소프트웨어 설계의 지평을 넓혀줍니다.

선형대수학

컴퓨터과학과 소프트웨어 공학은 알고리즘에 기반합니다. 알고리즘은 특정 입력으로부터 올바른 결과값을 도출하게 하는 공식입니다. 만약 설명이 친숙했다면, 중고등학교 대수학이 떠올랐을 것입니다.

대수학은 다음과 같은 개념을 포함합니다.

  • 지수
  • 다항식
  • 선형 방정식
  • 2차 방정식

각각의 개념은 컴퓨터 과학에 실제로 적용됩니다. 지수함수를 이해하면 이미지를 수정하여 시각적 흥미를 끌게 할 수 있습니다. 선형 방정식 풀이는 알고리즘 해석에 도움을 줍니다.

미적분

만약 컴퓨터과학 학위를 따려고 계획한다면, 미적분 강의는 언젠가 듣게 될 것입니다.

미적분은 미분과 적분으로 나뉩니다. 미적분을 통해 변화율을 알 수 있는데 이는 많은 알고리즘과 프로그램에서 중요한 재료입니다.

미분방정식은 특별히 중요합니다. 미분 방정식은 무엇이 어떻게 변하는지와 그것이 얼마나 빠르게 발생하는지를 계산합니다. 이를 통해 컴퓨터는 미래의 결과를 예측할 수 있습니다. 이 예측은 다음과 같은 분야에 있어 도움이 됩니다.

  • 시뮬레이션 설계
  • 문제해결 프로그램의 개선
  • 효율적 알고리즘 짜기
  • 정확한 그래프의 개발

"미적분"이라는 단어는 일부 컴퓨터과학 학생들을 겁에 질리게 하지만, 많은 사람들의 생각보다 덜 위협적입니다. 중요한 것은 일하고자 하는 분야에서 필요한 지식을 제공해줄 수 있는 강의를 찾는데 있습니다.

수학과 컴퓨터과학 중 무엇이 먼저인가?

수학을 배우면 배울수록 컴퓨터에 대한 이해도 깊어질 것입니다. 하지만 컴퓨터 과학을 시작하기 위해 먼저 수학자가 되라는 말이 아닙니다.

최근의 컴퓨터과학 교수자들은 모두에게 각기 다른 배경이 있음을 압니다. 따라서 그들은 커리큘럼에 적절한 수학 과정을 넣음으로써 학생들이 성취하는데 도움을 줍니다.

당장의 수학 기술만으로 컴퓨터 과학을 시작할 수 있겠지만, 당신이 아는 바를 더 갈고닦고 자신감을 얻을 수 있는 과정을 이수할 수도 있습니다.

//

출처
(역자주: CS를 위한 수학과정이 edX에 개설돼있으니 들으라는 홍보성 내용은 번역하지 않았습니다.)

profile
나야, 매케이!

0개의 댓글