Love Every Moment

〔CS50 / C언어〕 네이버 부스트코스 코칭 스터디 2기; 컴퓨팅 사고(Computational Thinking) 본문

PROGRAMMING::LANGUAGE/C

〔CS50 / C언어〕 네이버 부스트코스 코칭 스터디 2기; 컴퓨팅 사고(Computational Thinking)

해 송 2021. 1. 15. 00:16
반응형

 

 

 

하버드 대학에서 제공하는 무료 온라인 컴퓨터 프로그래밍 입문 강의 CS50 !

비전공자에 코딩에 대해 문외한이었기 때문에 C언어를 기초부터 배우고 싶어 본 강의를 수강하게 되었다.

마침 네이버 부스트코스에서 온라인 스터디를 모집하고 있어서 신청하였고 일주일 전에 선발되었다는 연락을 받았다.

부스트코스 코칭 스터디 2기에서는 기본적으로 CS50 강의를 통해 스스로 학습하는 것을 기본 전제로 하면서 매주 라이브 강의와 조별 미션을 진행할 예정이다. 

아무래도 오프라인 스터디보다 활발한 소통이나 시너지는 기대하기 어렵겠지만 완전히 혼자서 공부하는 것보다 함께 공부하는 사람들이 있다는 것만으로 서로 힘이 되어주는 것 같다.

블로그에는 매주 강의를 수강하면서 내용 요약과 실습 과정에서 헷갈렸던 부분 등을 기록해보려고 한다.

 

 

 

CS50's Introduction to Computer Science

An introduction to the intellectual enterprises of computer science and the art of programming.

www.edx.org

 

 

1. 2진법

비트(bit) = 컴퓨터가 2진법으로 하나의 자릿수를 표현하는 단위

바이트(byte) = 8 비트(bit)

1 바이트는 8비트로 이루어져 있고 1비트는 0 또는 1의 값을 저장하므로 2^8=256개의 서로 다른 바이트가 존재한다

 

Q: 숫자 10을 2진법으로 표현하기 위해서 최소한으로 필요한 비트의 개수?

A: 8비트

 

 

2. 알고리즘

컴퓨터가 입력값을 출력값으로 바꾸기 위해 따르는 일련의 절차

input → algorithm → output

 

Q: 총 512페이지의 전화번호부에서 '김코딩'은 64페이지에 있습니다. 책의 절반씩을 찾아보는 두 번째 알고리즘을 사용한다면, '김코딩'을 찾기 위해 페이지를 몇 번 찾아봐야 할까요?

A: 3번

 


 

CS50 Sandbox 사용 방법 예습하기

 

CS50 Sandbox

Temporary programming environments for students and teachers.

sandbox.cs50.io

 

다음 강의부터 본격적으로 C언어를 다루기 시작하면서 실습에 유용하게 사용될 샌드박스 이다.

수강생들이 강의에서 배운 내용을 연습하기 편하도록 필요한 기능들을 이미 라이브러리에 저장한 상태이다.

초보 학습자를 위해 구축한 임시 프로그래밍 환경이라고는 하지만 사용법이 정말 낯설어서 익숙해지려면 시간이 조금 걸리겠지만 계속 연습하다보니 재미가 있다.

 

 

1. $ 

아래에 있는 터미널 스크린에서 문장 처음에 깜빡이는 '프롬프트'는 새로운 커맨드 라인을 입력하라는 것을 의미한다.

 

2. //

다른 사용자가 자신이 작성한 코드를 이해하기 쉽도록 주석을 달 때에 사용하며 그 자체로 아무런 기능도 하지 않는다.

 

3. clang

사람의 언어인 source code 를 컴퓨터가 이해하는 0과 1로 이루어진 machine code 로 변환하는 컴파일러 이다.

보통 소스코드는 hello.c 처럼 파일명 뒤에 .c 가 붙어있고 머신코드에는 없다.

기본적으로 컴파일한 파일명은 자동으로 a.out 이 되지만 -o hello 와 같은 명령어를 통해 쉬운 이름으로 변경 가능하다.

 

4. -l

두 개 이상의 라이브러리를 필요로 할 때에 사용하는 명령어로 추정된다.

첫 번째 실습 과정 중에 #include <stdio.h>  #include <cs50>  두 개의 라이브러리를 포함시켰더니 인식하지 못하는 오류가 생겨 스택 오버플로우에 검색하여 해결 방법을 알게 되었다.

clang hello.c -lcs50 이런 식으로 뒤에 나오는 라이브러리를 link 하라는 의미로 쓰이는 것 같다.

 

5. ./ 

바로 뒤에 언급된 머신코드 파일을 실행하라는 의미이다.

 

6. 터미널 창에서 커맨드 라인 한번에 지우기

clear 를 입력하거나 ctrl + l 버튼을 동시에 누르면 터미널 창을 깔끔하게 지울 수 있다.

 

7. 기본 작성 틀

#include <라이브러리 이름>

 

int main(void) 

{

printf("출력하고자 하는 문장\n");

기타 함수 ...

}

 

스크래치로 처음 만들어본 단순 유치한 게임 :)

 

컴퓨터 코딩 프로그래밍 교육

반응형
Comments