시스템 프로그래밍

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

수업의 목적

이 모듈을 쓰게 된 배경과 학습 목표입니다.

배경

전문가들은 일반인들이 무엇을 왜 이해하지 못하는지 이해하지 못한다.

그래서  전문가가 되기 전에, '일반인의 관점에서 바라본 전공 지식'에 대해 기록하고자 한다.

수많은 개발 관련 포스팅이 존재하지만 생활코딩이 압도적으로 쉽고 인기있는 것은 그런 맹점을 최대한 없애려고 시도했기 때문인 것 같다.

 오픈튜토리얼스의 강의 조회수는 99% 생활코딩이 차지하고 있는 만큼 누가 이 글을 읽을까 싶기는하지만 최소한 일주일에 3번은 글을 쓰고 꾸준히 고쳐나가겠다.

 특히, 아직 공개할만한 수준이 아닌 낙서라도 일단은 공개로 설정해두려한다.

 또한 일반인을 위한 강의를 지향하는 오픈튜토리얼스에 올리기에는 너무 불친절한 글이지 않나 싶다.

 글을 완성한 다음에도 좀 더 쉽게 설명할 수 있는 방법을 고민해보겠다.

 

​배우는 것

 '전자과를 위한 프로그래밍 구조론'이라는 과목은 사실 프로그래밍 구조론에 대해 배우는 과목이 아니다. 필자는 프로그래밍 구조론이 뭔지도 모른다.

 실제로 배우는 것은 '컴퓨터 시스템의 기초'이며 C언어를 이용하여 OS와 가까운, 저수준의 프로그램을 이해하는 방법을 배우는 것에 가깝다. (사실 학기의 절반이 지나갔음에도 뭘 배웠는지 잘 모르겠다.)

 지금까지 배운 것, 앞으로 배울 것을 정리해보자면

1. 코딩을 잘 하는 법: 무작정 코딩을 시작하기 전에 프로그램을 설계 하는 법, 사용자와 프로그래머 모두에게 친절한 코드를 작성하는 법, 주석 잘 다는 법, 프로그램이 제대로 잘 작동하는지 여러 프로그램과 기술을 통해 확인하는 방법을 익힌다.

2. 지금까지 Codeblock, Dev C++, VSCode, VS 등을 이용해서 버튼 하나로 컴파일하고 실행했던 것들 너머에 뭐가 있는지 배운다. 즉, 컴파일러는 어떻게 C 코드를 기계가 이해할 수 있는 코드로 번역하는지 알아본다.

 또한 어셈블리 언어의 기초를 이해함으로써, 어떻게 컴퓨터한테 친절한 코드를 작성하는지 알아본다.

3. 컴퓨터라는 하드웨어의 패널 뒤에 무엇이 있는지, 어떻게 0과 1의 연산만으로 그렇게 복잡한 연산을 처리할수 있는지에 대해 이해한다.

 

저작권 문제

 이 모듈은 카이스트 EE209 (전자과를 위한 프로그래밍 구조론) 과목의 TDS 버전이다. (TDS: Teaching Driven Study)

학교에서 하는 수업을 기반으로 작성하는 글이기 때문에 저작권 문제가 있을 수도 있다는 생각이 들었다.  

최대한 내용을 재구성하고, 그림은 인터넷에서 찾아봐야할 것 같다.

더 알아보고, 교수님께 허락을 받아야겠다.

 

열심히 공부해보자!

 

댓글

댓글 본문
버전 관리
레트로
현재 버전
선택 버전
graphittie 자세히 보기