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
Bạ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
- 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
Chú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
Chú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
Má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
Vì 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
-
Để 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.
-
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.
- 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.
GO TO FULL VERSION