Giới thiệu về Khoa học Máy tính của CS50 là một khóa học trực tuyến miễn phí dựa trên một trong những khóa học phổ biến nhất trong khuôn viên trường Đại học Harvard. Trong khóa học này, bạn có thể tìm hiểu về các khái niệm khoa học máy tính cốt lõi, chẳng hạn như
- Các thuật toán - tìm kiếm nhị phân, sắp xếp bong bóng, sắp xếp hợp nhất, v.v.
- Cấu trúc dữ liệu - danh sách được liên kết, bảng băm, v.v.
- Bộ nhớ - ngăn xếp và đống
Các ngôn ngữ được sử dụng là C, Python, SQL, cộng với một số ngôn ngữ khác dựa trên những gì bạn chọn cho bản nhạc cuối cùng [CẬP NHẬT. Có vẻ như họ đã loại bỏ các bản nhạc cho phiên bản 2021]. Có vô số các khóa học CS miễn phí có sẵn trực tuyến, nhưng đây là khóa học thú vị và hấp dẫn nhất mà tôi đã tìm thấy cho đến nay
Tôi đã viết "nhà phát triển tự học" trong tiêu đề vì tôi nhận thấy rằng những người không được đào tạo chính quy về CS sẽ ít có cơ hội tiếp xúc sâu với các chủ đề này. Nhưng tất nhiên, tôi muốn giới thiệu nó cho bất kỳ ai quan tâm đến những chủ đề này
Đây là ba điểm mà tôi yêu thích về khóa học này và hai nhược điểm tiềm năng
ưu
- Triết lý của họ
- Các bài giảng là một niềm vui để xem
- Các nhiệm vụ là sáng tạo
[Tiềm năng] Nhược điểm
- Có thể không hữu ích cho công việc hàng ngày của bạn
- Bạn không được xem các giải pháp do nhân viên triển khai cho các nhiệm vụ
ưu
1. Triết lý của họ
Khóa học này hướng tới mọi người ở mọi cấp độ lập trình. Họ nói với bạn trong tuần đầu tiên
điều cuối cùng quan trọng trong khóa học này không phải là bạn kết thúc ở đâu so với các bạn cùng lớp mà là bạn kết thúc ở đâu so với chính bạn khi bạn bắt đầu
Chỉ để tham khảo, tôi có 1 năm kinh nghiệm chuyên môn, mặc dù không có kinh nghiệm về C hoặc Python. Một số bài tập vẫn còn rất khó đối với tôi và khóa học trị giá một tuần sẽ khiến tôi mất khoảng 10 giờ để hoàn thành, tùy thuộc vào tài liệu [Là một nhà phát triển Ruby, công cụ Python trực quan hơn nhiều so với C. ]
Khóa học thực hiện rất tốt việc thân thiện với người mới bắt đầu và đồng thời cũng đầy thách thức, bởi vì các bài giảng hướng dẫn bạn nội dung tốt nhưng các bài tập đòi hỏi bạn phải thực sự suy nghĩ và nghiên cứu nhiều hơn. Ngoài ra, họ thường cho bạn lựa chọn hai nhiệm vụ, tùy thuộc vào việc bạn "thoải mái hơn" hay "kém thoải mái hơn"
2. Các bài giảng là một niềm vui để xem
Ngoài việc cung cấp thông tin, các bài giảng của Giáo sư David Malan còn có nhịp độ tốt, sinh động và sáng tạo. Xem bất kỳ video nào trong số chúng và có thể bạn sẽ đồng ý [cũng có sẵn trên Youtube]
3. Các nhiệm vụ là sáng tạo
Thay vì các nhiệm vụ nhàm chán như "lặp lại mảng này trong C", bạn có thể triển khai các chương trình như bộ lọc ảnh, trình kiểm tra chính tả, hệ thống bỏ phiếu và cơ sở dữ liệu học sinh Hogwarts, sử dụng các khái niệm mà bạn đã học được trong quá trình thực hiện
Một điều khác tôi thích là hệ thống thử nghiệm của họ có tên là Check50, cung cấp cho bạn phản hồi tức thì khi bạn gửi mã của mình. Thật hài lòng khi cuối cùng bạn đã vượt qua tất cả các bài kiểm tra để trả về một khuôn mặt cười màu xanh lá cây. ]
Thí dụ
[Tiềm năng] Nhược điểm
1. Có thể không hữu ích cho công việc hàng ngày của bạn
Dù tốt hay xấu, đây không phải là một khóa học cấp tốc. Nếu bạn muốn tìm hiểu một chủ đề cụ thể một cách nhanh chóng, chẳng hạn như React, có các hướng dẫn trực tuyến tốt hơn [hoàn toàn lạc đề, nhưng tôi thực sự khuyên dùng Scrimba để học các ngôn ngữ/khung giao diện người dùng bao gồm cả React]
Điều đó đang được nói, tôi nghĩ rằng việc học các khái niệm cốt lõi về khoa học máy tính này sẽ có lợi cho bất kỳ nhà phát triển nào theo một cách nào đó
Ví dụ: tôi đã sử dụng hàm băm [từ điển] của Ruby trong một thời gian dài và tôi biết rằng việc tìm giá trị từ hàm băm bằng khóa của nó nhanh hơn nhiều so với việc tìm giá trị từ một mảng. Nhưng trước khi tôi tham gia khóa học này, tôi đã không hiểu cách thực hiện hàm băm. Tìm hiểu về các bảng băm và thực sự triển khai một bảng cho phép tôi hiểu rõ hơn về các hàm băm của Ruby
2. Bạn không được xem các giải pháp do nhân viên triển khai cho các nhiệm vụ
Như tôi đã đề cập, khi bạn gửi bài tập trực tuyến, mã của bạn sẽ được kiểm tra thông qua một hệ thống có tên là Check50. Bạn không được xem giải pháp mà nhân viên đã nghĩ đến hoặc so sánh song song với giải pháp của bạn
Đây không phải lúc nào cũng là vấn đề và tôi hiểu lý do của họ, nhưng có một dịp đặc biệt khi tôi ước mình có thể thấy các giải pháp do nhân viên thực hiện. khi tôi đang viết các truy vấn SQL. Các truy vấn của tôi đã hoạt động và vượt qua các bài kiểm tra Check50, nhưng không có cách nào để biết liệu chúng có thể được tối ưu hóa hơn nữa hay không. Xem câu trả lời do nhân viên thực hiện sẽ giúp ích ở đó
Nếu khóa học này có vẻ thú vị với bạn, tôi thực sự khuyên bạn nên xem nó trên edX. Và nếu bạn quyết định lấy nó, chúc bạn may mắn
Giới thiệu về lập trình bằng ngôn ngữ có tên Python. Tìm hiểu cách đọc và viết mã cũng như cách kiểm tra và “gỡ lỗi” mã đó. Được thiết kế cho sinh viên có hoặc không có kinh nghiệm lập trình trước đó muốn học Python cụ thể. Tìm hiểu về hàm, đối số và giá trị trả về [oh my. ]; . Tìm hiểu cách xử lý ngoại lệ, tìm và sửa lỗi cũng như viết bài kiểm tra đơn vị; . Cơ hội thực hành để thực hành nhiều. Các bài tập lấy cảm hứng từ các vấn đề lập trình trong thế giới thực. Không yêu cầu phần mềm ngoại trừ trình duyệt web hoặc bạn có thể viết mã trên PC hoặc Mac của riêng mình
Trong khi bản thân CS50x tập trung vào khoa học máy tính nói chung cũng như lập trình với C, Python, SQL và JavaScript, thì khóa học này, hay còn gọi là CS50P, hoàn toàn tập trung vào lập trình với Python. Bạn có thể lấy CS50P trước CS50x, trong CS50x hoặc sau CS50x. Nhưng để giới thiệu về khoa học máy tính, bạn vẫn nên dùng CS50x
Xem giới thiệuLàm thế nào để tham gia khóa học này
Ngay cả khi bạn không phải là sinh viên của Harvard, bạn vẫn được hoan nghênh “tham gia” khóa học này miễn phí thông qua OpenCourseWare này bằng cách thực hiện theo cách của bạn trong mười tuần tài liệu của khóa học. Nếu bạn muốn gửi các bộ vấn đề của khóa học và dự án cuối cùng để nhận phản hồi, hãy nhớ tạo một tài khoản edX, nếu bạn chưa có. Đặt câu hỏi trên đường đi thông qua bất kỳ cộng đồng nào của khóa học
Cách dạy khóa học này
Nếu bạn là giáo viên, bạn có thể áp dụng hoặc điều chỉnh các tài liệu này cho khóa học của riêng mình, theo giấy phép