Genius DM

CS50 Introduction to Computer Science 본문

Computer Science & Engineering

CS50 Introduction to Computer Science

Damon Jung 2017. 8. 25. 23:07

CS50 Introduction to Computer Science.


Harvard University 의 David J. Malan 교수가 컴퓨터 과학이라는 입문자에게 다소 어려울 수 있는 주제를 아주 쉽게, 그리고 무엇보다 열정적으로 강의를 하는 것으로 유명한, 하버드의 전통있는 컴퓨터 과학 코스를 MOOC Platform 중의 하나인 edX 에서 무료로 수강할 수 있다.



기본 알고리즘, 자료구조, 이미지 프로세싱, 암호화, 디지털 포렌식, 웹 프로그래밍, SQL, 구글 API 활용 메쉬업 등 다양한 분야에서 활용될 수 있는 기초 지식을 얻을 수 있다. 총 11주차 코스로, 1년 내로 수강을 완료하면 수료가 가능하다. 한 주 마다 C 와 Python 을 이용한 3~4 개 정도의 과제가 주어지며, 프로그래밍 경력이 없다면 소화하기 다소 어려울 수 있지만, 끝까지 해낸다면 Computational Thinking 이라는 것을 자연스럽게 머리 속에 자리잡게 할 수 있는 정말 좋은 강의이다. 





실제로 Yale 에서도 동일한 CS50 타이틀로 강의가 있을 정도로 그 인기는 엄청나다. 이런 강의를 온라인으로 무료로 수강할 수 있다는 것이 얼마나 행복한 일인가?





이렇게 두꺼운 Phone Book 을 반으로 찢어버리며, Binary Search 개념에 대해 확실하게 머리 속에 각인시킨다. 개인적으로 이 장면에 완벽하게 매료되어 11주차 끝까지 수강하게 되었다. MOOC 강의를 끝까지 수강한 것은 CS50 가 최초이다.





1, 2, 4, 8, 16, 32, 64, 128... 이진법 계산 공부해보신 분들이나 컴퓨터 공학 / 과학 전공했다면 눈치 챌 수 있을 것이다, 무엇을 설명하는지······ 바로 Binary 개념을 전구를 이용하여 쉽게 설명하고 있는 것이다 !! 





@Fun




[ 0 0 0 0 0 0 0 0 ] 은 8비트, 즉 1Byte 인데 10진수 8을 표현하거나 받아들일 때 컴퓨터는 

[ 0 0 0 1 0 0 0 0 ] 이런 형태로 처리한다는 것을 전구를 통해 시각화 하고 있는 것이다.



국민 게임 스타크래프트에서 유닛 업그레이드 최대치는 255가 최고인데, 이유는 업그레이드에 할당된 변수의 크기가 1Byte 이기 때문이다.

좀 더 프로그래밍스러운 이야기를 하자면 Unsigned 형태로, 부호가 없기 때문에 255까지 ( 0 포함 ) 표현할 수 있는 것이다. 





90년대 후반, 2000년대 초반에 리니지를 즐겼던 사람이라면, 당시 리니지 최대 방어구가 -127 까지라는 것을 어렴풋이 알 것이다.

이 또한 방어구 수치에 할당된 변수의 크기가 1Byte 이기 때문인데, 왜 -127 까지만 가능하냐면, Signed 형태로 -127, +127 이렇게 양수와 음수를 표현하기 때문이다. 부호가 없으면 당연히 양수 255 까지 가능하다. ( 사실 -128 까지인데, 왜 리니지에선 -127 까지였는지 모르겠다. )




@Fun







이것은 Linked List 자료 구조를 설명하고 있는 것이다. 사람이 가리키고 있는 것이 바로 포인터 개념이다. 이 강의를 통한다면 C 입문자들이 포인터도 쉽게 이해할 수 있지 않을까?





미래에 MOOC 교육의 가치가 인정된다면, 언젠가는 쓸모있을지도 모른다는 생각에 무료 수강 후 $90 을 지불하여 Certification 을 획득했다.





페이스북 CS50 페이지가 따로 존재하는데, 이곳에서 정보 교환도 가능하다. 실제 교수도 활동 중 이다. 취득 성공했다고 페이지에 포스트 업로드 했더니 교수님이 직접 댓글을 달아주는 영광을 얻었다. 나한테만 운 좋게 한 줄 알았더니, 그냥 활동 자체를 열심히 하신다.


MOOC 에 매력에 빠져서 다른 컴퓨터 엔지니어링 / 과학 수강 코스에 발만 담구어 보았지만 CS50 만큼 체계적인 시스템으로 진행하는 강의는 보지 못 했다. 채점 시스템, Cloud IDE, 보충 자료, 과제 설명, 커뮤니티 등 이 정도 규모의 코스는 앞으로도 만나기 힘들지 않을까?


만약 당신이 컴퓨터 과학 / 공학에 관심이 많다면, 그리고 학습 욕구가 있는 입문자 / 경력자라면 정말정말 추천하는 강의이다.


























CS50 Introduction to Computer Science.


MOOC Platform edX offers a free, great, and historic computer science course that Harvard University presents. It's very well known for a passionate professor David J. Malan. He explains this difficult concept of computer science very easily.



Basic algorithm, data structure, image processing, cryptography, digital forensic, web programming, SQL, Meshup with Google API, and etc. You will learn these essential, broadly applicable skills and knowledge. It's consist of 11 week courses and you can accomplish the course if you completing it at the end of the year. It will be challenging if you don't have some programming experiences, but if you could manage to finish the course on your own, you will definitely get to know what Computational Thinking is. It's really good course actually.





It's so famous that even in Yale, there's CS50 too. How lucky it is to have this kind of lecture for free on the internet?





He leaped off the thick phone book by half to explain Binary Search concept. You can learn it by heart !. Personally I was really charmed by this scene and it made me actually finish this course.





1, 2, 4, 8, 16, 32, 64, 128... if you've learnt binary calculation or if you have a computer science / engineering background, you can guess what this is about. He tries to explain binary concept using those bulbs !





@Fun




[ 0 0 0 0 0 0 0 0 ] is 8 bits, so it's 1Byte. A computer can only express decimal 8

[ 0 0 0 1 0 0 0 0 ] like this. He explains this job by turning on the fourth bulb.



There's a limitation on Startcraft unit upgrade. The maximum is 255, because they declared the variable size as 1Byte.

Digging into programming further, it's unsigned type so it doesn't have a leading sign so it can express 255 including zero.





Well, this is for Korean reader but anyway, There is a game called Lineage 1. 

If you had played this game in around late 90 or early 2000, you may know the highest armor rate was -127.

This is also because the variable size for this armor was defined as 1Byte. But this time it has the leading sign minus.

It is signed type. So it can express 127~-128. I don't know why -127 is maximum there while it can go down to -128.




@Fun







In this scene, the professor tries to explain how Linked List works. People are pointing a person next to them. Guess what? it's pointer concept. In my humble opinion, beginners for C will get to know pointer very easily with this lecture.





I paid $90 to get this certification, thinking that MOOC will someday be valued as much as the offline school.






This course has Facebook CS50 page. You can exchange information and solve problem and communicate with your colleagues. David J. Malan professor is active there too. I put up a post on this page and David commented me. I thought " what an honor!! " at first, but it wasn't me who got this comment on this page. He just works lively here as well.


I strongly felt that MOOC is really good so I tried to find another computer engineering / science class but none of them matched to CS50. The grading system, the cloud IDE, supplement materials, advising steps, community are just incomparable.


If you are into computer science / engineering and have passion for learning, I will 4 thumbs up for this lecture.



























'Computer Science & Engineering' 카테고리의 다른 글

Terms > Sandbox  (0) 2018.09.06
Comments