Programming/CS50
-
하버드 CS50 프로그래밍 입문 강의 수강 가이드 및 수강 후기Programming/CS50 2023. 9. 4. 12:20
하버드 CS50 강의 수강 방법과 상세한 후기를 다룹니다.edx, havard CS50 공식 사이트, 네이버 부스트코스의 CS50 모두를 위한 컴퓨터 과학 강좌 등 여러 수강 방법을 소개합니다.수강 환경에 대한 설명과 윈도우 유저를 위한 여러가지 팁을 제공합니다.입문자부터 경험자까지 CS50 수강을 고민하시는 분들을 위한 가이드를 제공하고자 합니다.수강 방법edx에서강의 수강 신청이 가능하다. Linkedin 같은 데 올릴 수료증/인증서가 필요하다면 수강 등록을 하고 수강하자.수강 신청을 하지 않아도 된다. 나는 마음대로 듣고 싶어서 일부러 하지 않았다.하버드 CS50 공식 사이트에서 강의 보기, 강의 노트 열람, 필요한 과제와 자료 확인이 가능하다. 사이트가 정말 잘 되어있다. 관심 갖고 탐색할 가치가..
-
CS50 Week8: Lab8, TriviaProgramming/CS50 2023. 7. 26. 20:33
하버드 CS50 강의 8주차 Lab 과제 Trivia 의 풀이를 다룹니다.가벼운 상식 퀴즈를 내는 웹 사이트를 만드는 과제입니다.HTML, CSS, JavaScript를 사용하여 정적 웹 페이지를 만들어야 합니다.퀴즈를 내고 정답 여부에 따라 피드백을 남기는 기능을 구현해야 합니다.Task Requirements코드 템플릿이 주어져있다. Trivia! Part 1: Multiple Choice Part 2: Free Response ..
-
CS50 Week7: Problem Set, MoviesProgramming/CS50 2023. 7. 23. 20:00
하버드 CS50 강의 7주차 Problem Set 과제 Movies 의 풀이를 다룹니다.IMDb 데이터베이스를 기반으로 한 간단한 SQL 연습 문제 입니다.JOIN을 쓰는 방법과 IN 서브쿼리를 쓰는 방법 등 다양한 방법으로 풀고 비교해보았습니다.Schema테이블 구성은 아래와 같다.CREATE TABLE movies ( id INTEGER, title TEXT NOT NULL, year NUMERIC, PRIMARY KEY(id) );CREATE TABLE stars ( movie_id INTEGER NOT NULL..
-
CS50 Week7: Lab7, SongsProgramming/CS50 2023. 7. 22. 22:12
하버드 CS50 강의 7주차 Lab 과제 Songs 의 풀이를 다룹니다.SQL을 사용하여 데이터베이스를 확인하는 간단한 과제입니다.풀이와 함께 SQL에서 다른 테이블 값을 참조해야 할 때 쓸 수 있는 두 가지 방법, JOIN 과 IN 서브쿼리를 써서 비교해보았습니다.Code1.sqlSELECT name FROM songs;2.sqlSELECT name FROM songsORDER BY tempo;3.sqlSELECT name FROM songsORDER BY duration_ms DESCLIMIT 5;4.sqlSELECT name FROM songsWHERE danceability >= 0.75AND energy >= 0.75AND valence >= 0.75;5.sqlSELECT AVG(energy) ..
-
CS50 Week6: Problem Set, DNAProgramming/CS50 2023. 7. 21. 15:07
하버드 CS50 강의 6주차 Problem Set 과제 DNA 의 풀이를 다룹니다.DNA 검식 결과를 바탕으로 사람을 찾아내는 과제입니다.csv 데이터를 다루기 위해 파이썬의 판다스 라이브러리를 사용한 풀이입니다.Task$ python dna.py databases/large.csv sequences/5.txtLavenderCode예전에 학교 수업에서 판다스를 써본 적이 있어서 이번에도 써 봤다. import sysimport pandas as pddef main(): # TODO: Check for command-line usage if len(sys.argv) != 3: print("Usage python dna.py data.csv sequence.txt") s..
-
CS50 Week6: Problem Set, CreditProgramming/CS50 2023. 7. 19. 01:22
하버드 CS50 강의 6주차 Problem Set 과제 Credit 의 풀이를 다룹니다.C언어로 작성했던 같은 프로그램을 Python으로 다시 작성해보는 과제입니다.Python의 String Slice와 정규식을 활용하여 풀이했습니다.Task이전에 C로 구현했던 문제를 똑같이 python으로 재구현하는 문제Implementation입력 받기while True: card_num = input("Number: ") if card_num.isdigit(): break이번에는 입력을 string으로 받았다. 이후 조작이 더 편리하다.Luhn's 알고리즘def is_valid_luhn_checksum(card_num): checksum = 0 for digit in card_nu..
-
CS50 Week6: Problem Set, MarioProgramming/CS50 2023. 7. 18. 23:33
하버드 CS50 강의 6주차 Problem Set 과제 Mario 의 풀이를 다룹니다.C언어로 작성했던 간단한 프로그램을 Python으로 다시 작성해보는 과제입니다.Task이전에 C로 구현한 과제를 이번엔 python으로 똑같이 구현하면 된다. Codewhile True: height = int(input("Height: ")) if height > 0: breakfor i in range(1, height + 1): print(f"{'#' * i: >{height}}" + " " + f"{'#' * i: 파이썬의 f-string이 엄청 강력해서 훨씬 간단하게 구현할 수 있다.f"{value: format}" 형식으로 쓰면 된다. > 는 정렬을 의미한다.C 코드 (비교용)..
-
CS50 Week6: Lab6, World cupProgramming/CS50 2023. 7. 18. 23:11
하버드 CS50 강의 6주차 Lab 과제 World Cup 의 풀이를 다룹니다.Python으로 작성한 FIFA 월드컵 시뮬레이션 프로그램입니다.Task문제 링크에서 자세한 내용을 확인할 수 있습니다.프로그램 실행 예시$ python tournament.py 2018m.csvBelgium: 20.9% chance of winningBrazil: 20.3% chance of winningPortugal: 14.5% chance of winningSpain: 13.6% chance of winningSwitzerland: 10.5% chance of winningArgentina: 6.5% chance of winningEngland: 3.7% chance of winningFrance: 3.3% chance..