< 목차 >
0. 전반적인 소감
1. 프로그래밍 언어의 종류
2. 컴퓨팅 사고력의 과정
3. 파이썬 기초
4. 알고리즘 & 의사코드
0. 전반적인 소감
CS와 AI에 대한 강의를 듣고 있다. 전공생과의 차이를 줄이기 위해서도, 개발에 대한 베이스를 다지기 위해서도 꼭 필요한 내용이라 강의를 결제하여 열심히 듣는 중이다. 정말 대학 수업처럼 개강되는 시기가 파트마다 다른데, 지금까지 개강된 파트만 해도 벌써 60시간이 넘는다. 수학까지 다루다 보니 확실히 시간이 길 수밖에 없는 것 같긴 하다. 아직 초반이지만 내용 굉장히 재밌다 ㅎㅎ
- ; (세미콜론): 한 줄 안에 2줄에 해당되는 영역으로 쓰고 싶을 때 사용
- True: 1, False: 0
예전에 부트캠프 완전 초반에 코드에서의 세미콜론이 어떤 걸 의미하는지 튜터님, 그리고 캠프 온라인 즉문즉답 Q&A 시스템을 활용하여 답변해 주시는 어떤 분께 여쭤봤었다. 그때 튜터님께선 "헛.. 그러게요. 그걸 왜 사용하는지는 생각해 본 적이 없네요" 하며 웃으셨고, 답변해 주시는 어떤 분께선 명확한 답을 안 주시며 '굳이 왜 이런 걸 궁금해하지'라는 뉘앙스가 느껴지는 답변을 다셨다. 그래서 이에 대한 해답을 명쾌히 하진 못한 채 이어서 공부했던 기억이 있다.
이 강의를 수강하며 세미콜론의 사용 이유, 그리고 내가 혼자 공부하며 알아보고 공부했던 CS 지식을 좀 더 명쾌하게 알게 되어 좋다. 피피티도 퀄이 좋아서 보는 맛이 있다.
1. 프로그래밍 언어의 종류
개발 관련한 콘텐츠를 보다 보면 기계어, 자연어, 인공어 혹은 고급 언어와 저급 언어와 같은 단어를 심심치 않게 발견할 수 있다. 모르는 건 최대한 알고 넘어가려고 전에 알아봤는데, 이번에 한 번 더 짚어주셔서 좋았다.
기계(컴퓨터) 친화적인 언어일수록 저급 언어에 해당하며 컴퓨터 내부에서 바로 처리 가능한 프로그래밍 언어를 의미한다. 예컨대, 이진수인 0101001001처럼 말이다. 기계어와 어셈블리어가 저급 언어에 해당한다.
어셈블리어(Assembly Language)는 프로그래밍 언어의 하나로, 기계어에서 한 단계 위의 언어이며 기계어와 함께 단 둘뿐인 저급(Low Level) 언어에 속한다.
고급 언어에는 프로그래밍 언어가 해당한다.
프로그래밍 언어도 둘로 나누어 볼 수 있는데, 컴파일 언어와 인터프리터 언어가 있다. 컴파일 언어는 코드가 실행되기 전에 컴파일러를 거쳐서 기계어로 모두 변환되어 실행되는 프로그래밍 언어로, 고급 언어로 작성된 소스 코드를 저급 언어로 번역하는 프로그램을 의미한다. C, C++, C#, Java 등이 이에 해당한다.
인터프리터(interpreter)는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램을 말한다. 컴파일하지 않고 소스 코드를 한 줄씩 읽어들여 실행한다. 컴파일하는 과정이 없기 때문에 컴파일하는 시간은 소요되지 않으나, 인터프리터 언어는 실행 파일을 별도로 생성하지 않기 때문에 실행할 때마다 인터프리트 과정이 반복 수행되어 실행 속도가 느리다는 단점이 있다. Python, Javascript, Ruby 등이 해당한다.
Reference
- [Velog] 컴파일러 언어 vs 인터프리터 언어 - https://velog.io/@congaweb/compiler-interpreter
2. 컴퓨팅 사고력의 과정
내가 배웠던 React의 '추상화' 개념이랑 달라서 좀 놀랐다.
React에서의 추상화는 보이지 않아도 될 구체적인 내용은 드러내지 않는 식의 일종의 방법으로 나왔는데, CS 관점에서는 아무래도 다른가 보다. 이런 차이도 재밌었다.
다음은 새롭게 알게 되었으며 흥미로웠던 내용이다.
컴퓨터 과학자가 문제를 해결하는 방법
- 문제를 작게 나누자
- 자료를 분석하자
- 자료를 수집하자
- 패턴을 찾자
- 추상화를 해보자
- 알고리즘을 만들자
- 시뮬레이션 모델(데스크, 디버그)을 만들자
컴퓨팅 사고력의 과정
1단계 | 2단계 | 3단계 | 4단계 | 5단계 |
분해 | 패턴 | 추상화 | 알고리즘 | 자동화 |
3. 파이썬 기초
변수의 타입은 굉장히 기본적인 내용이며 그만큼 중요한 부분이다.
타입스크립트에는 없는 int, float 등의 타입이 있다. 타입스크립트는 숫자는 모두 number로 통일되어 있다. 추가로, char형도 없다. 한 글자를 표현하든 여러 글자를 표현하든 다 string형으로 표현한다.
자바스크립트와 다른 부분을 더 유의깊게 보도록 하자.
👾 [참고] 타입스크립트의 타입에는 number, string, boolean, null, undefined, object, array, enum 타입이 있다.
연산자: 연산을 하기 위한 기호
연산자 | 기호 |
대입 연산자 | = |
산술 연산자 | + - / * //(나눗셈의 몫) %(나눗셈의 나머지) |
비교 연산자 | < > == <= >= |
Reference
- [Velog] TypeScript 타입 - https://velog.io/@ansrjsdn/TypeScript-%ED%83%80%EC%9E%85
4. 알고리즘 & 의사코드
- 알고리즘: 문제를 해결하기 위한 절차
- 의사코드(pseudo-code, 슈도코드 or 수도코드): 알고리즘을 표현하는 방법 중 하나로, 일반적으로는 자연어를 이용해 만든 문장을 프로그래밍 언어와 유사한 형식으로 배치한 코드
'CS (Computer Science)' 카테고리의 다른 글
[개발 공부 95일차] 파이썬 | 파일 입출력, 예외 처리 (4) | 2024.09.05 |
---|---|
[개발 공부 93일차] 파이썬 | 데이터 타입 (리스트, 튜플, set, 딕셔너리) (4) | 2024.09.03 |
[개발 공부 92일차] 파이썬 | 터틀 라이브러리, 문자열 조작 명령어 (6) | 2024.08.31 |
[개발 공부 91일차] 파이썬 | 반복문 (for, while) (0) | 2024.08.30 |
[개발 공부 82일차] 네트워크의 구성 요소 3가지 (0) | 2024.07.15 |