[음악 연주] 알았어요! CS50가 아냐. CS50가 아냐. CS50가 아냐. [MUSIC - IGGY AZALEA, "팬시"] CS50에서 - 내 마음에 드는 메모리 내가 일을 퍼즐 갔을 때였다. -Probably 단지 시간 문제 세트에서 작업하는 동안 고원 제 친구들과 사람들과 결국 내 blockmates된다. 에서 - 내 최고의 메모리 CS50은 핵킹 마라톤입니다. 년 - CS50 핵킹 마라톤. -Hackathon. -Hackathon. -Hackathon. 년 - 핵킹 마라톤 보덴를 -Rob. 그에 대해 모든 걸. [MUSIC - IGGY AZALEA, "팬시"] I가 때 - 내 마음에 드는 메모리입니다 무대와 나는 권위있는 역할을 노드 [의? 링크에서?] [? 목록. ?] 우리 모두가 무료 보관 용 공간을 가지고 언제와 다윗은, 마치 당신의 자리에서 봐. 그리고 그것은 모든 사람을위한 공간 같았다! [MUSIC - IGGY AZALEA, "팬시"] 어떤위한 - 내 조언 들어오는 학생 것 정말 작업 할 수 친구와 함께 P-설정합니다. - 사무실 시간은 매우 당신의 친구입니다. 당신의 경험의 대부분을 가로 지른다 당신이 할 수와 많은 사람들을 만난다. 도움을 요청하는 것을 두려워 하지마. 주 초에 P-세트를 나가요. - 난 가장 큰 일이에 생각 모든 자원을 활용 그 CS50가있다. 주 초에 사무실 시간 에나. 정확히, 반바지보세요. 당신의 P-세트에 미루지 마. 당신은 훌륭한 그룹을 찾을 수 있는지 확인하여 사람들과 P-세트에서 작동합니다. 당신은 많은 즐거움을 가질 수 있습니다 작업을 함께 수행 얻는다. 자신을 밀어 두려워 하지마. 때때로 해커 에디션에 대한 이동합니다. 종이에 쓰기에서 일하기 전에 당신은 컴퓨터를 누릅니다. -CS50는 정말 대단한 도움을받을 수있는 방법을 제공한다. 조언 - ​​내 한 조각 잠이다. 아무도 그런 말을 했습니까? 확실히 수면. 그것은 수행하지 쉽게하지만, 당신이 그것을 할 수있어, 나는 생각한다. - 난 정말 정신적으로 준비 말할 것 당신이 그것을 좋아 할거야 때문이다. [MUSIC - IGGY AZALEA, "팬시"] CS50가 아냐. CS50가 아냐. CS50가 아냐. [MUSIC - IGGY AZALEA, "팬시"] CS50가 아냐. [박수] 데이비드 J. 마란 : 그래서이 CS50입니다 이것은 주 0의 단부이다. 그리고 그것은 단지 일부를했다 CS50 직원의 사람 당신뿐만 아니라 절에서 기다리고 있습니다 사무실 시간, 그러나, 또한, 오는 주말 CS50 퍼즐의 날. 이는, 다시, 아니다 모든 프로그램에 대한 정보가 포함되어 있습니다. 실제로, 그것은 당신 것으로 예상거야 어떤 프로그램을 할 필요가 없습니다, 오히려 사용하여 문제를 해결 당신과 함께 순발력과 친구. 우리는 몇 가지에 합류한다 Facebook--에서 우리의 친구의 만일 여러분이 등록을하면 누구 지난 몇 년 동안, 실제로 쓰고있다 우리와 함께 이러한 문제. 그래서, 그들은 사람이 될 것입니다 궁극적으로 퍼즐의 날 실행. 그래서, 당신은 도전한다 사물의 정확한 종류 문제 그 사람에 페이스 북에 대해 생각하고 싶다. 그래서 내일입니다. cs50.harvard.edu/register에 등록합니다. 부부 이제 단어 특히 직원. 이 여기에, 안젤 더프입니다 누가 실제로는 하나입니다 이러한 이진의 공동 저자의 우리가 수요일에보고 전구, CS50 자신 댄 브래들리 이외에. 안젤 더프도 전이었다 내 신입생 advisee 삼년 전 그는 실제로도이 성서를 만들었습니다. 그는 수행하는에 사라 졌어요 공학 과학 및 더 많은 것. 지금, 여기에서 그의 그림은 실제로 CS50 핵킹 마라톤에서 삼년 전 안젤 그는 중 하나를 차용 할 때 우리 풍선, 자신의 노트북에 붙어 하고, 12 다음 몇 가지 이상한에 대한 시간, 자신의 마지막 프로젝트에 집중 복용 중단은 엽니 다 핵킹 마라톤에서 사탕 가방. 그러나 그는에 최근에 갔다 우리와 함께 지난 여름을 보내고, 직원에 대한 CS50, 이후 지금은 학생들이 학기, 자신의 3D 프린터가 있습니다. 그리고 간단히 말해서 3D 프린터입니다 꽤 같다 장치. 당신은 플라스틱 스풀와 그것을 채우기 그는 장치에 의해 붕괴된다 당신은 물건을 구축 문자 그대로 무에서 유. 많은 잉크젯 프린터처럼, 당신은 시작 플라스틱의 작은 점을 침 그 양식을 함께에 전체 개체를 형성한다. 그리고 예를 들어 너무 안젤 이전 이번 여름, 아이폰 5가 그는 정말 원 했겠죠 그의 책상에 그것을 지탱합니다. 그러나 그는 싶지 않았다 나가서 물건을 사기 애플 스토어 등, 그래서 그는에서 앉아서 뭔가를 그리기 시작했다. 그는 몇 가지 측정을했다 에 같은 방법 두께 그의 아이폰의 폭을했다, 그는 여기에이 이미지를 그린 그는 자기가 원하는 결정 75도 경사를 가지고 그것을 쳐다보고 된로 거기에 그의 책상에 그. 그 후 사용이 설정되어 3 차원 CAD 모델로 소프트웨어 그건 좀 보았다 이런 식으로 뭔가. 그리고 그는 계속, 궁극적으로, 실제로 그것을 만들 수 있습니다. 그래서 사실, 여기의 경우, 아마도 내가 가지고있는, 던질 수있는 행 이나 ... 그런 거기에 우리는 아이폰을 가진 사람들이 오, 여기에서 우리는 두 가지 더있다. 자, 이제 CS50 자신, 이에 질 세라 쳉 공은 이번 여름에 명시된 꽤 몇 가지 등을 구축, 사실, 여전히 이유로 분명, 천천히있다 코끼리의 군대를 인쇄 분명히 말하는 팔과 줄기. 몇 여기 경우 실제로 누군가는 지금 코끼리를 라니 것이다. 좋아. 하지만 쳉은 무슨 짓을했는지 우리는 그가 매우 친절하게 카메라 설정 그 코끼리 때문에, 믿거 나 말거나, 소요 몇몇이와 반 시간은 인쇄합니다. 심지어 아이폰 스탠드했다 한 시간 반이 인쇄합니다. 그리고 쳉 나서서 무슨 짓을 앞에 좋은 카메라를 설정했다 이 3 차원 프린터, 촬영 시간 동안 와 안젤의 디자인과 같은 반 인쇄. 우리는 약간의 섹시 겹쳐 그것을 음악을 위해 보고 당신에게 주라 3D 프린팅이 어떻게 작동하는지. 심지어이 비록 실제로 플라스틱에 실현이 지역의 경우 해당 학문적으로 당신의 관심, 사람들은 사이가 여기에 제니퍼 루이스 의 학교에서 실제로 공학, 3D 프린팅 작업 플라스틱 개체입니다. 그러나 심지어 점점 생물학적 물질은 해결하기 인간에 ​​대한 생리 학적 문제. 하지만, 여기에 조금이다 CS50에서 뭔가. [LOUD 기계 소리] 데이비드 J. 마란 : 그것은 소리가 나지 않습니다 현실에서 그런 건, 하지만 그것을보고하는 것이 훨씬 낫지 그 속도로, 그 소리와 함께. 이제 수요일에, 어떻게 우리가 처음 여기에 도착 했습니까? 우리는 컴퓨터에 대해 말하기 시작 과학, 우리는 그것이 무엇인지 물었다. 그리고 그것은 사물의 숫자에 대해 그리고 이렇게 많은 다른 방향이있다 하는 당신은 머리를 수 CS50 같은 과정 후. 사실, 당신이 집어 경우 일 이러한 비공식 가이드 CS의 외부 책자에 그 우리는 당신이있어 여부, 제공 한 단지 CS50를 복용 생각, 아니면 2 차를하고 또는 어쩌면 집중 CS에 해당 넘겨 않습니다. 그리고 당신은 그림을 볼 수 있습니다 끝을 향해 그 당신에게 많은 다른 방향을 보여줍니다 CS에 당신은에 떨어져 갈 수 있습니다. 그러나 오늘, 우리는에 다시 초점을 것입니다 정말 기본보기 중 하나, 아마, 어디를 문제 입력, 당신은에서 출력이 문제는, 당신은이 만드는을 가진 알고리즘 그 입력에서 해당 출력을 제공한다. 그리고 하나의 예는,이었다 물론, 여기이 전화 번호부. 그리고 우리는 갈 예제로 사용 정확 알고리즘을 통해. 그리고 또 다른 하나였다 올바른하지만, 좀 더 빠르게. 그리고 조금 다른 하나였습니다 더 극적인 있지만, 근본적으로 빨리. 오른쪽이 전화 번호부 우리 주장은 약 1000 페이지를했다. 그리고 얼마나 많은 시간을 내가 가지고 있었다 반에서 전화 번호부를 찢어 마이크 스미스 같은 사람을 찾아, 최대로, 1000 페이지의 책? 그래서, 10 정도일. 그래서 한 번 나는이 일을 찢고 반하거나, 더 성숙한, 반으로 나누어, 그것은 단지이다 1,000 중 10 페이지를 참조하십시오. 그리고 당신은, 조금 추정하는 경우 비현실적으로 전화 번호부를 들면, 하지만,이 전화 번호부는 일부 사이 있다면 거기에 억 페이지, 그래서 완전히 다루기 힘든 육체적으로 얼마나 많은 시간은 당신은 4000000000를 분할 할 반 페이지 전화 번호부? 그래서 지려면 실제로 32입니다. 그래서 32 시간 만 밖으로 4000000000 페이지 수, 당신은 마이크 스미스 같은 사람을 찾을 수 있습니다. 그리고 그 효율성이다. 즉 daresay, 좋은 알고리즘입니다. 그러나 우리는 그에서 이동 를 공식화하려고합니다. 그리고 나는이 의사 코드를 제안했다. 의사 코드는 공식적으로 아무 것도 없습니다. 그것은 당신이 기억할 게 아니에요. 그것은 당신이 표현 그냥 뭔가 상당히 직관적으로, 영어를 사용하여 또는 언어 정말 그 간결하게 당신의 아이디어를 전달한다. 그러나 대한 주요거야 의사 코드는 것입니다 모든 예측하려고 발생할 수있는 가능한 경우. 그리고 실제로,이 의사의 코드, 정말 삼가지 경우가 있었다 때마다 나는 전화 번호부를 나누었다. 마이크는 왼쪽에있을 수 있습니다. 마이크는 오른쪽에있을 수 있습니다. 아니면 지금 할께 페이지 오른쪽에있을 수 있습니다. 아니면 네 번째 코너의 경우는, 말하자면. 나쁜 시나리오는 하나가 될 수 있습니다 그게 ... 무슨 일입니까? 마이크는 단지 아니에요 전화 번호부에있는 모든. 그리고 프로그램은 때 crash-- 때 맥 너희들이 실행 및 PC 소프트웨어 컴퓨터에 가끔 , 중단 또는 예기치 않게 종료 즉, 일반적으로 어떤 것을 의미 프로그래머, 곧 같은 일부 인간, 그냥 나사와 몇 가지 실수를했다. 어쩌면 어쩌면이 그렇게 예상하지 않았다 전화 번호부에는 마이크 스미스는 없다. 그리고 당신은 실제로 작성하지 않는 경우 코드는 그런 상황을 처리하기 위해, 일반적으로 예측할 수 일이 발생할 수 있습니다. 당신의 컴퓨터는 고정 할 수 있습니다. 그것은 재부팅 할 수 있습니다. 이 프로그램은 종료 할 수 있습니다. 그리고이 모든 어리 석음 당신이 수도 실제에서 발생했습니다 인생은 그냥 컴퓨터를 사용 점점 단지 것 이 직관에 의해 멀리 설명 그리고 무엇의 이러한 이해 실제로 후드 아래에 간다. 이제 살펴 봅시다 보다 일반적인 문제에. 수행하기보다는 장소에 출석 등 이것은 매우 느린 것이다 하나, 둘, 셋, 넷을 수행한다. 아니면 둘, 넷, 여섯, 여덟. 의가에 대신 집중하자 우리는 공식화하는 방법 프로세스의 알고리즘에 의하여 이는 우리가 출석을 할 수 있습니다. 그리고 그 길을 따라, 시작하자 일부 용어를 적용 때 실제로 우리는 우리가 오늘을 사용하고 있다고 언어로 프로그래밍을 시작. 그래서, 지금 사분 비디오를 당신을 줄 우리는 우리의 친구와 함께 넣어 그 TED, 조직. 우리가 스크립트를 제공하고있다 그들은 곰 자신의 애니메이터를 가져 실제로 2D를 생성 알고리즘이 무엇인지의 애니메이션. 우리는 조명을 할 수 있다면. [음악 연주] 내레이터 : 알고리즘은 무엇입니까? 컴퓨터 과학에서, 알고리즘 세트입니다 지시 사항의 해결 일부 문제점 단계별. 일반적으로 알고리즘은 컴퓨터에 의해 실행, 그러나 우리 인간은 물론 알고리즘을 가지고있다. 예를 들어, 방법은 것 당신은 계산에 대해 이동 방에있는 사람의 수? 나 같은 경우 글쎄, 당신은 아마 좋겠 한 번에 각 사람 하나를 가리 제로로부터 계산합니다. 하나, 둘, 셋, 넷, 등. 글쎄, 그건 알고리즘입니다. 사실,의​​이 표현 해보자 의사 코드에서 형식적 비트. 영어와 같은 구문이 프로그래밍 언어를 닮았다. 하자 n은 0보다 크거나 같습니다. 방에 각 사람의 경우, 하나 N 플러스 N과 동일하게 설정. 어떻게 의사를 해석하는 방법? 라인 하나를 선언 글쎄, 그래서 변수를 말하자면 라는 n 및 초기화 될 0이 그 값 단지 의미에서 우리의 알고리즘의 시작, 우리가있어있는 것은 카운트는 0의 값을 갖는다. 우리가 시작하기 전에 모든 후, 계산 우리는 아직 아무것도 계산하지 않았습니다. 이 변수를 호출 N은 대회이다. 나는 대부분의 아무것도를 호출 할 수 있었다. 지금이 demarks 라인 루프의 시작, 일련의 단계 것 시간의 일부 번호를 반복합니다. 이 예에서 그래서, 단계 우리는있어 복용 방에 사람을 기대하고있다. 줄 아래에 두 줄입니다 설명 세 우리가 정확히 계산에 대해 갈거야 방법에 대해 설명합니다. 들여 쓰기는 것을 의미한다 그것은 반복 할 것이다 선 셋입니다. 의사 코드가 너무 말은 후가 0에서 시작하는 것입니다 각 사람 방 우리는 N을 1만큼 증가합니다 지금이 알고리즘은 정확합니까? 음의 그것에 조금 세게 할 수 있습니다. 이 있다면 그것은 작동합니까 방에 이명? 어디 보자. 줄 하나에 우리는 공에 N 초기화합니다. 이러한 이명 각각에 대해, 우리는 그 다음 N을 1만큼 증가. 를 통해 첫 여행에서 그래서 루프, 우리는 0-1 N을 업데이트합니다. 그 통해 두번째 여행 같은 루프, 우리는 1-2 N을 업데이트합니다. 그래서 별이 알고리즘의 결국, n은 2 인 실제로 번호와 일치 방에있는 사람들의. 지금까지 너무 좋아. 어떻게 생각 코너의 경우는 어떻습니까? 0 명 존재한다고 가정 나 외에 room--에있는 사람은 누군가 계산을하고. 선 하나, 우리는 다시 공 n을 초기화합니다. 하지만이 시간, 선 셋은 전혀 실행되지 않습니다 방에있는 사람이 없기 때문이다. 그리고, n은 참으로 일치하는, 0을 유지 방에있는 사람의 수. 아주 간단 하죠? 그러나 한 번에 한 명을 계산 아니, 너무, 매우 비효율적이다? 확실히 우리는 더 잘 할 수 있습니다. 왜 한 번에 이명을 계산하지, 대신 카운트 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱, 팔, 등. 왜 계산하지 2, 4, 여섯, 여덟, 등등? 그것은 더 빨리 소리. 그리고 그것은 확실히이다. 의이 최적화를 표현하자 의사 코드. 하자 n은 0보다 크거나 같습니다. 사람들의 각 쌍 들면 룸, N 설정에서 n 플러스 2와 동일. 아주 간단한 변경, 오른쪽? 한 번에 사람들이 하나를 계산하는 것이 아니라, 우리는 대신에 한 번에 두를 계산합니다. 이 알고리즘의, 따라서 마지막으로 두 배 빠르게. 그러나 그것은 올바른? 어디 보자. 이 있다면 그것은 작동합니까 방에 이명? 선 하나, 우리는 공에 N 초기화합니다. 사람의 한 쌍의 경우, 우리는 다음 2 N을 증가. 그리고이 알고리즘의 별 단, n은 2 인 실제로 번호와 일치 방에있는 사람들의. 이 있다는 것을 다음 가정 방에 제로 명. 줄 하나에 우리는 공에 N 초기화합니다. 이전과 마찬가지로, 선 셋 모든 것을 실행하지 않습니다 사람들의 쌍가 아니기 때문에 방에, 그래서 n은 0 남아있다. 어떤 사실과 일치 방에있는 사람 수. 그러나이있는 경우 방에 삼명? 어떻게이 알고리즘 요금을합니까? ,의 줄 하나에, 보자 우리는 공에 N 초기화합니다. 그 사람들의 한 쌍의 경우, 우리는 다음 2 N을 증가. 그러나 무엇? 다른 전체 없다 방에 사람들이 쌍, 그래서 선이 더 이상 적용되지 않습니다. 그리고이 알고리즘의 말에, 여기서 n은 정확하지 않은 어떤 여전히이있다. 실제로이 알고리즘의는 말했다 이 실수를 가지고 있기 때문에 버그가 수. 일부하자 구제 새로운 의사 코드입니다. 하자 n은 0보다 크거나 같습니다. 사람들의 각 쌍 들면 룸, N 설정에서 n 플러스 2와 동일. 한 사람이 짝이 남아있는 경우, 하나 N 플러스 N은 동일하게 설정. 이 특정 문제를 해결하기 위해, 우리는했습니다 4 번 조건에 도입, 그렇지 않으면로 알려진 지점 만이 실행 한 사람이 있다면 우리 다른와 페어링 할 수 있습니다. 그리고 지금, 여부 하나 또는 셋있다, 또는 실내에있는 사람들의 모든 홀수 이 알고리즘은 지금을 계산합니다. 우리는 더 잘 할 수 있습니까? 글쎄, 우리는 열로에 셀 수, 또는 발로, 또는 파이브와 수십 하지만 그 이상, 그것을 얻을 것 약간의 문제가 지적합니다. 하루의 끝, 여부에서 컴퓨터 또는 인간에 의해 실행, 알고리즘은 아르 명령들의 세트 있는 문제를 해결합니다. 이 단지 세였다. 어떤 문제가 당신 것 알고리즘으로 해결? 데이비드 J. 마란 : 그래서 의도적으로, 매우 간단한 프로그램 매우 간단한 알고리즘 무언가를 달성하기위한 아주 간단한 계산 방에있는 사람 수. 그러나의 떨어져 애타게하자 대표의 일부 실제로이 여기 있습니다 경우에도 유용 할 것 대부분의 구현 복잡한 소프트웨어. 그래서 예를 들어, 첫 번째 줄에, 우리는 우리가 변수라고하는 건데요, 대수학에서, 당신은있어 일반적으로 익숙한하여 X 및 Y 및 z 때때로, 등. 그러나 프로그래밍 변수 하루의 끝에, 여전히, 매우 유사합니다. 그러나 그것은 생각하는 아마 간단 단지 컨테이너로 변수의. 그리고, 실제로, 일부 비트 수있어 하드 디스크에 어떻게 든 구현 또는 컴퓨터의 메모리에, 미래에 그에하지만 더. 그냥 컨테이너입니다. 그리고 당신이 뭔가를 말한다면 같은하자 n은 0과 동일, 물론 그이 유리를 호출처럼 그릇 여기에 N, 단지 임의의 이름, 그리고 처음에에 아무것도 넣어하지 않습니다. 이 값 그래서 그릇은 지금은 제로입니다. 물론 당신이 인식하는 경우 후속 라인, 실제로 일부 라인을 증가합니다 코드, 여기이 세 번째 줄에서와 같이, 일에 의해, 그 무슨 말처럼 N의 현재 값, 그것은 공이다, 플러스 1, 같은 것을 넣어 핑은 여기에 공을 탁구. 이의 지금 가치 변수는 매우 간단 하나입니다. 그리고 당신은 매우 신속하게 추정 할 수 하지만 지금은 지금은 그래서 3, 그리고, 2입니다. 그래서 모든 변수가 있습니다. 그것은에 저장 먹기 실제로 일부 데이터를 저장합니다. 지금은 탁구 공입니다. 거기는 숫자입니다. 하지만 단어가 될 수 맞춤법 검사기와 같은 사전 나는을 위해 수요일에 언급 작년의 문제 세트 중 하나. 이제 또 다른 핵심 아이디어, 마찬가지로 그 내가 주장하는 것이 매우 직관적이다 루프의입니다. 그 과정에서 루프 계산 모두의 동일한 하 물론, 다시 일 및 again-- 중 하나 한 번에 두 번 또는시. 그리고 당신은 영어에서 이것을 표현, 또는 수 의사 코드는 임의의 수의 방법으로, 하지만 "에 대한"이 전치사를 사용하여 그 일을 매우 일반적인 방법입니다. 방에 각 사람의 경우,이 작업을 수행. 다시 다시. 그리고 사실은이 있다는 들여 쓰기, 줄 세, 단지 무엇을 의미합니다 당신은 할 거 야 들여 쓰기있어 물건입니다 라인이 자체 이하. 그냥 인간의 규칙, 하지만 일반적인 일 우리는 실제 이상에서 살펴 보 겠지만 레벨 프로그래밍 언어. 이제 좀 더 재미입니다 당신은 코너의 경우에 얻을 때. 예를 들어, 코너 사건은 때가 , 삼명, 또는 다섯 또는 일곱이었다 또는 실내에있는 사람들의 모든 홀수 조로 브레이크에 의해 그 일 때문에 결국 가고 있기 때문에 에 하나, 사람을 그리워합니다 맨 처음 또는 맨 마지막 당신이 그것을 할 방법에 따라. 그리고, 지금은이 지점을 가지고, 또는 조건은 한 사람이 남아있는 경우 다음 가서 그 일을 처리 하지 않았다 외로운 사람 다른 사람과 짝. 그래서 우리가 전화했을 일 조건 또는 지점. 이제 의사 코드 보다 일반적으로 할 수 있습니다 임의의 수의 문제를 해결하기 위해 기록. 그리고 내가 생각했던 우리는 거라고 여기에서하는 것은 시간이 걸릴 것입니다 초대 우리는 CS50 년대 말한다 무대에서 롭 보덴를 소유 이 자원 봉사자들에 의해 결합되는, 누가 기다리고 생각이 없다. 나는 그 말대로 손을 즉시 내려 갔다. 방법에 대해 당신에 업 어서 여기서 끝나지. 그리고 방법에 대한 멀리에서 멀리 어떻게 다시 방법에 대한 정보가 포함되어 있습니다. 다시 행, 손을 위로 올라가서. 좋아, 당신의 이름은 무엇입니까? 아니타 : 아니타. 데이비드 J. 마란 : 아니타. 좋아, 만나서 반갑습니다. 내가 롭 보덴을 소개하겠습니다. 이 아니타이다. 그리고 당신의 이름은 무엇입니까? KIERSTEN : Kiersten 데이비드 J. 마란 : Kiersten. Kiersten가 올라 와서 롭 보덴와 아니타을 충족. 만나서 반가워요. KIERSTEN : 만나서 반가워요. 데이비드 J. 마란 : 좋아, 롭. ROB 보덴 : 만나서 반가워요. 데이비드 J. 마란 : 아니타. KIERSTEN : 안녕하세요 아니타. 데이비드 J. 마란 : 그리고 당신의 수백 친구들. 그래서 지금 내가 가서 좀 해보자 여기에 그냥 간단한 프로그램까지 맥 OS에 그 날을 드리겠습니다 실제로 몇 가지 메모를 적어. 너희들이 각각 원한다면을 거기에있는 학교 중 하나에 위치, 내가 가서하자 목록을 시작합니다 의사 코드의 경우는 것입니다. 그리고 내가 여기서 무엇을하고 싶은지, 궁극적으로 당신을 위해 유형 몇 가지 지침이 우리를 관객은 실제로 우리를 위해 암송 것. 내가 앞서 그냥 가자 번호 매기기 목록으로 변경 우리가 거​​기까지 뭘하고 있었는지와 일치합니다. 그리고 함께 할 건지 당신의 도움은 프로그램을 작성하다 의사에서, 어떤과 이 사람은 가고 땅콩을 구현하는 버터와 젤리 샌드위치. 그래서에 아마 때마침입니다 당신의 일부를 뭔가 보여 인터넷에서 본 적이 있습니다 그냥 간단한 짜증나는 순간. [MUSIC BUCKEWHEAT 소년, "땅콩 버터  JELLY TIME "] 데이비드 J. 마란 : OK. 그만하면 충분 해요. 그래서 여기에 그 사이에, 내가 가진 구글 안경 쌍있는 우리는 CS50 자신의 롭 보덴에 올려 놓을 게요 그의 눈을 통해 세상을 볼 수 있습니다. 그리고 우리는 게시물에 최선을 다하겠습니다 생산은 실제로 직조 무엇 롭의 영상은보고있다 지금이 실제 강의에 우리 둘과 비디오 그 옆에 자원 봉사자. 그래서 내가 할거야 , 내가 타자가 될 것입니다. 우리는 여기에서의 목표를 가지고 실제로 프로그램을 작성 있는하려면 궁극적으로 땅콩 버터와 젤리 샌드위치, 그러나이 세 가지 행동하려고 비록 그들은 컴퓨터입니다. 그리고 하루의 끝에 컴퓨터, 실제로 꽤 바보 장치입니다. 그들은 슈퍼 빠른,하지만 그들은 단지 수 할, 말 그대로 무엇을 이야기하고 있습니다. 당신은 땅콩을 말할 수 없다 버터와 젤리 샌드위치. 당신은 작업을 수행하도록 프로그래밍 할 수있다. 당신은 그들에게 얘기를 해 정확하게 무엇을해야하고, 작은 일들이 끔찍하게 이동하고, 희망 진흙 덩이 비스듬히. 그렇게 말 그래서, 우리는 필요 관객 한 점수 판 어떤 단계를해야합니다에 대한 하나는, 여기 될 경우 목적 땅콩을 만드는 것입니다 버터와 젤리 샌드위치. 네? 청중 : 빵 [INAUDIBLE] 가방. 데이비드 J. 마란 : 빵의 가방을 엽니 다. 세 선수는 것 그래서 만약 그대로 그렇게 진행하고 싶다. 빵의 가방을 엽니 다. [청중 웃음] 데이비드 J. 마란은 : 그래서 그 작업을 할 수 있습니다. 좋아. 그래서이 단계를 어떻게 .. 의이 더 걸릴 수 있습니다. 네, 앞. 청중 : [들리지] 빵. 데이비드 J. 마란 : 무엇입니까? 청중 : 빵을 제거합니다. 데이비드 J. 마란은 : 빵을 제거합니다. 마찬가지로 간결. 감사합니다. [박수] 데이비드 J. 마란 : 그건? 좋아, 그럼이가가는 단계 빵을 제거 할 수 있습니다. 좋아, 사람이 원하는 우리에게 더 긴 문장을 쓰기? 다른 사람? [INAUDIBLE] 조금 더. 아니, 지금은 아무것도. 네? 청중 : 장소이 서로 옆에 조각. 데이비드 J. 마란 : 장소이 서로 옆에 조각. [청중 웃음] 데이비드 J. 마란 : 장소이 서로 옆에 조각. 네 단계. 네? 청중 : 프롤 손은 가볍게로 설정 땅콩 버터 뚜껑의 상단에. [청중 웃음] 청중 : [들리지] 땅콩 버터 옆에. 데이비드 J. 마란 : 무엇? 다시 말해봐. 청중 : 뚜껑을 풀어 넣어 이 땅콩 버터 옆에 부드럽게. 데이비드 J. 마란은 : 조심스럽게 넣어 땅콩 버터 옆에. 확인을 진행. 단계 오. 우수. 네? 칼을 들고. 데이비드 J. 마란은 : 칼을 들고. OK, 여섯 단계. 그래? 청중 : 손잡이 칼을 잡아. 데이비드 J. 마란 : 잡아 손잡이 칼. 손잡이 칼을 잡아. 일곱 단계. 네? 청중 : 땅콩의 [들림] 칼 버터와 같은 작은 밖으로 [INAUDIBLE]. 데이비드 J. 마란 : 나는 감옥에 ... 칼을 넣어 땅콩 버터에 들었다 "넣어 칼 가능한 한 밖으로 적게 가져 가라. " 그런데, 먼저 용지를 제거합니다. 좋아, 아홉 단계. 아홉 단계. 아홉 단계. 우리는 실제로 아직 샌드위치를​​ 만들어하지 않았습니다. 네? 청중 : 땅콩 버터 나이프를 사용하여, 고 말했다 빵에 땅콩 버터를 적용합니다. 데이비드 J. 마란 :에 칼을 사용하여 땅콩 버터는 땅콩 버터를 적용 빵을 말했다. [청중 웃음] 데이비드 J. 마란 : 좋아 단계 10. 10 단계. 네? 청중 : 맛 땅콩 버터의 품질을 보장​​합니다. [청중 웃음] 데이비드 J. 마란 : 11 단계. 11 단계. 11 단계. 어서. 그래? 바로 거기. 청중 : 조심스럽게 젤리를 선택합니다. 데이비드 J. 마란 : 조심스럽게 젤리를 선택합니다. 확인을 누른 다음 다른 손으로는 최대였다. 바로 뒤에. 그래, 파랑입니다. 청중 : 좋아, 제거 그래, [INAUDIBLE]에서 뚜껑 젤리에서 뚜껑을 제거합니다. [청중 웃음] 데이비드 J. 마란 : 젤리에서. 하 하. [청중 웃음] 데이비드 J. 마란 : 그리고? 청중 : 그리고 거의 어떤 [INAUDIBLE] 청소. [청중 웃음] 청중 : 물론, [INAUDIBLE] 전, 젤리에서 용지를 제거합니다. 데이비드 J. 마란 : 젤리에서 용지를 제거합니다. 14 단계. 우리는 거의 다 왔어. 네? 청중 : 반전 젤리 병 전에 모든 밖으로 떨어진다. 데이비드 J. 마란 : 반전 젤리 젤리 전에 병 밖으로 떨어진다. 15 단계. 청중 : 캡을 교체합니다. 데이비드 J. 마란 : 캡을 교체합니다. 16 단계. 그래? 청중 : [들리지] 데이비드 J. 마란은 : 다시 말해봐. 관객 : 귀하의 젤리 떨어져 모자를 가져 가라. 데이비드 J. 마란 : 귀하의 젤리 오프. 그래서 아차 정말 -. 어서. 캡을 교체합니다. 당신이 말한 cap-- 넣어 젤리에서 캡을 제거합니다. 우리는 루프의 비트에있어 같은 기분. 단계 17. 네? 청중 : [들리지] 데이비드 J. 마란은 : 다시 말해봐. 청중 : [들리지] 데이비드 J. 마란은 : step--로 돌아 가기 청중 : [들리지] 데이비드 J. 마란 : 제거 땅콩 버터에서 모자. 네? 청중 : 모든 드롭 빵에 젤리. 데이비드 J. 마란 : 모든 드롭 빵에 젤리. 데이비드 J. 마란 : 우리는 거의 다 왔어. 단계 19. 청중 : 초과 젤리를 제거합니다. 데이비드 J. 마란 : 하하, 젤리. [박수] 데이비드 J. 마란 : 왜 들어간 드하지 않습니다 한 단계는이 가정을 촬영합니다. 한 단계 한 다음 우리는 샌드위치를​​ 제공합니다. 네? 청중 : [들리지] 데이비드 J. 마란 : 모든 샌드위치 동안 remains--하자 들여 먹고이 겁니다. [청중 웃음] 데이비드 J. 마란 : 좋습니다, 감사합니다 당신이 여기에 우리의 자원 봉사자. [박수} 데이비드 J. 마란 : 우리는 몇 가지 좋은가 여러분 각자에게 선물 이별. 자신의 땅콩 버터, 젤리, 빵은 집으로 돌아옵니다. 감사합니다. KIERSTEN : 감사합니다. 데이비드 J. 마란 : [들리지] 환영합니다. [박수] 데이비드 J. 마란 : 그래서,이 중입니다 물론, 말도 안되는 예. 오른쪽? 그러나 가지 우리가 어떻게 나타내는가 당연한 인간은 단지 명확성을. 그리고 사실은 내가 봤는데 다른 사람의 이야기, 그 또는 그녀는 당신이 무엇을 의미하는지 알고있다. 컴퓨터는 않을 당신이 무슨 뜻인지 알고, 때에도 같이 사용 우리는 오늘하려는 일 스크래치에 뭔가를 프로그래밍 드래그 앤 드롭, 퍼즐 조각 스타일의 언어입니다. 심지어 젊은 위해 설계 아이들은 당신이 그래서 명시 적으로 그렇게 문자 그대로합니다 당신은 무엇을 당신의 프로그램이하고 싶어요. 이제 궁극적으로, 우리는있어 프로그래밍 될 것 하지 의사 코드에서, 같은 문법 영어, 하지만 코드 또는보다 적절하게, 소스 코드. 소스 코드는 단지 멋진 방법입니다 실제로 코드를 설명하기위한 에 키보드와 쓰기 영어가 아닌 그 자체입니다. 그것은 C 또는 Java 또는 C + + 또는 무언가에있어 그렇게, 우리는 곧 볼 수있다. 그리고 사실, 그냥 겁합니다 첫눈에, 당신의 몇 가지, 이 언어로 작성된 프로그램입니다 C.하지만 몇 가지 않은 겁에라는 완전히 것 무슨 일이 일어나고 있는지 이해 올 다음주 월요일에 때를 이 같은 온다. 솔직히, 이것은 이전의 언어이다. 그것은 상당히 난해한이다 그러나 대표자 요즘 많은 언어의 괄호와 곱슬 많이 가지고 중괄호와 따옴표와 세미콜론. 그리고이 많이 아닌 구문 물건 모든 지적 흥미에. 실제로, 완전한 산만이다 아주 간단한 아이디어에서 즉, 우리의 얼굴을 쳐다보고있다. 이 프로그램은, 당신이 추측 수 있으므로, 다른 사람의 컴퓨터 화면에 인쇄 단어 "안녕하세요 쉼표 세계." 그게 다야. 그래서 분명히있다 야 물건을 많이 의 방해가 몇 가지 명백한, 그러나 그것은 매우 빠르게 미끄러 것 멀리 완전히 직관적. 사실, 우리는 어떻게 할것인지 오늘이 매우 복잡한 증류된다 프로그램을 찾고, 이는 다시 올 것이다 빠르게 이해하지만 뭔가하는 훨씬 간단. 그냥 우리가 무엇을 의미하는지에 관해 가정 해 봅시다. 의 우리가 무엇을 의미하는지의 그림을 그려 보자 여기에이 퍼즐 조각의 방법으로. 그래서이 프로그램은 스크래치로 알려진 언어입니다. 이것은 MIT의 미디어 랩에 의해 개발되었다. 그리고 당신은 문제에서 볼 수 무슨 제로 설정 이는 나중에 오늘 밤 발표 될 예정이다 우리는 당신이에 갈거야 여기 scratch.mit.edu URL. 그리고 그들은 웹을 기반 인터페이스를 통해 어떤 당신은 당신의 첫번째 프로그램을 작성합니다. 아니면 이전과 함께 당신의 그 경험을, 두 번째 프로그램, 하지만 환경에서 그건 아마 조금 익숙하고 뭔가를 만들 밀어 버린다 바로이 시각 환경을 사용. 지금, 나는 갈거야 여기서해야 할 일 프로그램 자체를 열 수 있습니다. 이뿐만 아니라, 웹 브라우저로 존재 또한 다운로드 가능한 프로그램뿐만 그래서 당신은 실제로 사용할 수있는 당신은 인터넷 접속이없는 경우. 그리고 나는 그렇게 할거야 여기에서, 샌더스에서, 단지 경우에 와이파이하지 않습니다 슈퍼 잘 협력한다. 그리고 내가 할거야하는 점은 이 프로그램의 몇 가지 기능 아웃. 그래서, 명확하게, 그냥 두 번이 내 바탕 화면의 아이콘을 클릭 또는 동등 scratch.mit.edu에 갔다 그리고이 창을 당겨. 이 프로그래밍 환경입니다. 그것은 소프트웨어의 조각이다 그 MIT에서 우리의 친구들 의에게 우리를하자 당신이 쓰는 썼다 언어 프로그램은 스크래치를했다. 이제이 될 일이 또한 스크래치라는 것 고양이 이 그가 살고있는 자신의 세계이다. 이 것을, 말하자면, 무대 왼쪽 상단 모서리에 사각형입니다. 그리고 그는 고양이처럼 할 필요가 없습니다. 당신이 그를 볼 수 있습니다 아무것도 당신처럼 이러한 많은 스프라이트를 가질 수 있습니다, 또는 프로그램의 문자. 한편, 이상 여기까지에 오른쪽 큰 빈 슬레이트입니다. 그리고이 순간에, 어디 우리는 프로그래밍을 시작하려고 드래그 앤 드롭하여 이러한 그래픽 퍼즐 바로 아르 조각 여기 중간에. 그리고보다 그들의 방법이 더있다 우리는 수업 시간에 여기에 시간을 보낼거야 당신은 그것을 찾을 수 있기 때문에 그들은 모두 매우 직관적있어. 다시, 이는 설계 아이들하지만, 우리에 대한 그 중 일부를 따로 애타게 사용 , 루프 변수의 기본 아이디어, 조건, 곧, 일 기능 및 이벤트 등 스레드 우리는거야 다른 멋진 것들 실제로 만드는 데 오래 전에 도착 처음부터 뭔가. 말장난 의도. 자, 내가 여기서 뭘하고있어 것은 하지 동작하지만, 컨트롤을 클릭합니다. 그리고 이것은 단지입니다 이곳에의 분류 나는 다른 참조 컬러 블록으로 설정합니다. 그러나 몇 가지 익숙한 단어를 알 수 있습니다. 그리고 "만약 다른 사람" "이"와 "반복." 그리고 당신은 아마 추측 할 수 즉, 지점의 연상 또는 조건은 우리가보고, 심지어 반복 구조. 그래서 우리는 여기에 비슷한 블록을 가지고있다. 그러나 가장 흥미를 하나는 여기입니다. 이 녹색 플래그가 클릭되면, 이 사전 프로그래밍있는 이들 경험은 동일합니다 주요 기능. 그러나 익숙하지 않은 사람들을 위해, 이 퍼즐 조각입니다 그것은 우리의 전체 프로그램을 시작 시작된다. 내가 갈 때 그것은 문자 그대로의 의미 프로그램 및 녹색 flag--을 클릭 당신은 여기까지 볼 수있는 UI의 왼쪽 상단 코너, 그래서 녹색 깃발을 참조 빨간색 정지 신호 옆에? 나는 그것을 클릭하면, 내 프로그램을 실행하는 것입니다. 지금, 나는 뭔가를 할거야 스크래치와 슈퍼 간단. 내가 먼저 갈거야 그리고 외모 패널로 이동 여기, 내가 무리를 어디에 보라색 ​​퍼즐 조각, 내가 가서 할거야 뭔가 슈퍼 간단한처럼 말한다. 그러면 -주의 사항이 흰색 상자에 텍스트 내가 무슨 말을하려고 해요 editable--입니다 "안녕하세요 세계"그냥 우리처럼 그 텍스트에서 한 버전 잠시 전. 그리고 지금은 가서 이것을 클릭하면 녹색 깃발은, 지금 프로그래밍 한. 그것은 특히 아니다 흥미로운 프로그램 하지만 컴퓨터가 뭔가를했다. 나는 프로그램을 시작하고 내가대로 한 것 않았다. 자, 드래그 앤 드롭을 계속할 수 있습니다 점점이 퍼즐 조각의 더 그들은 연동하려고하지만,있어 여기서 일부 용어를 때리고 보자 우리는 반복 볼 수 있음 과정 전반에 걸쳐, 정말 컴퓨터 과학 전반에 걸쳐 더 일반적으로 프로그래밍. 이 블록, 보라색,하자 "라고" 단지 문을 호출 시작합니다. 그것은 사실의 진술처럼. 이 작업을 수행합니다. 그래서,의 범주이다 지시하면 그 일부로서 컴퓨터를 공급 수도 프로그램 또는 알고리즘. 그리고 명확하게, 당신은했습니다 아마 당연한 것을 당신은 당신의 컴퓨터에있는 프로그램이 있습니다. 그리고 그들은 종류의 알고리즘의,하지만 이 프로그램은 정말 알고리즘의 무리입니다 어떤 인간은 썼다. 그들은 그것을 포장하고 그들은, 그래서 당신을 판매 또는이 웹 사이트에 게시 당신이 다운로드 할. 그래서, 프로그램은 단지입니다 0과 1의 전체 무리 즉, 어떻게 든 인간은 창조했다. 1과 0의 그 패턴과 사람은 궁극적으로 일을 나타냅니다 "인사 세계"또는 "놀이 등 이 음악 "또는"이 비디오를 재생 " 또는 "이메일을 보내실 수 있습니다." 그러나 우리는 다시 올 것이다 방법이 더 세부 무엇을 때 프로그램이며, 자신은 그 물품. 여기에 또 다른 statement--입니다 "1 초 동안 기다립니다." 내가 원하는 경우 아직이를 사용하지만하지 않았다 내 프로그램은 잠시 동안 일시 정지 뭔가를, 나는 그렇게 그것을 알 수 있습니다. 일초를 기다립니다. 이제 또 다른 하나는 "사운드를 재생합니다."수 있습니다 그래서,이, 긁히지 고유 소리를 재생 할 수있는 기능이 있습니다. 그래서, 문이 나는 수도 사용은 "사운드를 재생할 수 있습니다."여기입니다 한편, 부울 식, 그래서 이것은 애호가 단어 씨 BOOL이라는 단 사람의 이름을 따서 명명, 이 모든 질문에 대해서입니다. 참 또는 false-- 마우스가 다운? 부울 표현은 단지입니다 영어의 일부 표현 즉, true 또는 false입니다. 하나 또는 해제. 어느 한 제로. 당신은 생각할 수 임의의 수의 방법으로, 하지만 그건 하나 참 또는 이 거짓, 궁극적으로. 그래서 "마우스 아래 물음표" 즉, 부울 표현이 될 것이다. 그리고 당신은 아마도 다른 사람 생각할 수 있습니다. 예를 들어, "왼쪽 숫자입니다 오른쪽 숫자보다 적은? " 즉,도 것 부울 식입니다. "이하"부울 식입니다. 이 일 역시 "감동 마우스 포인터." 나는 확실하지 않다 왜를 마우스 포인터를했다. 단지이며, 커서가 의미 고양이를 터치 화면에 화살표, 예를 들어. 또는 스크린의 다른 양태. 그리고 그것은 다시, 질문 및 즉, 부울 식을 의미한다. 뭔가 당신이 수도 조건에 사용하고 싶습니다. 그래서 우리는 그냥 순간에 그에게 올 것이다. 당신이 함께 할 수있다 "와"일. 그래서, 당신이 있는지 확인하기 위해서 이 사건은 그 경우입니다 이 같은 "와"블록을 사용할 수 있습니다. 그리고 여기에 해당 조건입니다. 작은 개구의 형상에 주목 이 노란색 퍼즐 조각의 꼭대기에, 그것은 모양의 연상 우리가 조금 전에 보았다. 이 부울 식의 각 이러한 지적 가장자리가 좌우. MIT의 사람들이 결정하기 때문에 그건 그 시각적으로 전달하는 형태에 의해, 당신은 가지, 사람들을 도울 수 있습니다 학생과 어린이, 가지 말 그대로 빈 칸을 채우기 위해. 이제 그 puzzle-- 오프닝은, 조금 작은 우리는 프로그램에서 살펴 보 겠지만, 스크래치, 그것은 맞게 성장할 것이다. 그것은 궁극적으로 그 모양을 유지합니다. 그래서 조건은 결정하자 "나는 무언가를하거나하지해야합니까?" 부울 식 실제 질문은 내가 가는가를 결정하는 사​​용하는 왼쪽 아니면 오른쪽으로 가야합니까 나는이 발생할 때 도로에 포크 소위? 당신은 두 가지가있을 수 있습니다. 무엇인가에 해당하는 경우, 할 이것은 다른 사람이 그 길을 갈 또는 당신은 단지에 아무것도 할 수 없다 모든,이 블록은 포함되어있다. 마찬가지로, 우리는 둥지 이런 일을 할 수 있습니다. 그래서 당신은 포크를 세 겹으로 할 경우 도로,이하거나 또는 그렇게 하나, 당신은 이러한 것들을 함께 단지 둥지 수 있습니다. 그리고 그것은 조금 얻을 시작 못생긴 결국, 확실히, 그러나 로직은 여전히​​ 동일하다. 당신은 말 그대로 읽을 수 있습니다 바닥이 최고 그리고 그것이 무엇을 의미 하든지이 경우 말한다 사실, 이렇게 또 다른 경우. 루프는 스크래치에서 간단하지 않습니다. 영원히 다음을 수행하십시오. 지금 당신은 당신을 생각하지 않을 수 있습니다 이 아니기 때문에 많은 작업을 수행 할 수 있습니다 상단과 사이에 많은 공간 이 퍼즐 조각 개구의 하단. 하지만 당신은 스크래치가 것입니다 볼 수 있습니다 많은 퍼즐 조각을 맞춰 늘어나 거기에 벼락 공부를 원하는대로. 또 다른 루프가있을 수 있습니다 반복으로 표현. 사전에 알고 있다면, "나는 뭔가 10 번을하고 싶다 " 당신은 스크래치를 알 수 있습니다 뭔가 10 번을 할 수 있습니다. 그리고, 그 사이에, 우리는 변수를 가질 수 있습니다. 그래서 여기에 임의의 하나입니다, 이것은,이 경우에있어 오렌지 이것은 회오리 바람 투어이다. 다시 말하지만,이 매우 접근을 찾을 수 있습니다 당신이 한 번 가리키고 클릭 시작합니다. 내 변수 (n)라는 이름의,하지만 난 한 그것을 제가 원하는대로 이름을 수 있었다, 나는에 여기하고 있어요 이 임의 예, 제로. 지금 헬로 추천 프로그램을 보는 세계는 모든 것을 설득력없는 그래서 실제로 뭔가를 열 수 있습니다 전 학생이 만든 것이다. , 내가 가서 열어 보자 예를 들어, 여기 하나, 있는 나는 사랑 자원 봉사를합니다. 좋아, 방법의 더 멀리 가자하는 ... 예, 최대 어서. 당신의 이름은 무엇입니까? 애비 : 애비. 데이비드 J. 마란 : 애비, 최대 어서. 그래서 당신은 재생 한 이 게임? 애비 : 제 데이비드 J. 마란 : 좋습니다. 데이비드, 당신을 만나서 반갑습니다. 빨리와. 그리고 프로그래밍 무엇인가 배경 (있는 경우). 애비 : 좀 C + +을 배웠다. 데이비드 J. 마란 : 당신은 어떤 C + +을 배웠다. 그리고 게임 것입니다 배경을 재생? 애비 : 아니 많이합니다. 데이비드 J. 마란 : OK, 그래서 우리가 할게요. 그래서 여기에 게임이 작동하는 것입니다 방법입니다. 내가 먼저 갈거야 및 녹색 깃발을 클릭하는 여기까지 오른쪽 상단에 있습니다. 클래스에서 이제 이전 여기에 몇 가지 지침을 주셨다. 단지 순간에 그것을 "공간이 시작합니다."라는 그래서 가서 스페이스 바를 누르십시오. 컴퓨터 게임 : 피카츄. 데이비드 J. 마란 : 그리고 목표이다 거기에 도시 된 바와 같이, 음식을 잡을 왼쪽에. 하고 [INAUDIBLE] [게임의 음악 연주] 데이비드 J. 마란 : 앗, 음, 재생 주셔서 감사합니다. 우리는 여기서 조금이 당신을 위해 선물을 이별. 우리는 CS50 스트레스 공을 당신이 선택하고 싶은 경우. 좋은 좋아, 당신을 만날 수 있습니다. 오는 도전에 감사드립니다. 그래서 우리는 그래서 더 스트레스 공을 가지고 의 동기를 부여하기 위해 예를 하나 더하자. 자원 봉사? 방법에 대한 모든 권리, 여기 앞에. 당신의 이름은 무엇입니까? PHILLIP : 필립. 데이비드 J. 마란 : 필립. 최대 필립 어서. 그래서, 필립이 될 것입니다 다른 게임과 도전 당신의 전임자의 일이 문제의 일부는 제로로 설정 썼다 아이비의 가장 어려운 게임이라고합니다. 그리고 우리는을에 볼 수 있습니다 이 의미 무슨 순간. 필립, 만나서 반갑습니다. 당신의 배경은 무엇인가? PHILLIP는 : 코딩을 많이 완료. 너무 조금 게임을 완료. 데이비드 J. 마란 : OK. 너무 많은 게임을 얻었다. 그리고 당신은이 게임을했다? PHILLIP : 없음 데이비드 J. 마란 : 모든 좋아요, 여기에 우리가 간다. 내가 먼저 갈거야 및 녹색 깃발을 클릭합니다. [게임 음악] [MUSIC MC 해머는 "U는이 건드릴 수 없어"] PHILLIP : [들리지] 데이비드 J. 마란 : [들리지] PHILLIP : [들리지] [하하] [MUSIC MC 해머는 "U는이 건드릴 수 없어"] 데이비드 J. 마란 : [들리지] 그것을 통해 쟁기. PHILLIP : [들리지] 데이비드 J. 마란 : 전진. [MUSIC MC 해머는 "U는이 건드릴 수 없어"] 데이비드 J. 마란 : 좋습니다. 축하드립니다. [박수] 데이비드 J. 마란 : 우리는 것 게시물이 온라인 나중에 이렇게 당신은 미루지 수 있음 그것뿐만 아니라. 프린스턴 그 후, 다음납니다. 그래서 지금의이 실제로 진행하자 처음부터 다시 시작하고, 말하자면, 실제로까지 쌓아 우리는 이러한 아이디어의 일부를 떨어져 애타게 할 수 있습니다 뭔가에도를 얻을 수 말보다 복잡한. 난 이쪽으로 갈거야 난거야 가서 새 파일을 만들 수 있습니다. 그래서 다시 문제 세트 안내합니다 이러한 몇 가지 단계를 통해 당신. 하지만, 내가 한 모든 가야했다 파일 메뉴 I에 며 "새로운"마이크로 소프트와 같은 너무 많은 워드, 또는 그런 프로그램입니다. 그리고 이제 아니예요 앞서 가자 우리 조금 전에 「Hello World」의 구현, 하지만의 뭔가 조금 더 귀여운을 할 수 있습니다. 나는 이벤트까지 갈거야. 그리고 나는 때 "할거야 녹색 깃발이 클릭했습니다. " 그리고 제가 사용하는거야 우리는 분기 말을해야한다. 그래서 나는 "만약"조건을 사용하는거야. 어떻게 최대한 빨리 가까이로 주목 여기에, 그것은 함께 스냅 원한다. 그래서 가자과 함께 스냅합니다. 그리고 지금은 뭔가 재미있는 일을 할 수 있습니다. 여기를 스크롤하면, 내가 갈거야 블록의 전체 무리를 볼 수 있습니다. 나는에 가면 "데이터"- 나를 감옥에 ... 확대하자 변수에 대한 뭔가가있다. 나는에 가면 "움직임,"당신은 할 수 분명히 주위에 물건을 켭니다. 나는 "사업자"에 가면 - 오,이, 재미있다 나는 임의의 숫자를 선택할 수 있습니다. 그래서 내게는 뭔가를하자 일부 확률, 그냥 때문이다. 내가 먼저 갈거야 및 이 퍼즐 조각을 드래그 이 이상 그 이하 블록, 그냥 그래서 "그보다이 수가 적은?" 하지만 하드 코드에게 번호를하지 않으 그 때문에 꽤 무의미. 그래서 나는이 작품을 끌어 갈거야 여기에, 그것은에 고정하는 방법을 발견, 지금 내가 가서하는 경우 "라고하자 무작위로 골랐다 수 육보다 다음을 수행합니다. " 지금 왜 6 개 이하? 이 효과적으로 무엇 확률 그냥 직관적으로, 저를 줄거야? 약 50 %, 오른쪽? 만약의 무작위 추측 수 1과 10 사이에 6 개 이하입니다 명확하게 둘, 하나, 셋, 넷, 다섯. 그리고 그것은 나에게 줄 것 일어나고있는 것의 50 % 확률? 음의이 같은 것을 할 수 있습니다 이, "야옹 소리를 재생할 수 있습니다." 그리고 통지, 다시 퍼즐 조각은 성장 너무 오래 모양이 일치로 맞게. 그게 중요한거야. 나 스크래치에 가서 보자 여기 "재생"을 클릭합니다. 아무런 반응이 없습니다. 그게 버그가? 아니, 필요가 없습니다. 그것은 단지가 될 수 더 큰 숫자가 선택되었다. 그럼 다시 할 수 있습니다. 아무것도. [MEOW] 데이비드 J. 마란은 : 그렇지. [MEOW] 데이비드 J. 마란 : 다시. 번호 [야옹] 데이비드 J. 마란 : 당신이했습니다 경우에 따라서 이제까지 물론, 게임에 여기서 물건을 무작위로 일어나고, 나쁜 사람처럼오고 있지 않거나 화면에 나오는 또는 일이 넘어 지거나 떨어지는되지 않으며, 그건 그냥 뭔가 슈퍼 있기 때문에 이 같은 간단한 일이 일어나고있다. 임의의 번호를 선택하고, 만약 그것은 어떤 값 이하이다 어쩌면 이렇게 어쩌면 그렇게. 우리는 통합 할 수 있습니다 조건에 해당. 이제 뭔가 다른 일을하자. 내가 그 멀리 던져 보자. 다음과 같은 방법으로 물건을 제거 할 수있다 단지 왼쪽으로 드래그 오프 그리고 놓아. 내가 가서 영원히 블록을하자 매우 빠르게 짜증나는 뭔가. 내가 가서 보자 "야옹 소리를 재생할 수 있습니다."라고 그러나 나는이 너무되고 싶지 않아 짜증나는, 그래서, 내가이 블록을 잡아 보자 "일초 기다려"통보 그것은 공간이 더 이상은 없다. 하지만 당신은 충분히 가까이 갈 경우, 거기 가고 싶어. 그래서 나가지 그것은 것 블록을 채우기 위해 성장. 그래서 지금,이 루프입니다. [야옹] 데이비드 J. 마란 : 난 말 그대로 영원히 이렇게. 다시 다시. 그건 그냥 자연스러운 없습니다. 내가 가서이를 변경하자 하지 일초에에 이초 입력하고 Enter 키를 누르십시오. 스크래치가에 대한 좋은거야 대화 형 프로그램 수 있었다. 변화를 확인, 아마도 입력하거나 재생 (Play) 버튼을 누릅니다 다시, 그리고 그것은 단지 계속됩니다. 자, 이제 우리는 왜하지 않는다 뭔가 조금 더 귀여운? 처음부터 모든 일을하는 것이 아니라, 내가 가서 사전을 열 수 있습니다 내가 구운 사전 것을 하나 만들어 "애완 동물은 고양이"라고합니다. 그리고 우리는 모두 게시합니다 온라인으로 파일, 및 문제 설정 제로는 당신을 말할 것이다 방법에 액세스하고를 엽니 다. 그리고주의 사항이 매우 간단하다. 하지만 사전에, 나는 움켜 것 같다 "영원히"블록은, 그래서 루프를 가지고있다. 그리고 나는 "만약"조건을 가지고있다. 나는 부울 식을 가지고있다. 영어 그래서, 단지에서이기는 이, 당신은 한 번도 특히 그냥 직관적으로, 전 프로그램, 어떤이는 어떻게이 프로그램을거야? [관객 잡담] 데이비드 J. 마란 : 당신이 고양이를 애완 동물 경우, 고양이는 오른쪽 야옹까요? 때문에있다 "영원히 선택을 취소" 마우스 포인터가 고양이를 감동. 그래서 명확하게하기 위해, 나는 말하지 않았다 이 전에,이 퍼즐의 모든 조각 및 스크립트입니다 우리는 그들에 결합했다 말하자면, 스크립트의 대명사 프로그램은 정말,이 고양이에 속한다. 그리고 그 이유는 사전 통보 때문에 놈은 ... 여기에이 같은 고양이가 강조하는 방법, 여기있는 당신을 만들 수 있습니다 둘째 고양이 또는 개 또는 정말 아무것도 당신은 그래픽으로합니다. 당신이 뭔가를 가져올 수 있습니다 포토샵, 등으로부터, 그리고 만약 뭔가를 통합 프로젝트를 만들고 싶어. 그리고 당신은 찾을 수 있습니다 무엇을, 궁극적으로, 당신 것입니다 퍼즐을 추가하고, 스크립트를 추가 할 수 있습니다 개별 문자 조각. 그래서이 모든 속한 이 특별한 고양이. 그래서 지금 내가 가서 연주하는 경우 이 프로그램은 아무 일도 없어요. 그러나 실행 중입니다. 프로그램이 영원히 반복되어 가지 어떤 일이 일어날을 기다리고? [관객 잡담] 데이비드 J. 마란은 : 고양이 애완 동물합니다. 그래서 미키를 향해 내 마우스를 이동하는 경우 [야옹] 데이비드 J. 마란 : 그래서 지금 나는 고양이를 귀여워하고 있습니다. 한편, 우리는 두 가지를 할 수 있습니다. 내가 가서 풀어 보자 최대 고양이를 애완 동물하지 않습니다. 우리는뿐만 아니라이 온라인으로 게시합니다. 이것은 조금 더있다 복잡하지만, 말을하지 않고 당신은 아마도 추측 할 수 무슨 일이 일어날 것입니다. [야옹] 데이비드 J. 마란 : 고양이가 야옹, 그랜드 오래 된 시간. 그러나,이 프로그램은 물론이다 소위 "고양이를 애완 동물하지 마십시오" 그래서 분명히, 나는 고양이를 애완 동물 싶다. [활활] 데이비드 J. 마란은 : 고양이를 애완 동물하지 마십시오. 이제 살펴 보자 여기에 또 다른 예에서. 이 하나가 호출된다 "안녕, 안녕, 안녕,"이유 그 때문에, 명백 할 것이다 최대한 빨리이 할께요 실행으로 [SEAL 짖는 소리] 데이비드 J. 마란 : 아주 쉽게 짜증나는 스크래치 프로그램을 작성. [SEAL 짖는 소리] 데이비드 J. 마란 : 이제 우리는 가지 않을 것이다 이 모든과 훌륭한 세부 사항에, 하지만이 알 여기에 몇 가지 새로운 기능. 라는 변수, "뮤트는"있다 다음 조건의 무리가있다. 그리고 지금은 저를 보자 그냥 말하여 당신을 애타게 이 사람이 너무 짜증나 묻을 경우, 나는 스페이스 바를 칠 수 그는이 중지됩니다. 역할에 의해 재생되는 때문에 다음과 같이이 두 스크립트입니다. 그들 중 하나를하고있다 몇 초마다 짖는. 다른 하나는 그냥 기다리고 있습니다 나를 위해 스페이스 바를 칠. 그리고 스페이스 바를 충돌 할 경우, 그것은 변경할 것 이 변수의 상태 값 이 변수의 그 분명히이다 소위 "음소거"나는 전화하지 않았어 N 같은 지루한 그것은 뭔가, 나는 "음소거."그것을 영어 단어라고 1 1 0 또는 0에서. 사실에서 참으로 허위 또는 거짓이다. 그래서 당신은 실제로 수 지금 참조하면 그 이 스크립트를 가질 수있는, 두 프로그램이 동시에 실행 그리고 둘 다 앉아있을 수 있습니다 루프에서 뭔가를하고. 인간이 할 대기 스페이스 바를 타격과 같이. [SEAL 짖는 소리] 데이비드 J. 마란 : 그리고 지금 그는 다시 자신의 방식에 있습니다. [SEAL 짖는 소리] 데이비드 J. 마란 : 다른 그래서 우리는이 예제와 함께 할 수 있는가? 그럼, 가서 해 보자 양을 계산과 예. 우리는 여기서 라인을 따라이 계속해서 집게 리아의는 양 예를 열 수 있습니다. 그리고 예고 훨씬 전에 그렇듯이,이, 다행히도, 좀 덜 성가신이다. 나는 이곳에 재생 공격하면 오, 아니,이 짜증이 난다. 그는 BAA에 가고 일부 확률. 다시 한 번이 놀자. [양 BLEETING] 데이비드 J. 마란은 : 유일한 차이점은 우리는, 말하자면, 의상을 변경했습니다 우리는 반으로 말할 것 그 실제 수는 무엇인지. 음의 가서하자 한 단계 더 나아가서 걸릴. 그리고 내가 당신을 애타게하자 여기에 다른 기능입니다. 이제 가서 열어 보자 프로그램은 스레드를했다. 당신은 하나를 가질 수 있습니다 너무 많은처럼 스프라이트, 여러 스크립트를 갖는 당신은이 스프라이트, 조류를 가질 수 있습니다 고양이는 각각 자신의 스크립트를 가지고. 그들 각각은 수 동시에 작동합니다. 당신이 들어 본 적이 있다면 단어 "멀티 스레딩" 컴퓨터는 "멀티 스레드"수단이다 그것은 한 번에 여러 작업을 수행 할 수 그리고, 참으로, 그래서 스크래치 수 있습니다. 이제 새가 가지 바보 알 수 있습니다. 그냥 무작위로 일을하고있어, 화면을 수신 거부. 분명 고양이가 프로그램되어 가지 찾는 기능을 가지고 새 때문에 집에서에 그는 항상 그를 가리키는 것. 마지막까지, 그는 실제 새를 잡는다. 그래서 세부 사항에 연연하지 않습니다 여기에,하지만 당신은 할 수 가지 같은 모양을 엿볼 일부 조건 "만약"일부 변수, 어쩌면 일부 루프, 아르 궁극적으로 같은 일을하고. 이제 내가 가서 열 수 있습니다 완전히 다른 것까지, 특히, 당신의 일부를 애타게 더 편안하게하는, 실제로이 무엇을 할 수 있습니다. 내가 먼저 갈거야 여기에 버튼을 엽니 다. 그리고 이것은 최고입니다 단순 보이는 프로그램 하지만 어떤 일이 발생보고 아 ... 볼 때 무엇을 내가이 버전을 열 때 발생합니다, 여기에 브라우저 scratch.mit.edu있다. 그리고 나는이 큰 빨간색을 클릭하면 버튼, 무슨 알 수 있습니다. 그래서 무슨 일이 일어나고? 더 많은 복잡성은 실제로있다 후드 아래에 일어나고, 심지어 내가 구현 한 생각 이, 또는 솔직히 댄 브래들리 그래서 단순히이 구현했습니다. 그는 사용자 지정 스크래치 퍼즐을 설계했다 스크래치 확장으로 알려진 조각, 그는 전환을했다. 그리고 무엇 전환이하는 것은 보낸다 인터넷을 통해 메시지를 표시합니다. 그리고 그 메시지 자체 조금 애매한 보인다. 그러나이 역시, 당신은거야 용어의 말을 이해합니다. 그는 실제로 보낸 건지 메시지 이 같은 작은 선물을 보인다. 그냥 텍스트입니다. 크립 틱. 당신은 시간을 이해하게 될 것입니다 우리는 문제가 칠을 설정 얻을. 그냥 텍스트 메시지를 전송하는 것 인터넷을 통해 서버로. 그리고 그 서버는 궁극적입니다 이 전구, 이야기하는 그 화려한 전구 중 하나가 그것에서 그 자체, 이야기입니다 여기에 네트워크에서 Wi-Fi 인터넷에, 여기서 로컬 장치 아래 이곳에 그리고, 최종적으로, 실제로있어 켜거나 빛을 선회. 그러나 우리는 더 많은 일을 할 수 있습니다 여전히 흥미로운 것들. 댄은 또한 우리를 위해 무엇을했는지 알 수 있습니다. 그는 각각의 스프라이트를 만들어 어떤 클릭을 기다리는 스크립트가 있습니다. 내가 빨간색을 클릭하면, 그것은 빨간색 간다. 나는 푸른 얻을 경우, 푸른 빛을 띤 간다. 녹색, 노란색, 오렌지색. 그리고이 모든에 의해 일어나고있다 인터넷에 방법 외출 여기에 물러서지 전구에 끕니다. 그리고 당신은 굳이 믿을 수 있고이 경우 가장 복잡한 스크래치 아마도 한 프로젝트의 누군가가 implemented--있다 그는 일에, 공평하게, 그것을했다. 그리고 그것은 우리가 아래로 던져 도전이었다 댄 우리는 진 전구를 보았을 때 우리는 스크래치가 어떻게 우리는 그들을 결합 할 수 있습니다? 그리고, 참으로,이 절대적으로 이 방에 뭔가 사람 학기 end-- 그는인가에 의해 할 수 사용하여 다시 구현 이진 전구 이었다 동일한 인터페이스 수요일에 우리의 아이 패드. 지금, 나는 실제로 경우에 따라서 여기에있는 플러스 기호 (+)를 클릭 우리는 하나, 둘, 셋있다. 나는 16를 쳤고에 하나를 설정할 수 있습니다. 128, 등등. 그 혼자 지금 경우 당신의 마음을 날려, 당신이 일이 훨씬 더 접근 할 수있는, 확실히 하드웨어를 포함하지. 화면 자체에 그냥 가지. 그리고, 참, 무슨 대부분의 학생들 게임의 어떤 종류의 일을 끝낼, 예술 작품의 일부 조각, 또는 대화 형 애니메이션의 일종. 그리고 중 하나를 말할 것이다 우리 즐겨 찾기는이 하나가되었습니다. 그리고 나는 경우 생각 우리 조명을 차단 수 우리는 마지막에 살짝 할게요 결론적으로 스크래치 프로젝트. 하지만 당신은 마음에 무엇을 보관해야합니다 나는 마지막 세부 사항을 애타게 할 수 있습니다 절편은 다음 주에 시작됩니다. 근무 시간은 다음 주에 시작됩니다. 문제는 제로가 게시됩니다 설정 CS50.harvard.edu 나중에 오늘. 그리고 당신을 맞이합니다 문제 설정 제로에 CS50 자신의 Zamyla 찬, 누가 대부분의 우리의 연습을 안내합니다. 이러한 임베디드 비디오 아르 문제 세트에서 그 많은 일을 손을 개최합니다 많은 통해 초기 설정 및 가능한 설계 결정. 당신이했습니다 경우에 따라서 지금까지 그 감정을 가지고 있었다 숙제를들 때 궁금해, 어디서 시작 할까? 그녀는 당신을 위해 그 대답을해야합니다. 그리고 지금, 최종 프로그램 당신의 전임자 중 하나에서 질문에 대한 대답 "여우는 무엇을 말하는가?" [MUSIC YLVIS은 "FOX는 무엇을 말하는가?] YLVIS은 (SINGING) 개 씨실을 간다. 고양이는 야옹 간다. 조류 트윗을 이동하고 마우스 찍찍갑니다. 암소 음메 간다. 개구리 까악 까악 우는 소리 간다. 그리고 코끼리 툿 간다. 오리가 꽥꽥 거리는 소리와 물고기가 BluB 효소 가자. 그리고 인감, 오우, 오우, 오우 간다하지만, 아무도 알고 한 소리가있다, 여우는 무엇을 말하는가? 그리고 데이비드 J. 마란 : 그 CS50은 여기까지. 우리는 당신을 볼 수 있습니다 낮과 월요일에 퍼즐. [박수] [MUSIC YLVIS, "FOX SAY을 무엇입니까?"] 내레이터 : 그리고 지금 깊은 Daven 판햄으로 생각. 나는에 맞았 오늘 전화 번호부에 직면하고 있습니다. 나는에있어로, 혼동 집은 온라인보고.