Quyết định của Viện Công nghệ Massachusetts ( MIT ) thay thế Scheme bằng Python trong các khóa học khoa học máy tính cơ bản đã gây ra cuộc tranh luận liên tục về hướng đi của giáo dục khoa học máy tính. Sự thay đổi này, diễn ra vào giữa những năm 2000, đánh dấu sự kết thúc của một kỷ nguyên đối với một trong những chương trình giảng dạy lập trình có ảnh hưởng nhất trong lịch sử học thuật.
Sự Kết Thúc của Bốn Khóa Học Chuyên Sâu
Phương pháp ban đầu của MIT tập trung vào bốn khóa học chuyên sâu 15 tín chỉ khám phá các ngôn ngữ của kỹ thuật. Khóa học nổi tiếng 6.001, Cấu Trúc và Diễn Giải Chương Trình Máy Tính, sử dụng Scheme để dạy các khái niệm cơ bản mà không bị phân tâm bởi cú pháp ngôn ngữ phức tạp. Khóa học này, cùng với ba khóa khác bao gồm mạch điện, tín hiệu và kiến trúc máy tính, cung cấp cho sinh viên nền tảng lý thuyết sâu sắc trong khoa học máy tính.
Tuy nhiên, việc giảm tỷ lệ đăng ký sau sự sụp đổ của bong bóng dot-com, đặc biệt là trong các nhóm thiểu số, đã thúc đẩy việc đại tu chương trình giảng dạy. Khoa đã thay thế bốn khóa học chuyên sâu bằng hai khóa học khảo sát 12 tín chỉ được thiết kế để giới thiệu các ứng dụng thú vị của khoa học máy tính, từ robot học đến mạng máy tính.
Chương trình giảng dạy EECS ban đầu của MIT (1980s-2005)
- 6.001: Structure and Interpretation of Computer Programs ( Scheme )
- 6.002: Circuits and Electronics
- 6.003: Signals and Systems
- 6.004: Computation Structures
- Mỗi khóa học: 15 đơn vị tín chỉ (định dạng chuyên sâu tập trung)
Từ Lý Thuyết đến Ứng Dụng
Chương trình giảng dạy mới nhấn mạnh vào các ứng dụng thực tế hơn là chiều sâu lý thuyết. Khóa học thay thế, 6.01, cho sinh viên làm việc với robot điều hướng trong mê cung sử dụng cảm biến và suy luận Bayesian. Python được chọn chủ yếu vì lý do thực tế - nó có các thư viện cần thiết cho giao diện robot và cho phép sinh viên viết các chương trình ngắn cho các nhiệm vụ cụ thể như điều khiển robot.
Sự chuyển đổi này phản ánh xu hướng rộng lớn hơn trong giáo dục khoa học máy tính. Nhiều khoa đã chuyển từ việc dạy các khái niệm khoa học máy tính thuần túy sang các kỹ năng lập trình nghề nghiệp hơn. Sự thay đổi này thừa nhận rằng hầu hết sinh viên sẽ không theo đuổi sự nghiệp học thuật mà thay vào đó cần các kỹ năng có thể tiếp thị được cho các vị trí trong ngành.
Chương trình giảng dạy EECS mới của MIT (2005-2007)
- 6.01: Giới thiệu về EECS I ( Python ) - robot học, điều khiển, cảm biến, thống kê
- 6.02: Giới thiệu về EECS II - truyền thông, mạng, lý thuyết thông tin
- Mỗi khóa học: 12 đơn vị tín chỉ (định dạng khảo sát)
- Trọng tâm: Tiếp xúc rộng rãi với các ứng dụng EECS thay vì nền tảng lý thuyết sâu
Cuộc Tranh Luận Lớn: Scheme so với Python
Cộng đồng lập trình vẫn chia rẽ về sự chuyển đổi này. Những người ủng hộ Scheme lập luận rằng tính thuần khiết toán học và cú pháp tối giản của ngôn ngữ này làm cho nó trở nên lý tưởng để dạy các khái niệm cơ bản như đệ quy, trừu tượng hóa và lập trình hàm. Sinh viên có thể nắm vững toàn bộ ngôn ngữ một cách nhanh chóng và tập trung vào các nguyên lý cốt lõi của khoa học máy tính.
Có một sự thuần khiết trong Scheme. Đó là một ngôn ngữ nhẹ và đẹp mà bất kỳ ai cũng có thể học trong một cuối tuần. Nó không làm gì kỳ diệu cho bạn, điều đó có nghĩa là bạn được / phải xây dựng mọi thứ bạn muốn và bạn phải hiểu cách chúng kết hợp với nhau.
Những người ủng hộ Python phản bác rằng sinh viên được hưởng lợi từ việc học một ngôn ngữ được sử dụng rộng rãi với các thư viện mở rộng và ứng dụng thực tế. Họ lập luận rằng hệ sinh thái của Python cung cấp giá trị thực tế và động lực ngay lập tức để tiếp tục học tập, trong khi kiến thức về Scheme có khả năng chuyển giao hạn chế đến công việc trong ngành.
Những Khác Biệt Chính: Scheme so với Python trong Giáo Dục
Khía cạnh | Scheme | Python |
---|---|---|
Độ phức tạp của ngôn ngữ | Cú pháp tối giản, toàn bộ đặc tả chỉ vừa 2 trang | Phức tạp, giàu tính năng với thư viện chuẩn mở rộng |
Đường cong học tập | Ban đầu khó, nhưng có thể thành thạo hoàn toàn | Khởi đầu nhẹ nhàng hơn, nhưng hiểu hết hệ sinh thái cần nhiều năm |
Liên quan đến ngành | Sử dụng thương mại hạn chế | Được sử dụng rộng rãi trong ngành |
Trọng tâm giảng dạy | Các khái niệm CS thuần túy, tư duy toán học | Ứng dụng thực tế, dự án thực tế |
Nền tảng sinh viên | San bằng sân chơi (ít người có kinh nghiệm trước) | Không đồng đều (một số sinh viên có kinh nghiệm đáng kể) |
Hiệu Ứng Cân Bằng
Một lợi thế thường bị bỏ qua của Scheme là khả năng tạo sân chơi bình đẳng giữa các sinh viên. Vì ít trường trung học dạy lập trình hàm, tất cả sinh viên đều bắt đầu từ cùng một điểm xuất phát. Điều này trái ngược với các ngôn ngữ như Python hoặc Java, nơi một số sinh viên đến với kinh nghiệm trước đó đáng kể, tạo ra môi trường học tập không đồng đều.
Cuộc tranh luận cũng đề cập đến những câu hỏi cơ bản về mục đích của giáo dục đại học. Liệu các tổ chức ưu tú có nên tập trung vào nền tảng lý thuyết phát triển kỹ năng tư duy sâu sắc, hay họ nên cung cấp đào tạo thực tế chuẩn bị sinh viên cho việc làm ngay lập tức? Câu trả lời có thể khác nhau tùy thuộc vào việc sinh viên có kế hoạch theo đuổi sự nghiệp nghiên cứu hay trực tiếp gia nhập ngành.
Nhìn Về Phía Trước
Chương trình giảng dạy khoa học máy tính của MIT ngày nay đã phát triển hơn nữa, chuyển sang một chuỗi CS0/CS1 thông thường hơn tương tự như các trường đại học khác. Khoa đã phần lớn từ bỏ ý tưởng về một chương trình giảng dạy cốt lõi thống nhất, phản ánh sự mở rộng và chuyên môn hóa liên tục của lĩnh vực này.
Sự chuyển đổi từ Scheme sang Python đại diện cho nhiều hơn chỉ là một sự thay đổi ngôn ngữ - nó tượng trưng cho sự chuyển đổi của giáo dục khoa học máy tính từ trừu tượng toán học sang tính thực tế của kỹ thuật. Mặc dù cả hai phương pháp đều có giá trị, sự lựa chọn tiết lộ những giả định cơ bản về những gì sinh viên cần để thành công trong bối cảnh công nghệ ngày càng phức tạp.
Tham khảo: Why MIT switched from Scheme to Python