코세라에서 제공하는 구글의 수업을 듣기 시작했다. 코세라의 수업은 처음들어보는데, 인터페이스가 정말 깔끔하다. 그리고 학습자에게 정말 편리하도록 화면이 구성되어 있다. 수업 내용이 영어 스크립트로 동영상 화면 아래에 다 제공이 되고 있으며, 수업을 듣다가 노트 저장버튼을 누를 때마다, 해당 스크립트에 밑줄을 그을 수 있는 형식으로 되어있다. 해당 스크립트는 옆에 자동으로 저장된다.
그리고 수업을 듣는 중간 중간에 수업 내용에 대한 alert가 나온다. 수업을 잘 따라오고 있는지 확인하는 질문을 하는 창이다. 그리고 강사가 어디 칠판 앞에서 수업하는 것이 아니라, 앉아서 서로 이야기 하듯이 수업을 하고 있어서 뭔가 편안하고, 친근감 있게 수업에 접근할 수 있다. 뭔가 마음에 드는 수업이다.
강의에 대한 전반적인 소개가 끝나면, 처음으로 듣게 되는 수업은 컴퓨터의 역사에 관한 내용이다. 컴퓨터는 처음에는 계산을 위해서 개발된 도구였으며, 역사속에 어떤 중요한 인물들이 컴퓨터의 발전에 기여를 했는지 소개해주고 있다.
다음 수업에서도 계속해서 컴퓨터의 발전에 대해서 다룬다. 언제부터 컴퓨터가 상용화 되기 시작했는지, 운영체제는 어떻게 시작되게 되었는지 등등에 대한 내용을 다루고 있다.
Digital Logic
다음 수업에는 컴퓨터의 언어에 대해서 다루고 있다.
- The communication that a computer uses is referred to as binary system, also known as base-2 numeral system: 컴퓨터가 사용하는 커뮤니케이션은 바이너리 시스템이라고 불리며, 이것은 2진법이라고 불리기도 한다.
- Each byte can store one character, and we can have 256 possible values, thanks to the base-2 system, 2 to the 8th : 각각의 바이트는 하나의 캐릭터(문자하나)에 저장될 수 있고, 우리는 256개의 값을 가질 수 있다. 이진법 덕분에.
코드 인코딩 :
코드를 암호화 함으로 인해서 우리가 할 수 있는 일이 무엇인지 설명한다. 컴퓨터는 0과 1로만 이루어져 있기 때문에, 그것만 가지고는 문자를 표현할 수 없다. 그렇기 때문에, 특정 이진법을 입력하면 특정 문자가 나타나도록 약속을 정해야한다. 가장 고전적이고 오래된 암호화 공식은 아스키코드이다. 그리고 그러한 암호화의 예로써, 이모티콘도 될 수 있으며, 컴퓨터 화면에 나타나는 여러가지 색상 또한 암호화된 코드들로 이루어져 있다.
이진법 (binary) :
다시 한번 이진법의 역사를 훝어본다. 컴퓨터가 만들어진 초기 역사에서는 펀치카드로 컴퓨터를 만들었다. 구멍이 뚫린 곳과 뚫리지 않은 곳이 있는데, 구멍이 기계가 움직이면서 구멍이 뚫렸는지 아닌지 확인한다. 만약 뚫려있으면 기계를 통과시키고, 뚫려있지 않으면 통과시키지 않는다. 그런 방식으로 true or false를 구분해냈던 것이다. 여기서부터 0 과 1이 유래했다. 0은 거짓이고, 1은 참이다. 이렇게 참과 거짓을 구별해내는 방식으로 컴퓨터의 언어는 구성되었던 것이다. 이것이 발전되고 암호화되며, 그 언어를 컴파일할 수 있게 되면서 우리는 다양한 프로그램들을 만들 수 있게 되었다.
How to count in binary:
컴퓨터의 많은 것들이 이진법으로 이루어져있다. 문자나 이미지 뿐만 아니라 네트워크나 보안에도 적용되는 내용이다. 그렇기 때문에 컴퓨터를 이해하기 위해서는 이진법에 대해서 이해하는 것이 중요하다. 그러면서 이진법에 대한 내용을 가르친다. 각각의 숫자들이 어떻게 이진법으로 표현되는지를 설명하고 있다.
테스트 :
그리고 간단한 테스트를 한다. 첫번째 시험에서는 이진법과 관련된 문제들이 출제된다.
Computer Architecture Layer
Abstraction(추상화):
추상화란 굉장히 복잡한 것들을 우리가 사용하기 쉽도록 개념화 한 것이라고 생각하면 된다. 예를 들어서 자동차를 생각해볼 수 있다. 자동차의 내부를 들여다보면 각각의 자동차마다 다른 기술이 적용되어 있으며, 그 기술들은 굉장히 복잡할 것이다. 그러나 우리는 어떤 자동차를 탄다 할 지라도 다들 비슷하게 운전할 수 있다. 그것은 우리가 운전하는 원리가 추상화되어 있기 때문이다. 이런 식으로 우리가 눈치채지 못하는 사이에 일상의 많은 것들이 추상화되어 있다. 그것은 컴퓨터에게도 사실이다. 우리는 추상화에게 감사해야 한다.
Computer Architecture Overview:
앞서 우리는 추상화에 대해서 이야기했다. 사용자로써 컴퓨터를 이용할 때, 우리는 컴퓨터의 내부적인 기술을 알 필요는 없다. 그러나 우리가 IT업계에서 일하고자 한다면, 그 추상화가 어떻게 이루어져있는지, 내부를 이해할 필요가 있다. 그렇게 할 때, 우리는 어떤 문제가 생기던지간에 해결할 수 있게 된다. 컴퓨터의 구조는 기본적으로 4가지 layer로 이루어져있다. 하드웨어, 운영체제, 소프트웨어, 사용자. 이다. 하드웨는 우리가 손으로 만질 수 있는 물리적인 부분을 말한다. 운영체제는 하드웨어와 소프트웨어 간의 의사소통을 할 수 있도록 컨트롤하는 영역을 말한다. 소프트웨어는 실제로 사용자와 컴퓨터가 소통하는 부분이다. 마지막으로는 사용자이다. 엄밀하게 말하면 컴퓨터의 구조는 아지만, 컴퓨터의 4가지 구조 범주에 넣어서 생각하는 이유는 모든 프로그램이 사용자 위주로 만들어져야 하기 때문이다. 컴퓨터는 사람이 편리하게 사용하기 위해서 만들어진 도구다.
테스트 :
컴퓨터의 네가지 구조와, 내가 생각하는 일상 속의 추상화의 예를 적어야 하는 문제가 주어진다. 짧은 영어로 나는 이렇게 답했다.
I think a keyboard is a example of abstraction. Because i use it's simplified button,
Although i don't know the underneath technical knowledge.
중간시험
1주차 수업을 다 듣고 나면 중간 테스트를 본다. 이 시험에서는 화면에서 제공하는 이진법 계산기가 있다. 이것을 통해서 화면에 제시된 만큼의 십진수를 이진수로 풀어내는 문제가 주어진다.
느낀점 :
아직까지는 그렇게 어렵지도 않고, 내용도 흥미롭게 잘 듣고 있는 중이다. 영어도 그렇게 어렵지 않고, 어려운 내용이 있다할지라도 스크립트가 제공이 되니, 그런 부분은 찬찬히 읽어보기만 하면 금방 이해할 수 있었다. 2주차부터는 하드웨어 수업이 들어간다. 내게는 생소한 영역이기 때문에 어떨지 모르겠지만, 구글의 유능한 직원이 가르쳐준다고하니 기대를 가져본다.