공부를 합니다/컴퓨터 공학 (Computer Science) (8) 썸네일형 리스트형 [K-MOOC SMU] 자료구조 (2020 1학기) 강의소개 K-MOOC에서 제공하는 상명대학교의 자료구조 강의. 학기가 실제로 진행될 떄 맞춰서 수강신청을 하면 과제 및 중/기말고사를 보고 평가를 받으면서 수강할 수 있어 훨씬 도움이 될 것으로 보인다. 이전 강의 청강도 가능하다. 제한적이긴 하겠지만 학점을 인정받는 것도 가능한 것으로 알고있다. 자료구조를 공부하기로 결정하고 학교 강의자료와 교재를 천천히 읽으면서 공부하려다 아무래도 기초과목이라 무료로 제공하는 대학 강의가 많은 편이니 도움을 받는게 좋을 것 같아 듣기로 결정했다. 강의는 KOCW에도 많았지만 과제 및 평가 항목이 있기 때문에 이번 학기 K-MOOC에서 실제로 진행중인 강의로 골랐다. 강의듣고 학교 강의자료 + 교재로 추가 학습하면서 정리글을 작성하면 좋을 것 같다. 강의주소: http.. CS50's Web Track-2 Tracks_ Web Flask 지금까지 웹 페이지를 만들고 파일로 저장해서 HTTP 서버를 통해 반환시키는 법을 배웠다. 더 나아가서, 웹 서버나 어플리케이션을 이용하면 웹 페이지의 콘텐츠를 동적으로 생성하고 제어할 수 있다. Flask and Route Python의 framework중 하나인 Flask의 다양한 기능을 사용해 웹 서버를 작성할 수 있다. Flask를 사용할 application.py파일을 만들어보자. (관습적으로 application.py를 파일명으로 사용) # Flask library를 import from flask import Flask # 객체를 Flask를 app에 할당 app = Flask(__name__) # route와 해당 route에 접근했을 때 실행될 함수를 적어.. CS50's Web Track-1 Tracks_ Web Introduction 인터넷에서 실행되는 프로그램을 만들어보기 위한 track이다. 인터넷의 기본과 어떻게 동작하는지를 먼저 배운 뒤, HTML, CSS, JavaScript와 같은 인터넷에서의 언어, 웹 페이지를 application으로 바꾸기 위한 Python에서의 framework와 SQL에 대해 배운다. HTTP 컴퓨터는 네트워크를 이용해 서로에게 메시지를 주고 받으면서 소통한다. 가장 기본적으로 메시지를 주고 받기위해 따라야 하는 규칙인 standard protocol이 존재한다. 인터넷의 standard protocol은 TCP/IP 로 Transmission Control Protocol과 Internet Protocl이다. IP Address 보다 쉽게 이해하기 위해.. CS50's Week 8_Information 8. Information A Look Back Week 1 - Week 7 강의 내용 복습 Privacy Compuper Science는 정보의 저장과 처리에 관한 것이다. 정보를 갖고 할 수 있는 것을 아는 것 만큼 해야 하는 것을 아는 것 역시 중요하다. Passwords 예를 들어 우리는 여러 계정을 보호하기 위해 '암호(password)'를 사용한다. 하지만 가장 많이 쓰이는 암호 10위는 매우 간단하다. 1. 123456 2. 123456789 3. qwerty 4. password 5. 111111 6. 12345678 7. abc123 8. 1234567 9. password1 10. 12345 더 복잡한 암호를 사용하더라도 현대의 컴퓨터는 매우 빠르게 암호를 알아낼 수 있다. 우리는 단 .. CS50's Week 7_SQL 7. SQL Spreadsheets Database는 데이터(data)를 저장할 수 있는 application으로 Google Sheets 등이 이에 해당한다. 예를들어 학생들에게 좋아하는 TV show와 장르를 물어보는 Google Form을 만들어 응답을 수집한 뒤 확인하면 spreadsheets는 다음과 같은 세 개 열의 데이터를 갖는다: "Tilestamp", "title", "genres" 이를 CSV 파일로 다운받아 python으로 데이터를 분석하는 프로그램을 작성할 수 있다. 1. 파일을 열어 각 행의 TV Show 제목을 출력 # csv library를 import import csv # filename.csv를 read 모드로 열어 file에 저장 with open("filename.cs.. CS50's Week 6_ Python 6. Python Python Basics Print Hello world를 출력하기 위한 C코드와 python코드를 비교하면 // C #include int main(void) { printf("hello, world\n"); } # python print("hello, world") Standard library를 불러들일 필요가 없다. Main function을 선언하지 않아도 된다. Print함수 끝에 줄바꿈 \n을 해주지 않아도 된다 (줄바꿈이 default). Semicolon ;을 적어주지 않아도 된다. Python은 별도의 compile을 거칠 필요가 없는 interpreted language이기 때문에 위의 코드를 hello.py로 저장하면 코드를 실행하기 위해 바로 python hell.. CS50's Week 5_ Data Structures Pointers memory가 할당되지 않은 포인터 변수 int main(void) { int *x; int *y; x = malloc(sizeof(int)); *x = 42 *y = 13 // buggy! } x에는 malloc을 이용하여 memory를 할당해 주었지만 y에는 해주지 않았기 때문에 y의 주소로 가 13을 대입할 수 없다. Resizing arrays Array로 사용되는 memory는 인접(side-by-side)해있기 때문에 arrays의 크기를 늘리고 싶으면 바로 옆의 memory를 array에 추가해야 한다. 이 memory를 이미 다른 data가 사용하고 있을 수가 있으므로 다른 memory를 이용해 크기를 재정의 할 방법을 찾아봐야 한다. 공간에 여유가 있는 다른 영역으로 가 .. CS50's Week 2_Arrays 2. Arrays Compiling 우리가 C언어로 작성한 source code를 컴퓨터가 실행시키기 위해서는 2진법의 machine code로 compile 해야한다. Source code를 machine code로 compile하는 과정은 몇 단계로 나누어져있다: preprocessing compiling assembling linking Preprocessing 가장먼저 preprocessing은 #include처럼 #으로 시작하는 line에 관련되어있다. 예를 들어, #include 는 clang에게 현재 프로그램에 사용할 콘텐츠를 포함하고있는 header file을 찾으라고 하는 명령으로 clang이 header file의 콘텐츠를 현재 프로그램으로 가져오게된다. // Before preproc.. 이전 1 다음