Câu hỏi hấp dẫn; Tôi thích sự nhấn mạnh của bạn về tiêu chí khách quan. Chúng tôi muốn sinh viên năm nhất học hỏi:
khái niệm lập trìnhKhái : Ngôn ngữ lập trình đầu tiên phải hỗ trợ: gọi hàm, lặp, đệ quy
ý tưởng cơ bản : Ngôn ngữ lập trình đầu tiên phải hỗ trợ các mảng (cho các bước đầu tiên trong phần giới thiệu nhẹ nhàng về cách thức bộ nhớ thực sự hoạt động và cách con trỏ hoạt động)
Kỹ năng lập trình thực tế : cách sử dụng trình gỡ lỗi, cách sử dụng trình lược tả, cách giải quyết các vấn đề lớn (ngôn ngữ cấp cao), cách kết hợp các hệ thống lớn, cách khắc phục sự cố (phân tách vấn đề), cách tránh viết mã phức tạp, làm thế nào để giao tiếp với con người ý định đằng sau một loạt các câu lệnh thực thi (thường là khó hiểu).
thực tế là các thư viện viết sẵn tồn tại cho những thứ như sort () và cách sử dụng chúng - tức là thực tế là không cần thiết phải viết mọi thứ từ đầu.
Các tiêu chí khác cho ngôn ngữ đầu tiên :
diễn giải (phản hồi nhanh giúp quá trình học tập).
một môi trường tương tác giúp tăng tốc độ học tập, kiểm tra và gỡ lỗi.
mã nguồn chất lượng cao có sẵn cho sinh viên đọc bằng ngôn ngữ đó
"Dễ đọc", "cú pháp tiếp cận ngôn ngữ tự nhiên" (để dễ đọc và phân loại SourceCode hơn)
di động (chạy trên Mac OS, Windows, Unix). Ít nhất một phần mềm miễn phí thực hiện ngôn ngữ.
dạy nhanh, "vài gotchas" - ví dụ: "[Tôi] có thể nhanh hơn để dạy người mới bắt đầu Python và sau đó là Java, thay vì Java như một OOPL đầu tiên." - "So sánh các ngôn ngữ progamming hướng đối tượng" và telescopeRule
Matthias Felleisen đã phát triển một ngôn ngữ lập trình với các thông báo lỗi phù hợp với khán giả mới bắt đầu. Ông nhấn mạnh rằng sự lựa chọn ngôn ngữ cụ thể không quan trọng bằng việc dạy một phương pháp thiết kế tốt. Trên thực tế, anh thấy khóa học CS đầu tiên là lớp Nghệ thuật tự do, dạy tư duy phản biện, giải quyết vấn đề và chú ý đến chi tiết.
tiêu chí cho ngôn ngữ lập trình thứ hai
Thứ chúng tôi muốn sinh viên học, nhưng có lẽ điều này có thể chờ ngôn ngữ lập trình thứ hai:
một ngôn ngữ "có liên quan" là "không quá bí truyền"; một cái gì đó "phổ biến trong ngành công nghiệp"
Lý thuyết phức tạp: làm thế nào để nhận ra các nhiệm vụ bất khả thi với công nghệ hiện tại.
công cụ cấp cao hơn: làm thế nào để chọn công cụ phù hợp cho công việc , cách sử dụng trình biên dịch, cấu trúc, lập trình hướng đối tượng, lập trình chức năng, lập trình logic, thiết kế trình biên dịch, soạn thảo và thao tác các hàm (theo nghĩa Lisp / ML), lập trình đồng thời và phân phối,
công cụ cấp thấp: số học con trỏ, kiến trúc máy tính. quản lý bộ nhớ, khung ngăn xếp, lập trình lắp ráp, kiến trúc máy, trình điều khiển thiết bị và thiết kế hệ điều hành (vì vậy máy sẽ không "giống như một hộp đen đáng sợ mà chúng không thể xâm nhập")
EDIT: Tôi thấy thất vọng khi đăng một bản tóm tắt về một cái gì đó mà tôi đã viết, phối hợp với nhiều người khác, "có thể không phải là một bài viết hợp pháp".
Vì vậy, tôi đang thêm một trích dẫn chính thức hơn vào liên kết không chính thức trước đây của mình, cố gắng tuân thủ sử dụng hợp lý và các vấn đề bản quyền wiki khác.
Câu trả lời này là bản tóm tắt về Ngôn ngữ đầu tiên của sinh viên năm nhất (Anon 2011) tại Kho lưu trữ mẫu Portland.
(Anon 2011) Nhiều tác giả vô danh và nhiều tác giả khác. "Ngôn ngữ đầu tiên của Freshmans". Kho lưu trữ mẫu Portland. Ngày 27 tháng 9 năm 2011 http://c2.com/cgi/wiki?FreshmansFirstL Language .