JavaRush /Blog Java /Random-VI /Tài liệu bổ sung bài giảng CS50: Tuần 0 (Bài 1 và 2)
Bender
Mức độ
Маунтин-Вью

Tài liệu bổ sung bài giảng CS50: Tuần 0 (Bài 1 và 2)

Xuất bản trong nhóm
Ai chưa xem bài giảng cơ bản về lập trình của Harvard thì vào đây: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Giới thiệu. Cấu trúc khóa học CS50

Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 1Bạn! Trong phần giới thiệu, chúng tôi sẽ nhắc nhở bạn (hoặc cho bạn biết bất kỳ ai) về cấu tạo của CS50. Khóa học kéo dài 12 tuần. Mỗi tuần có hai bài giảng cũng như đủ loại hội thảo và giải thích. Chúng tôi sẽ xuất bản những bài viết như thế này ngay khi các bài giảng đã sẵn sàng. Nó sẽ chứa một mô tả ngắn gọn về các bài giảng, ghi chú về “ngắn gọn” và thông tin bổ sung, cũng như bản dịch của các bài tập thực hành. Các bài giảng về tuần 0 đề cập đến các vấn đề sau:
  • Hệ thống số nhị phân.
  • ASCII
  • Thuật toán và tư duy thuật toán
  • Trình biên dịch
  • Ngôn ngữ đầu
  • Biểu thức Boolean
  • Điều kiện
  • Chu kỳ
  • Biến
  • Chức năng
  • Mảng
  • Dòng
  • Sự kiện
Mục tiêu tuần 0:
  • Hiểu cách thông tin có thể được trình bày dưới dạng kỹ thuật số.
  • Tìm hiểu các khái niệm và cấu trúc phần mềm cơ bản.
  • Tạo hoạt hình, trò chơi hoặc hoạt động tương tác của riêng bạn bằng Scratch.
  • Gây ấn tượng với bạn bè của bạn =).

CS50 Tuần 0 (Bài giảng 1-2): lưu ý

Thuật toán

Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 2Chúng tôi hy vọng bạn đã xem các bài giảng và hiểu rằng thuật toán chia nhỏ cách giải các bài toán (các bài toán khác nhau, bài toán hoặc “làm thế nào để đến ga tàu điện ngầm N”) thành các bước. Hơn nữa, mỗi bước phải được hoàn thành trong một khoảng thời gian hữu hạn và bản thân nó phải có một số bước nhất định. Ngoài ra, bước tiếp theo phụ thuộc vào bước trước đó. Bạn có thể đọc thêm về các thuật toán, chẳng hạn như tại đây . Nếu bạn biết tiếng Anh thì đây là phim hoạt hình TED tuyệt vời của David Malan: https://youtu.be/6hfOvs8pY1k Mặc dù nhìn chung thông tin trong video lặp lại trong bài giảng =).

Hệ thống số nhị phân

Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 3Chúng ta có 10 ngón tay và hệ thống là số thập phân. Nghĩa là, chúng ta có thể biểu thị bất kỳ số nào, dù lớn đến đâu, bằng cách sử dụng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Tùy thuộc vào vị trí của số đó, nó có thể có nghĩa là những điều khác nhau : nếu chữ số này là chữ số cuối cùng thì nó nằm ở hàng đơn vị, chữ số áp chót ở hàng chục, thậm chí xa hơn về bên trái là ở hàng trăm, v.v. Về cơ bản, bất kỳ số nào cũng có thể được viết dưới dạng tổng của các chữ số, mỗi chữ số được nhân với mười lũy thừa nhất định. Trong trường hợp đơn vị - không. Ví dụ: 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Số mà các chữ số được nhân với nhau được gọi là cơ số của hệ thống số. Đối với hệ thập phân, cơ số hợp lý là 10. Máy tính không có ngón tay nhưng có hai trạng thái: có điều kiện “dòng điện chạy” và “dòng điện không chạy”, bằng 0 và một. Theo đó, tất cả các số (và thông tin nói chung) trong bộ nhớ máy tính chỉ bao gồm hai chữ số - 0 và 1. Vị trí của chúng, như trong trường hợp hệ thống số thập phân, biểu thị chữ số. Chỉ bây giờ số này mới có thể được phân tách thành tổng các chữ số nhân không phải với lũy thừa mười mà bằng lũy ​​thừa hai. 0 ở dạng nhị phân = 0 1 ở dạng nhị phân = 1 2 ở dạng nhị phân = 10 7 10 =111 2 Học cách chuyển đổi từ nhị phân sang thập phân. Có thể bạn đã hiểu cách thực hiện - chúng ta chỉ cần lấy chữ số của số bắt đầu từ số ngoài cùng bên phải và nhân nó với lũy thừa tương ứng với chữ số của nó, rồi cộng mọi thứ với mỗi chữ số. Ví dụ: Tìm số thập phân tương tự của số nhị phân 101101 2 Số ngoài cùng bên phải = 1*2 0 Số 0 tiếp theo = 0*2 1 Số thứ ba từ bên phải = 1*2 2 Số thứ tư = 1*2 3 .. .và cứ thế 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Hãy tưởng tượng tám bóng đèn được sắp xếp thành một hàng. Mỗi người trong số họ có công tắc riêng. Mỗi bóng đèn là một sự phóng điện. Bạn có thể tưởng tượng điều gì, hãy nhớ lại bài giảng đầu tiên (có một thiết bị như vậy ở đó) hoặc đây là một tiện ích dành cho bạn: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Chơi với nó, hãy thực hành “cảm nhận” nó theo hệ nhị phân. Chuyển đổi từ thập phân sang nhị phân. Ở đây cũng vậy, mọi thứ đều rất đơn giản, nếu bạn hiểu được bản chất. Ở đây chúng ta có số 57 10 . Để chuyển đổi nó sang hệ nhị phân, bạn cần xác định công suất tối đa của hai không vượt quá con số này. 2 6 = 64. Rõ ràng là quá nhiều. Nhưng 2 5 = 32. Bây giờ chúng ta đã xác định được chữ số có nghĩa nhất. 32 10= 100000 2 . Bây giờ chúng tôi đang tìm kiếm chữ số tiếp theo. 57-32 = 25. Bây giờ với 25, chúng ta đang tìm lũy thừa của hai không vượt quá 25. 2 4 = 16. Điều này có nghĩa là chữ số tiếp theo của chúng ta cũng bằng 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, nhỏ hơn 9. Điều này có nghĩa là chữ số tiếp theo cũng sẽ là một. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, tức là chỉ còn lại một lũy thừa 2 0 . Vậy 57 10 = 111001 2 . Nếu đột nhiên có điều gì đó vẫn chưa rõ ràng, bạn có thể đọc thêm trong Wikibook, và nếu bạn giỏi tiếng Anh thì đây là một bổ sung nhỏ cho bài giảng.

ASCII

Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 4Máy tính chỉ hiểu số 0 và số 1, và bộ nhớ của nó có thể được biểu diễn dưới dạng một chuỗi bóng đèn rất dài có công tắc, như bạn đã thấy ở trên. Chúng ta đã hiểu cách biểu diễn số trong máy tính. Còn những thông tin còn lại thì sao? Thư, hình ảnh? Giả sử có 26 chữ cái trong bảng chữ cái tiếng Anh. Nghĩa là, về mặt lý thuyết, chúng ta chỉ có thể biểu thị các chữ cái có số từ 0 đến 25 trong hệ nhị phân. Câu hỏi sau đây được đặt ra: làm thế nào chúng ta có thể hiểu được chúng ta có chữ cái viết thường hay chữ in hoa? Còn dấu chấm câu thì sao? Dấu hiệu vô hình như không gian? Tóm lại, chúng ta cần một hệ thống mã hóa, Cap! Vào những năm 1960, có nhiều phương pháp mã hóa ký tự khác nhau. Sự thiếu đồng nhất đã trở thành một vấn đề, và vào năm 1963, Viện Tiêu chuẩn Hoa Kỳ, ANSI, đã phát triển và giới thiệu sơ đồ mã hóa ASCII (Mã tiêu chuẩn Mỹ cho trao đổi thông tin). Mỗi ký tự ASCII bao gồm bảy bit hoặc bảy bit, mỗi bit có thể nhận giá trị 0 hoặc 1. 7 bit có thể chứa các số từ 0 đến 127 ở dạng nhị phân, nghĩa là chúng ta có 128 số để mã hóa các ký tự. Có vẻ như điều này là đủ để mã hóa bài phát biểu bằng văn bản tiếng Anh? Hãy đếm: az - 26 tùy chọn AZ - 26 thêm 0-9 - 10 ,;:~& và các dấu chấm câu khác - 32 Và một khoảng trắng nữa. Tổng cộng - 95 ký tự. 33 tùy chọn còn trống còn lại được sử dụng cho cái gọi là ký tự điều khiển, chẳng hạn như nguồn cấp dữ liệu dòng hoặc trả về đầu dòng: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Điều quan trọng là phải phân biệt giữa ký tự 0-9 và giá trị số 0 -9. Các ký tự 0-9 được biểu thị bằng giá trị ASCII 48-57. Thật thú vị khi lưu ý rằng bốn bit ngoài cùng bên phải của các giá trị ASCII này là biểu diễn nhị phân của các giá trị số 0-9. Điều này phần nào đơn giản hóa cách chuyển đổi giữa các giá trị ASCII và giá trị số thực của chúng. Hãy bắt đầu lập trình?

Cào

Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 5Vì vậy, Scratch. Bạn đã được nghe về ngôn ngữ lập trình trực quan này và các lệnh cơ bản của nó trong bài giảng. Để tự mình thử Scratch, hãy nhấp vào liên kết và nhấp vào “Tham gia”. Sau khi đăng ký, bạn có thể bắt đầu lập trình trực tuyến. Vâng, nhân tiện, ngày nay Scratch đã được Nga hóa một phần. Tuy nhiên, sự trợ giúp vẫn bằng tiếng Anh. Nếu muốn, bạn có thể chơi và xem mã của các dự án sinh viên đã được trình bày trong bài giảng. Đây là trò bắt bánh ngọt Pikachu . Hoặc một dự án phân loại rác thải vào các thùng chứa khác nhau: https://scratch.mit.edu/projects/71161586/ David và công ty yêu cầu bạn đừng lo lắng nếu bạn nghĩ rằng mình không thể thực hiện những dự án phức tạp như vậy: cấp độ này đã yêu cầu một số kỹ năng .

Bài tập

  1. Để hiểu rõ hơn về các quy trình diễn ra trong Scratch, bạn có thể tải xuống mã nguồn của một số dự án từ đây . Chơi xung quanh và xem. Học code của người khác rất hữu ích. Đây là một trong những cách tốt nhất để tìm hiểu những gì bên trong những chương trình mà bản thân bạn vẫn chưa thành thạo. Khi bạn bắt đầu hiểu cách các ứng dụng này hoạt động, bạn có thể tiếp tục một cách an toàn.

  2. Bây giờ là lúc bạn phải tự mình làm điều gì đó. Thử thách là vừa vui vẻ vừa thực hiện một dự án nhỏ từ đầu. Đó có thể là hoạt hình, trò chơi, hành động tương tác.

Yêu cầu dự án:
  • Chương trình phải chứa ít nhất hai sprite (ký tự, hình ảnh) và một trong số chúng chắc chắn không được là mèo =).
  • Phải có ít nhất ba tập lệnh (hành động).
  • Ít nhất một điều kiện, một vòng lặp và một biến phải được thực thi.
  • Ít nhất một âm thanh phải được đưa vào chương trình.
Nghĩa là, về bản chất, dự án của bạn sẽ phức tạp hơn những dự án được viết trong bài giảng, nhưng đơn giản hơn những đồ chơi được minh họa về Pikachu và việc thu gom rác. Vì vậy, dự án của bạn có thể sẽ sử dụng hàng tá câu đố tạo nên mã Scratch. Nếu có điều gì đó không ổn, bạn có thể cần phải thay đổi cách tiếp cận để giải quyết vấn đề. Điều chính là đi mà không sợ hãi! Chúng tôi mời bạn đặt câu hỏi và chia sẻ dự án của bạn trong phần bình luận.

Scratch: hướng dẫn hành động nhanh

Sprite là đối tượng trung tâm của dự án. Bất kỳ nhân vật nào - một con mèo, một chiếc máy bay, một quả bóng - đều là một nhân vật. Nếu bạn thêm hai con mèo khác nhau thì đây là hai họa tiết khác nhau. Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 6Mỗi sprite có các đoạn script mô tả hành vi của nó. Đây là những khối hành động. Trang phục là hình dáng của đồ vật. Bản thân các sprite về cơ bản chỉ là những bức vẽ. Mỗi sprite có thể có nhiều trang phục. Để tạo nhân vật, bạn cần chọn trang phục ban đầu từ thư viện Scratch, vẽ trang phục của riêng bạn trong trình chỉnh sửa tích hợp, tải lên bất kỳ hình ảnh nào hoặc thậm chí chụp ảnh bằng webcam và tải nó lên. Tất cả các sprite đều được đặt trên cái gọi là sân khấu. Sân khấu về cơ bản là khung vẽ của chúng tôi, bối cảnh cho chương trình. Bạn cũng có thể đính kèm âm thanh từ thư viện vào một sprite hoặc cảnh hoặc bạn có thể tự tải chúng hoặc ghi lại chúng bằng micrô. Để bắt đầu thực hiện chương trình, bạn cần nhấp vào lá cờ màu xanh lá cây ở góc trên bên phải của cửa sổ cảnh. Nhưng trước khi thực hiện việc này, bạn cần đặt khối sau vào chương trình: Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 7Và đính kèm một số khối vào nó, như một phần của nhà thiết kế. Ví dụ: Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 8Trong trường hợp này, khi bạn nhấp vào lá cờ, sprite mà các hành động được đính kèm sẽ thực hiện 50 bước và kêu meo meo. Chúng tôi có rất nhiều khối. Chúng được chia thành ba tab: kịch bản, trang phục và âm thanh. Hãy tạo một chương trình đơn giản với một điều kiện. Nếu nó được đáp ứng, con mèo sẽ kêu meo meo; nếu nó không được đáp ứng, nó sẽ im lặng. Các nhà khai thác được chỉ định bằng màu xanh lá cây. Những cái kiểm tra xem một điều kiện là đúng hay sai có các góc nhọn ở hai bên. Cấu trúc và vòng lặp kiểm tra điều kiện được hiển thị bằng màu cam. Chúng có những lỗ đặc biệt để bạn có thể đặt các khối khác.

Chu kỳ:

Lặp lại vô số lần: Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 9Lặp lại một số lần nhất định: Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 10Lặp lại một hành động nếu điều kiện được đáp ứng: Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 11Bạn có thể tạo các biến trong khối Dữ liệu. Trong ví dụ bên dưới, chúng ta đã tạo một biến x và ngay lập tức có những hành động có thể thực hiện được với biến đó. Bạn có thể đặt phạm vi của các biến: cho tất cả các họa tiết hoặc cho một biến. Tài liệu bổ sung bài giảng CS50: Tuần 0 (bài 1 và 2) - 12Cờ xanh không phải là hành động duy nhất. Ngoài ra trong phần Sự kiện bạn có thể tìm thấy một số điều kiện kiểm soát khác. Ví dụ: bạn có thể chọn những việc cần làm khi nhấp vào một nút hoặc trên chính sprite bằng chuột. Nếu bạn cần thêm thông tin, bạn có thể tìm thấy nó, chẳng hạn như ở đây .

Còn gì nữa

Nếu khả năng truy cập Internet của bạn không như mong muốn, chúng tôi khuyên bạn nên tải xuống trình chỉnh sửa Scratch ngoại tuyến tại https://scratch.mit.edu/scratch2download/ . Sau đó, đừng quên gửi dự án của bạn tới http://scratch.mit.edu/ bằng Tệp > Tải lên từ Máy tính.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION