Làm thế nào tôi có thể dạy khoa học máy tính mà không cần sử dụng máy tính?


21

Ở một số nơi trên thế giới, mọi người thường không có quyền truy cập (và do đó ít kiến ​​thức về) máy tính, và ngay cả khi họ có, phần cứng và phần mềm đã lỗi thời và việc sử dụng bị vấy bẩn do mất điện và như vậy. Truy cập vào sách (tốt) cũng có xu hướng thiếu. Làm thế nào tôi có thể dạy khoa học máy tính trong những trường hợp như vậy?

Tôi lo lắng rằng nếu không thể làm thí nghiệm và áp dụng những gì họ học được, họ sẽ không học được gì cả mặc dù họ có động lực đáng kinh ngạc và dành phần lớn thời gian cho sở thích này. Có thể chỉ dạy CS về mặt lý thuyết?


13
Con người đã bị mê hoặc bởi toán học trong hàng ngàn năm. Không ai có quyền truy cập vào một máy tính kỹ thuật số trước đó. Trên thực tế, thông thường trên các khóa học lý thuyết bạn hoàn toàn không cần máy tính.
Juho

3
Tôi muốn chỉ ra rằng chương trình máy tính đầu tiên được viết khoảng 100 năm trước khi máy tính đầu tiên được chế tạo.
Gabe

2
Hãy nhìn vào cstheory . Hầu hết có lẽ những kẻ đó chỉ cần bút và giấy, và nó có thể là cao nhất của khoa học máy tính (tôi không biết họ nói gì về hầu hết thời gian).
Trylks

1
Nó có thể sẽ hữu ích nếu bạn làm nổi bật các khu vực của CompSci mà bạn dự định bao gồm. Những thứ như toán học rời rạc và thậm chí các cấu trúc dữ liệu hoặc thuật toán có thể được bao phủ trên bút và giấy một mình. Kỹ thuật phần mềm mặt khác có thể có vấn đề.
NotMe

1
@abhimanyu Tuyệt vời, câu hỏi đã được "bảo vệ" trước khi tôi có thể đăng câu trả lời của mình; Tôi đặt nó ở đây bây giờ: pastebin.com/6tbMtVM8 (Đây là một lâu câu trả lời, như các khả năng nên được rõ ràng nhưng dường như không được Có nhiều ý tưởng trong đó và tôi hy vọng bạn tìm thấy một cái gì đó hữu ích ....)
không ai

Câu trả lời:


24

Hỏi làm thế nào bạn có thể nghiên cứu khoa học máy tính mà không cần máy tính cũng giống như hỏi làm thế nào bạn có thể nghiên cứu vũ trụ học mà không cần kính viễn vọng. Chắc chắn, thật tuyệt khi có thể nhìn vào những thứ bạn đang học và thường rất hữu ích để có thể chơi xung quanh với mọi thứ. Nhưng có rất nhiều thứ bạn có thể làm mà không cần truy cập vào máy tính: trong trường hợp cực đoan , bạn có thể có thể thực hiện hầu hết tất cả các khóa học đại học không có máy tính.

Trong điều kiện thực tế, truy cập vào máy tính giúp củng cố rất nhiều những gì bạn học trong một khóa học khoa học máy tính. Rõ ràng, các khóa học lập trình sẽ tự nhiên hơn rất nhiều khi truy cập vào máy tính. Mặt khác, việc buộc phải viết mã trên giấy không khuyến khích mọi người nghĩ về mã của họ và đảm bảo rằng nó thực sự hoạt động, thay vì cứ chạy đi chạy lại trình biên dịch cho đến khi nó biên dịch và chạy lại các trường hợp kiểm tra tầm thường cho đến khi các lỗi rõ ràng biến mất

Các chủ đề sẽ là tự nhiên nhất mà không có máy tính sẽ là những chủ đề toán học hơn. Tất cả các toán học nền, chẳng hạn như tổ hợp và xác suất. Khả năng tính toán, ngôn ngữ chính thức, logic, lý thuyết phức tạp, thiết kế và phân tích thuật toán, thông tin và lý thuyết mã hóa. Bất cứ điều gì để làm với tính toán lượng tử!


11
+1 sự khác biệt giữa CS và lập trình là chìa khóa! Khóa học CS đại học của tôi có những yêu cầu tối thiểu để sử dụng máy tính, ngoài việc truy cập tài liệu đọc trực tuyến, tôi có thể dễ dàng tra cứu dưới dạng cây chết trong thư viện.
Vũ trụ Ossifrage

4
@CosmicOssifrage Tôi đồng ý nhưng, trong khi CS không lập trình, lập trình là một công cụ rất hữu ích cho các nhà khoa học máy tính có sẵn theo ý của họ. Và đó là lý do tại sao chúng tôi dạy nó.
David Richerby

2
@Abhimanyu Điều đó phụ thuộc vào trình độ chuyên môn của bạn. Nếu bạn có kiến ​​thức và kỹ năng, chúng chỉ là một bảng đen cách xa tâm trí học sinh của bạn.
Raphael

2
@vzn Không, một phần lớn lập trình là học nghệ thuật sửa lỗi. Nó rất quan trọng. Nhưng đó không phải là khoa học máy tính .
David Richerby

2
@vzn Nếu bạn trích dẫn người đàn ông, hãy làm điều đó đúng. Ông đang nói về các thí nghiệm thời gian chạy với mục đích xác minh / bác bỏ các giả thuyết (khoa học), không gỡ lỗi. Tôi không nghĩ rằng Sedgewick từng tuyên bố rằng thử nghiệm / gỡ lỗi triển khai thử nghiệm của bạn là khoa học .
Raphael

10

Có sự sử dụng rõ ràng của giấy và bút chì. Khi tôi được dạy xử lý tín hiệu, bộ xử lý tín hiệu đặc biệt không có sẵn trực tiếp cho chúng tôi và chúng tôi chỉ đưa ra các báo cáo bằng giấy.

Lưu ý rằng nhà khoa học máy tính vĩ đại Dijkstra rõ ràng không sử dụng máy tính nhiều:

Hầu như tất cả các bài viết trong loạt bài này xuất hiện sau năm 1972 đều được viết bằng tay. Đã phát minh ra nhiều công nghệ của phần mềm, Dijkstra đã tránh sử dụng máy tính trong công việc của mình trong nhiều thập kỷ. Ngay cả sau khi anh ta chịu thua sự khuyến khích của các đồng nghiệp UT và có được một máy tính Macintosh, anh ta chỉ sử dụng nó cho e-mail và để duyệt World Wide Web.

Trích dẫn từ Đài tưởng niệm Disjkstra

Điều này cho thấy bạn có thể làm khoa học máy tính tuyệt vời mà không cần máy tính!

Bên cạnh các vấn đề khoa học máy tính bằng giấy và bút chì cũng có thể được giải quyết 'trong thế giới thực', ví dụ, trình diễn các thuật toán sắp xếp bằng thẻ hoặc - khác thường hơn - với điệu nhảy được thực hiện bởi Đại học Sapientia .


Bất kỳ lời khuyên về làm thế nào để làm điều này có hiệu quả? Giáo viên có thể không có lợi ích của một bài giảng bảng đen phấn tại một trường đại học lớn.
Raphael

3
Nhiều toán học được dạy phấn đen. Tôi cho rằng bạn chỉ làm tương tự với khoa học máy tính.
Finn Årup Nielsen

Một ví dụ ở đây là một bài giảng bảng đen tuyệt vời về cây splay: youtube.com/watch?v=So8szqIvIFs
Finn Årup Nielsen

2
Cá nhân, tôi đã áp dụng kiến thức dữ liệu và cấu trúc dữ liệu của mình vào công việc văn phòng tại một công việc mùa hè. Tôi đã sử dụng một loại cơ số trên các hộp kiểm tra và đi nhanh hơn một đến 2 bậc so với bất kỳ ai khác làm việc đó, đến mức không thể tin được. Tôi đã sử dụng một loại hợp nhất tự nhiên trên thẻ in cần phải nộp. cấu trúc dữ liệu và tính toán tồn tại trong thế giới thực .
JDługosz

8

Nhiều lý thuyết khoa học máy tính hoàn toàn là lý thuyết và có thể được giải quyết bằng bút (cil) và giấy. Nhận thông tin về họ và truyền đạt chúng ra thế giới bên ngoài cần có máy tính.


5
Điều này gây ấn tượng với tôi để được bình luận nhiều hơn.
Raphael

7

Xem http://csunplugged.org/ để biết một số ý tưởng tuyệt vời. Google là một trong những nhà tài trợ.

Từ trang web:

CS Unplugged là một tập hợp các hoạt động học tập miễn phí, dạy Khoa học Máy tính thông qua các trò chơi và câu đố hấp dẫn sử dụng thẻ, chuỗi, bút màu và rất nhiều hoạt động xung quanh.

Các hoạt động giới thiệu cho sinh viên các khái niệm cơ bản như số nhị phân, thuật toán và nén dữ liệu, tách biệt với các phiền nhiễu và chi tiết kỹ thuật chúng ta thường thấy với máy tính.

CS Unplugged phù hợp với mọi người ở mọi lứa tuổi, từ tiểu học đến người cao niên, và từ nhiều quốc gia và nguồn gốc. Unplugged đã được sử dụng trên khắp thế giới trong hơn hai mươi năm, trong các lớp học, trung tâm khoa học, nhà cửa, và thậm chí cho các sự kiện kỳ ​​nghỉ trong một công viên!


Các điều kiện rất phức tạp, nhưng nó đáng để thử khi tài nguyên cho phép.
Abhimanyu

Tôi đồng ý rằng điều này có vẻ tốt, nhưng để làm cho câu trả lời thích hợp, bạn cần giải quyết các vấn đề cụ thể được đặt ra trong câu hỏi: tài nguyên nào là cần thiết? Chúng ta có thể mong đợi có chúng, ví dụ như ở (nông thôn?) Châu Phi?
Raphael

3

Bạn có thể, nó khá rõ ràng làm thế nào bạn sẽ làm điều đó. Tôi không chắc nó hữu ích như thế nào với mọi người, nhưng bạn có thể.

Nhưng tôi thậm chí không biết làm thế nào một giáo viên về khoa học máy tính, có thể hỏi làm thế nào bạn có thể dạy khoa học máy tính mà không cần máy tính.

Bởi vì nếu bạn có thể dạy khoa học máy tính, thì bạn sẽ biết làm thế nào.

Nếu bạn biết rằng-

-Algorithms can be written on pen and paper, and traced on pen and paper.
-Flow charts are written on paper.

Nghiên cứu chuẩn hóa, cấu trúc của các bảng dữ liệu cho cơ sở dữ liệu, có thể được thực hiện trên bút và giấy. (Tôi chỉ làm điều đó trên bút và giấy khi tôi nghiên cứu cơ sở dữ liệu quan hệ)

Sách giáo khoa khoa học máy tính không yêu cầu máy tính.

Nếu bạn từng nhặt một cuốn sách giáo khoa khoa học máy tính và nghiên cứu nó trong thư viện, bạn sẽ biết rằng bạn không cần một chiếc máy tính để hiểu nó.

Nhưng bạn nên lưu ý rằng bất kỳ ai đã từng ngồi trong lớp khoa học máy tính đều có thể thấy rằng hầu hết mọi người không thể lập trình, nó chỉ vượt xa họ. Quá trừu tượng cho mọi người. Điều đó thậm chí đúng ở cấp Đại học.

http://www.eis.mdx.ac.uk/research/PhDArea/saeed/apers1.pdf

Một số lượng đáng kể sinh viên thất bại trong mọi khóa học lập trình giới thiệu ở mỗi trường đại học Vương quốc Anh. Mặc dù nỗ lực học tập anh hùng, tỷ lệ đã tăng lên thay vì giảm qua các năm. Mặc dù có rất nhiều nghiên cứu về phương pháp giảng dạy và phản ứng của sinh viên, chúng tôi không biết nguyên nhân.

Tôi sẽ thêm rằng để gọi nó là một thiểu số đáng kể, là một cách đánh giá thấp. Đó là một thiểu số nhỏ mà chương trình có thể.

Mặc dù vậy, tôi sẽ lưu ý rằng nguyên nhân của sự suy giảm mà anh ta đã chứng kiến ​​.. Khi máy tính trở nên phổ biến hơn, ví dụ từ năm 2000 đến 2010 (anh ta viết rằng vào giữa thập kỷ đó), nhiều người thích nghiên cứu về 'khoa học máy tính'. Trước đó, chỉ những người cuồng tín hơn mới quan tâm. Và trước đó, sử dụng máy tính là kỹ thuật hơn, nhưng khi người bình thường sử dụng máy tính dễ dàng hơn và mạnh mẽ hơn trong các ứng dụng họ có thể chạy, thì nhiều wollies đã sử dụng chúng và nhiều người chỉ quan tâm đến những gì họ có thể làm thay vì làm thế nào họ làm điều đó và làm thế nào để làm điều đó.


2
Cái "wollies" là cái quái gì vậy?
Nate Eldredge

1
@NateEldredge điển đô thị : «Jovial hạn đối với một người nói hoặc làm điều gì đó ngớ ngẩn / Một người cho biết thêm 2 và 2 và được 5. 'Thật là một wolly'»
Paul A. Clayton

@NateEldredge Thông thường đánh vần là "wally".
David Richerby

2
Berating OP không phải là một câu trả lời.
Raphael

2

Có thể dạy các khái niệm về Khoa học Máy tính mà không cần máy tính. Tất nhiên không có quyền truy cập vào máy tính, học Khoa học Máy tính thực sự có ích gì?

Khi tôi học Khoa học Máy tính ở trường trung học, một số lớp đầu tiên của chúng tôi không liên quan đến máy tính. Thay vào đó, chúng tôi đã làm việc từ một cuốn sách có tên Karel ++ , dạy các khái niệm hướng đối tượng. Ngôn ngữ tạo thành có thể được "chạy" trên bảng trắng hoặc bảng đen khá dễ dàng vì tất cả các mã đều thực hiện các hành động trên biểu đồ. Một số bài tập đầu tiên của chúng tôi đều được viết tay và giáo sư sẽ trình bày giải pháp chính xác trên bảng khi bắt đầu lớp học tiếp theo.

Khi chúng tôi bắt đầu thảo luận về các thuật toán, giáo sư của chúng tôi đã gọi tất cả chúng tôi lên phía trước căn phòng và bảo chúng tôi đứng thành một hàng. Anh ấy đã tiến hành chứng minh một vài thuật toán sắp xếp khác nhau - bắt đầu bằng một thứ ngớ ngẩn mà anh ấy gọi là "khỉ sort", nơi anh ấy sẽ trao đổi ngẫu nhiên hai chúng tôi và sau đó kiểm tra xem liệu chúng tôi có được sắp xếp mỗi lần lặp không, nhưng sau đó thực hiện sắp xếp bong bóngsắp xếp vỏ - "Chạy" chúng trên chúng ta.

Ông đã vẽ sơ đồ trên bảng, giải thích những điều cơ bản về cách bộ nhớ máy tính và ngăn xếp hoạt động. Ông đã chứng minh các biến và con trỏ (đó là một lớp C ++) và từ đó đến các danh sách và cây được liên kết ...

Tôi có lẽ có thể thêm vào điều này nếu tôi xem qua các ghi chú tôi giữ trong lớp đó, nhưng đó là tất cả những gì tôi nhớ bây giờ. Nếu những gợi ý này thú vị, tôi có thể mở rộng câu trả lời này.


1
Bạn dường như nhầm lẫn giữa lập trình (thủ công) với khoa học máy tính .
Raphael

@Raphael Tôi hiểu rằng các cơ chế lập trình trong một ngôn ngữ cụ thể có thể không quan trọng đối với phần khoa học , nhưng bạn có thể thực sự ly dị khoa học máy tính với lập trình đến mức nào trước khi nó trở nên khó hiểu đối với những sinh viên thậm chí không quen thuộc Làm thế nào để vận hành một máy tính? Tôi có thể thay đổi câu trả lời của mình để phân tách hai câu hỏi, nhưng hình ảnh xuất hiện trong đầu tôi dựa trên câu hỏi của OP không phải là người lớn muốn tìm hiểu về nền tảng toán học của lý thuyết phức tạp, nhưng học sinh lớp cần giới thiệu về các ứng dụng của CS.
Blackhawk

@DavidR Richby Tôi đã yêu cầu OP làm rõ về ai (tuổi / kinh nghiệm với máy tính) nhóm sinh viên mục tiêu sẽ là ai và tài liệu anh ta dự định dạy là gì. Tôi sẽ điều chỉnh câu trả lời của tôi cho phù hợp. Nếu tôi có thể, tôi sẽ đề xuất rằng một sự tương tự trực tiếp hơn sẽ là viết sáng tạo so với việc biết cách sử dụng bảng chữ cái và từ vựng. Ngoại trừ sự tương tự đó còn thiếu vì nghiên cứu về ngôn ngữ lập trình thực sự được bao gồm bởi khoa học máy tính.
Blackhawk

@Blackhawk Tất nhiên, không có sự tương tự nào là hoàn hảo (gần như theo định nghĩa). Nhưng, trong khi thiết kế ngôn ngữ lập trình là CS, đơn giản là không sử dụng chúng.
David Richerby

1
@DavidR Richby Tôi vừa đọc trang tham quan về CS và đặc biệt là "hỏi về ..." và "KHÔNG hỏi về ..." và tôi có ấn tượng rằng có quá nhiều người hỏi / trả lời câu hỏi trên trang web này sẽ tốt hơn nhiều so với SO ... vì vậy tôi xin lỗi nếu tôi đã đóng góp vào đó. Bạn có thể chỉ cho tôi những điều cụ thể mà tôi có thể thay đổi về câu trả lời này để đưa nó phù hợp với mục tiêu của trang web không? Tôi nghi ngờ tối thiểu tôi nên xóa các tham chiếu đến "dấu chấm phẩy" và "C ++", nhưng việc sử dụng Karel ++ như một công cụ giảng dạy cho khái niệm ngôn ngữ hướng đối tượng thì sao? Hay bộ nhớ máy tính?
Blackhawk

2

Tôi đã có bằng khoa học máy tính và nghĩ rằng chúng tôi được dạy lập trình nhiều (bằng nhiều ngôn ngữ khác nhau), chúng tôi cũng được dạy nhiều khía cạnh toán học (và một số phần cứng nữa).

Các phần toán học quan trọng hơn trong năm đầu tiên - nghĩ rằng toán học ma trận rất cần thiết cho đồ họa 3d (làm thế nào để bạn tính toán một bề mặt bình thường để chiếu sáng một đỉnh? ). Chúng tôi đã làm rất nhiều số liệu thống kê - nghĩ rằng phân tích thông lượng công việc, tỷ lệ công việc bạn có thể vượt qua trong một hệ thống trước khi nó bị tắc? Điều đó khá quan trọng đối với nhiều hệ thống tập trung và mạng.

Bạn có thể dạy nhiều thuật toán, một poster ở đây đã đề cập đến việc cung cấp cho sinh viên một số và sau đó để họ tự sắp xếp bằng các thuật toán khác nhau (đó là hoạt động và thông tin). Trong thực tế, bất kỳ thuật toán nào có thể được mô tả trong một hình ảnh hoạt hình trên internet đều có thể được dạy theo cách này. Tương tự như các nguyên tắc cơ bản của điện toán - bộ đếm chương trình, bộ tích lũy và thanh ghicó thể được dạy theo cùng một cách, hoặc trên giấy. Làm thế nào về đa luồng dựa trên học sinh - thiết lập một nhóm học sinh một trò chơi bài với một ngăn xếp giữa mỗi người trong một bài tập đa luồng cổ điển (hoặc bài toán 1 thìa chia sẻ). Hoặc các mẫu thiết kế, tôi có thể nghĩ rằng kiến ​​trúc bảng đen là hoàn hảo cho sinh viên tìm hiểu cách thực hiện giao tiếp đa quy trình, hoặc kiến ​​trúc n tầng được mô tả như một loại trò chơi thì thầm của Trung Quốc hoặc máy trạng thái hữu hạn sẽ phù hợp với sinh viên hoạt động như các mô-đun trong một 'máy tính sống'. Bạn có thể dạy toán nhị phân, hoặc thực hiện dựa trên ngăn xếp (tức là đánh bóng ngược).

Tất nhiên, nếu bạn có quyền truy cập vào thiết bị điện tử, bạn có thể xây dựng một máy tính tương tự ngoài op-amps. Họ tuyệt đấy.

Thật không may, tất cả những thứ này sẽ giống như toán học hơn là điện toán, nhưng phần lớn nó sẽ dính vào và một ngày nào đó họ sẽ hiểu tại sao họ được dạy nó (giả sử họ đi vào ngành điện toán). Hãy nhớ rằng bất cứ điều gì máy tính có thể làm, một người có thể làm - điều đó sẽ khiến anh ta mất nhiều thời gian và nhàm chán hơn để đạt được kết quả tương tự. Bạn chỉ cần lấy các ví dụ đơn giản để chứng minh máy tính sẽ làm gì và trí tưởng tượng để mô tả các nguyên tắc tính toán cơ bản theo cách ít khô khan hơn mà tôi được dạy, cách trở lại :)


1

Hỏi làm thế nào bạn có thể nghiên cứu khoa học máy tính mà không cần máy tính cũng giống như hỏi làm thế nào bạn có thể nghiên cứu vũ trụ học mà không cần kính viễn vọng.

Tôi chủ yếu trả lời chỉ để phản ứng với tuyên bố này và vì tôi hoàn toàn không đồng ý với các câu trả lời khác. Sự so sánh chính xác theo ý kiến ​​của tôi là

Hỏi làm thế nào bạn có thể nghiên cứu khoa học máy tính mà không cần máy tính cũng giống như hỏi làm thế nào bạn có thể nghiên cứu vũ trụ học mà không cần vũ trụ .

Khoa học máy tính là về máy tính, không chỉ sử dụng chúng. Thật vậy, rất nhiều môn Khoa học Máy tính dựa trên toán học, vì vậy các phần toán học có thể được nghiên cứu mà không cần máy tính (do đó bạn đang dạy toán học) giống như thay vì vũ trụ học, bạn có thể học vật lý sẽ hữu ích khi có vũ trụ (hoặc có quyền truy cập vào kính viễn vọng), nhưng cuối cùng, thứ bạn đang học vẫn là vật lý.

Bây giờ, những gì mọi người đang làm trong các câu trả lời ở đây là lưu ý rằng khoa học máy tính ở cấp độ cử nhân chủ yếu là lý thuyết và không yêu cầu máy tính, điều mà những người IMHO quên là cùng một người đã sử dụng máy tính rộng rãi cho đến thời điểm đó. Nếu không có sự hiểu biết tự nhiên trực tiếp đi sâu vào các công cụ lý thuyết sẽ chỉ khiến nhiều sinh viên bỏ cuộc hoặc có một cái nhìn không phù hợp khủng khiếp về khoa học máy tính. Vì vậy, dạy một số lập trình, hiểu về những gì máy tính là đầu tiên và chỉ sau đó đi vào công cụ lý thuyết.

Giống như nếu tôi đang dạy sinh viên ở Châu Phi không có kiến ​​thức về máy tính ngoài bí quyết cấp độ chung nhưng ai muốn học khoa học máy tính tiên tiến và dành phần lớn thời gian cho sở thích này?

Phụ thuộc vào ngân sách:

  • Gần như không có ngân sách Nếu bạn có tiền đi du lịch đến Châu Phi, hãy lấy một loạt các bản sao arduino (có các bản sao arduino chức năng với giá $ 13, ví dụ kiểm tra danh sách này ), một số thành phần đầu ra (như đèn LED) và một máy tính xách tay. Bắt đầu với một số chương trình cơ bản, dạy nó cho họ trên giấy và phải nhập nó trên máy tính xách tay. Đó không phải là cách hiệu quả nhất, nhưng nó sẽ dạy cho họ ít nhất một sự hiểu biết cơ bản cơ bản về những gì máy tính thực tế là.
  • Kinh phí thấp Mua $ 750 đô la giá trị của $ 50 điện thoại thông minh Android và bàn phím (bàn phím microUSB hoặc bàn phím bluetooth, kiểm tra ebay.com hay aliexpress.com cho cả điện thoại thông minh và bàn phím). Vâng, họ thật nhảm nhí theo một triệu cách, thậm chí đừng nói với tôi về điều đó. Tuy nhiên, bạn vẫn có thể nhập dữ liệu vào chúng (mặc dù thậm chí không cân nhắc sử dụng bàn phím trên màn hình) và có các ứng dụng mã hóa đơn giản cho Android. Có nhiều sinh viên trên mỗi điện thoại thông minh và điều đó có thể hoạt động khá tốt.

Vì vậy, hãy để tôi rõ ràng, tôi không nói rằng Khoa học máy tính không thể được dạy mà không có máy tính, chỉ là bạn cần phải sử dụng máy tính và biết chúng khá rõ trước khi bạn nên bắt đầu xem xét một điều như vậy.


Tôi đã hiểu nhầm sự không đồng ý của bạn với câu trả lời của tôi hoặc tôi không đồng ý với nó. Nếu chúng ta biết không có vũ trụ, vũ trụ học sẽ là một sự bịa đặt hoàn toàn. Nếu chúng ta thực sự tin vào sự tồn tại của vũ trụ, vũ trụ học sẽ tệ nhất là sự lãng phí tài nguyên có chủ đích. Nhưng, thực sự, chúng tôi biết nó tồn tại. Vũ trụ học không có kính viễn vọng đang nói "Này, tôi không thể quan sát vũ trụ trong tuần này nhưng nó chắc chắn ở đó. Tôi có thể tìm hiểu về nó ngay bây giờ và nhìn vào tuần tới." CS không có máy tính đang nói: "Này, máy tính chắc chắn tồn tại để tôi có thể nghiên cứu chúng ngay bây giờ và trải nghiệm vật lý chúng sau này."
David Richerby

Và dạy cho ai đó về khoa học máy tính mà không bao giờ họ sử dụng hoặc thực tế hiểu máy tính là gì cũng giống như một sự bịa đặt như vậy. Bạn không tương tác trực tiếp với vũ trụ thông qua kính viễn vọng, đó chỉ là một trong nhiều cách để quan sát nó. Vào ban đêm nó vẫn có thể được nhìn thấy và nó có thể dễ dàng hiểu được ở mức độ cơ bản. Điều tương tự chỉ đơn giản là không áp dụng cho máy tính.
David Mulder

Tôi hoàn toàn không đồng ý rằng đó là điều bịa đặt để dạy ai đó về thứ gì đó thực sự tồn tại nhưng họ chưa có kinh nghiệm.
David Richerby

2
@DavidR Richby: Bạn và những người khác ở đây đã ăn sâu vào việc sử dụng máy tính, thật khó để hiểu được ý nghĩa thực sự của việc thử và dạy ai đó về khoa học máy tính mà không có cơ sở với máy tính ... Tôi biết ai đó đã thực sự học đối với thanh niên không bao giờ sử dụng máy tính với máy tính thực tế ... anh ta thậm chí không cố gắng dạy lập trình hoặc khoa học máy tính và chỉ đạt đến mức độ hiểu biết cơ bản về máy tính là nhiệm vụ của riêng mình nếu bạn không lớn lên với máy tính. (còn tiếp)
David Mulder

2
Ngày nay, việc này tương đối dễ dàng hơn khi nhiều thanh niên có ít nhất một số kinh nghiệm, nhưng câu hỏi là về những trường hợp họ không có chút kinh nghiệm nào. Một cá nhân đó đã nói với tôi rằng tại quốc gia nơi anh ta giảng dạy, có một khoảng thời gian mà học sinh từ trường cấp hai sẽ đến các khóa học tin học ở trường đại học mà không bao giờ chạm vào máy tính trước khi ... chỉ học một số lý thuyết ở trường trung học và làm thế nào hầu hết (không phải là tất cả) các trường hợp kết thúc kém. Vấn đề / ý tưởng là công việc máy tính trả lương cao, vì vậy họ chỉ muốn có được những thứ đó bất kể là gì ...
David Mulder

1

Khoa học máy tính là về các thuật toán và không (nghiêm túc) về máy tính (và điện tử).

Như vậy, nghiên cứu các thuật toán (thậm chí số học cơ bản) có thể mang lại hiểu biết về khoa học máy tính và lập trình. Hãy nhớ rằng thuật ngữ "thuật toán" thậm chí là một cách diễn đạt của tác giả của một cuốn sách arithmetica ( al-Khwārizmī , khoảng năm 9 cent. CE).

Nghiên cứu các thuật toán có thể được thực hiện bằng các phương tiện cơ bản, nhưng nên cung cấp thông tin về lý do tại sao thuật toán hoạt động, làm thế nào nó xuất hiện và làm thế nào người ta thực sự có thể chứng minh rằng nó hoạt động chính xác.

Lịch sử đằng sau sự phát triển của khoa học máy tính, thuật toán và lập trình sẽ không bị đánh giá thấp. Ví dụ: máy tính của Babbage / Ada, máy Enigma, plankalkul của Konrad Zuse , ENIAC, v.v.

Sau đó, người ta có thể giới thiệu lập trình (và ngôn ngữ lập trình) như một cách để chính thức hóa các thuật toán. Điều này cũng có thể được thực hiện (đến một phần mở rộng lớn) bằng các phương tiện cơ bản.

Lưu ý , một số nghiên cứu đã chỉ ra rằng lập trình học peole có hai khó khăn chính trong việc hiểu (liên quan đến quá tải các ký hiệu, ví dụ như kiểm tra so sánh so với kiểm tra đẳng thức và hoạt động của máy RAM).

  1. Cấu trúc vòng lặp (ví dụ: trong khi, v.v.) có vẻ khó
  2. Bài tập so với kiểm tra bình đẳng, dường như cũng khó khăn.

Vì vậy, người ta có thể chắc chắn rằng những điều này được người dân nắm bắt và hiểu rõ ràng.

Ngoài ra, nếu bất kỳ máy tính nào có thể được truy cập (ngay cả một máy tính có thể được lập trình), điều này có thể được sử dụng để cung cấp các ví dụ ứng dụng và kinh nghiệm thực hành. Khác người ta có thể sử dụng một máy tính mô phỏng. Điều này có thể được thực hiện theo nhiều cách khác nhau, ví dụ một nhóm người có thể mô phỏng các bộ phận của máy tính và lớp có thể thiết kế các thuật toán để giải quyết các vấn đề khác nhau cho máy tính mô phỏng này và xem nó hoạt động như thế nào. Đây cũng có thể được xem là một trò chơi, hãy sáng tạo và thực hiện.

Sau đó, một số mô hình tính toán (trừu tượng) (ví dụ Turing Machines ) có thể được giới thiệu và liên quan đến tài liệu trước đây về thuật toán và chính thức hóa thành ngôn ngữ (lập trình).

Nếu một người muốn giới thiệu các thiết bị điện tử của một máy tính thực tế thì điều này cũng có thể được thực hiện thành hai phần.

Hãy nhớ rằng ngay cả trong các trường đại học, một số khóa học về kiến ​​trúc điện tử và kiến ​​trúc máy tính là lý thuyết (người ta không thực sự tiếp xúc với CPU hoặc thiết kế).

Vì vậy, một số nguyên tắc hoạt động của điện tử (và vật lý cơ bản) liên quan đến kiến ​​trúc máy tính có thể được giới thiệu ( chất bán dẫn , vùng năng lượng thể rắn, cổng p-np, v.v.).

Sau đó, người ta có thể tận dụng các tài liệu trước đây về lập trình và thuật toán và giới thiệu các kỹ thuật (hiện đại) về thiết kế CPU (và mô tả) được sử dụng trong ngành công nghiệp ( Cổng logic , Flip-Flops , FPGA , VHDL , mạch CMOS , v.v.).

Điều này có thể được đưa vào sâu hơn, các vấn đề kiến ​​trúc thiết kế CPU như song song, đường ống, bộ nhớ cache, địa chỉ vector, lập trình vi mô, DMA, v.v.

Chà, có lẽ điều này có thể là quá nhiều, nhưng được thêm vào để làm cho câu trả lời khép kín.


-1

Bạn đang muốn dạy lập trình?

Khi tôi còn là một đứa trẻ, chúng tôi đã đi cắm trại và tôi mang theo hướng dẫn sử dụng máy tính. Tôi đã có thể viết một trò chơi đơn giản bằng bút và giấy.

Đây là chương trình thực sự đầu tiên của tôi, tôi đoán vậy, rất nhiều việc học được tham gia. Tôi biết những gì tôi muốn làm, nhưng có rất nhiều khởi đầu sai trong khi tôi tìm ra nó. Nhưng cuối cùng tôi đã có thể viết ra toàn bộ mã.

Tôi đoán những gì tôi đang nói là bắt đầu với mã giả và \ hoặc biểu đồ luồng để lập kế hoạch dự án và sau đó dịch thành mã. Tôi đã có thể gỡ lỗi rất nhiều mã của mình chỉ bằng cách đọc nó. Bạn cũng có thể sử dụng đánh giá ngang hàng ở đây.


Tôi chắc chắn sẽ đi với mã giả chứ không phải sơ đồ.
David Richerby

Câu hỏi này xứng đáng nhiều hơn một điểm dữ liệu kinh nghiệm cho mỗi câu trả lời.
Raphael

-2

Để lặp lại câu trả lời trước: có rất nhiều điều phải học chỉ từ việc đọc và làm bài tập trên giấy và bút. Nếu bạn có thể giải quyết vấn đề trên giấy, bạn có phần khó khăn. Tuy nhiên, tôi cũng muốn đề cập đến sự tồn tại của những cách khá rẻ để đưa sinh viên đến với CS. Bạn có quen thuộc với Dự án Raspberry Pi ? Ngay cả khi một số người phải chia sẻ hoặc bạn chỉ có thể đủ khả năng để có được 1 hoặc 2 đơn vị, thì vẫn có thể xem xét như một cách để tiếp cận sinh viên của bạn với công nghệ.


Điều này không thêm bất cứ điều gì qua câu trả lời hiện có.
Raphael

1
@Raphael Đúng, mặc dù lưu ý rằng các câu trả lời khác đề cập đến các thiết bị máy tính giá rẻ đã được đăng sau câu hỏi này.
David Richerby

-3

tôi sẽ thử ngọ nguậy cái này một chút & "nghĩ bên ngoài hộp". máy tính đầy đủ thực sự đắt tiền, đôi khi đòi hỏi tài nguyên và khó bảo trì. nhưng có nhiều hệ thống điện tử rẻ tiền bắt chước các máy tính toàn diện, ví dụ như với màn hình LCD, v.v. và nhiều nguyên tắc lập trình cơ bản có thể được áp dụng, sử dụng nhiều pin. cũng có sự kết nối chặt chẽ giữa các nguyên tắc EE với điện toán như xây dựng các mạch logic nhị phân, v.v.; ngày nay một số đồ chơi có khả năng lập trình.

  • lập trình máy tính . một số có toàn bộ ngôn ngữ lập trình (không quá cao nhưng giống ngôn ngữ lắp ráp hơn) được tích hợp trong đó. một số sẽ hỗ trợ các chương trình tiên tiến.

  • Raspberry pi minicomputer / vi điều khiển được phát triển cho mục đích này và chạy linux. ít hơn $ 40 trong nhiều trường hợp.

  • Bộ vi điều khiển parallax STAMP yêu cầu kết nối USB nhưng có thể một Raspberry pi là đủ. xem thêm vi điều khiển PIC

  • hệ thống robot. có nhiều cái rẻ tiền có logic lập trình được. Lego robotics mindstorms / nxt là một trong những mô hình tốt nhất và có ít tốn kém hơn.

  • một số game console có các nguyên tắc lập trình được tích hợp trong đó. ví dụ Little Big Planet có các tính năng lập trình tuyệt vời được tích hợp trong nó. có một số phiên bản cầm tay của các trò chơi lập trình. có rất nhiều video youtube về các công trình phức tạp để lấy cảm hứng.

  • điện thoại thông minh là thế giới lập trình mới. họ có các trình duyệt chạy javascript và có nhiều ứng dụng liên quan đến lập trình và thậm chí người ta có thể lướt các trang web lập trình có kết nối internet (bao gồm wifi).

cũng đề xuất như trong các bình luận xây dựng các chương trình TM, ví dụ như để thêm vv và cố gắng theo dõi chúng bằng tay.


2
Tôi nghi ngờ rằng những người không có quyền truy cập vào máy tính cũng không có quyền truy cập vào Lego Mindstorms, hệ thống chơi game console, điện thoại thông minh hoặc wifi.
David Richerby

một điểm công bằng / rõ ràng / dự đoán nhưng không có gì được đề cập đã được loại trừ rõ ràng trong tiêu chí câu hỏi. Nó không được biết đến từ câu hỏi liệu các sinh viên không có công cụ vì nó đắt tiền, và mọi thứ được liệt kê ở trên đều rẻ hơn so với máy tính để bàn làm chuẩn. sinh viên hoặc trường học có thể đủ khả năng sách giáo khoa có thể đủ khả năng ở trên (có thể chia sẻ nó). và nếu sách giáo khoa không phải là giá cả phải chăng, thì những gì còn lại?
vzn

(phạm vi câu hỏi của fyi đã bị thay đổi đáng kể bởi mod vì câu trả lời này được viết, với tôi rằng việc chỉnh sửa câu hỏi làm cho các giả định chính không phải do nhà văn gốc dự định và thích sự mơ hồ ban đầu như một tính năng không phải là một lỗi)
vzn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.