Tôi nên làm gì với một nhóm 16-17 tuổi để khiến họ hứng thú với khoa học máy tính?


40

Tôi sẽ tham gia vào một "ngày mở cửa" tại trường đại học của tôi trong một vài tuần nữa. Là một phần của thời gian này, tôi (cùng với một đồng nghiệp) đang được trao cho cả một nhóm học sinh cấp ba trong hai giờ, cũng như một phòng thí nghiệm máy tính đủ lớn để chứa tất cả, và tôi phải làm một số loại hoạt động hoặc tập hợp các hoạt động với họ để khuyến khích họ làm khoa học máy tính (tại trường đại học của tôi, lý tưởng nhất, nhưng nói chung cũng vậy). Tôi hoàn toàn không biết phải làm gì ở đây và hoan nghênh mọi đề xuất.


Tôi không phải là giáo viên cũng không phải chuyên gia, tuy nhiên tôi khuyên bạn nên dạy họ cách lập trình một trò chơi giải đố nhỏ (chọn một trò chơi có tính khái quát là NP) bao gồm các khía cạnh như: tạo cấp độ, kiểm tra giải pháp, tìm giải pháp tự động: - )
Vor

1
Tôi thích các bài giảng Giáng sinh của Viện Hoàng gia 2008 . Bạn có thể muốn thử các hoạt động / bản trình diễn tương tự.
mai

Câu trả lời:


21
  • Bạn có thể yêu cầu họ vẽ tranh bằng ngữ pháp không ngữ cảnh. nghệ thuật tự do bối cảnh Điều này cũng hoạt động cho những người chưa bao giờ lập trình trước và quy mô cho các lập trình viên có kinh nghiệm. Ngôn ngữ cơ bản đủ dễ để giải thích trong khoảng nửa giờ.
  • Học một cái gì đó về hình học bằng đồ họa Rùa cũng sẽ rất hay. Logo được thiết kế cho trẻ em, vì vậy học sinh trung học nên không có vấn đề gì. Có những video hay về trẻ em sử dụng Logo trên youtube
  • Nếu bạn có thể chạm tay vào một số robot MindStorms, lập trình chúng rất thú vị.
  • Có rất nhiều trò chơi lập trình trong đó bạn lập trình robot để chiến đấu với nhau hoặc các chương trình lắp ráp cố gắng ghi đè lên nhau trong một máy ảo. Wikipedia về chủ đề , câu hỏi stackoverflow liên quan
  • Bạn cũng có thể nghĩ về một số loại dự án phần cứng. Làm vi điều khiển nhấp nháy đèn LED tùy thuộc vào số lượng e-mail chưa đọc trong hộp thư đến của bạn chẳng hạn.
  • Yêu cầu họ thực hiện các thuật toán tạo mê cung khác nhau , cố gắng đưa ra các tiêu chí khiến mê cung "khó khăn cho con người". Nếu thời gian cho phép mở rộng các thuật toán để bao gồm không chỉ hành lang mà còn các phòng.
  • Mua một vài Arduinos và đèn LED. Hãy để họ lập trình đèn nháy.

1
Bạn có thể muốn thêm các liên kết vào hướng dẫn lập trình máy tính của Khan Academy vào danh sách: Đây là một bổ sung thực sự thú vị / tương tác ở trên. Ví dụ: khanacademy.org/cs/intro-to-animation/830742281
Tiến sĩ

+1 cho CFG cũng vậy - một phiên bản khác của cùng một khái niệm sẽ là một phiên bản tốt để thử và áp dụng sẽ là thử và thực hiện vẽ bụi cây với Hệ thống chức năng lặp; bắt đầu với một hình chữ nhật, thiết lập thêm một số hình chữ nhật và sau đó lặp lại 'nội dung' của hình chữ nhật đầu tiên (bao gồm tất cả các hình chữ nhật) vào mỗi hình chữ nhật. Bạn có thể có một phiên bản kỹ thuật số được thiết lập cho mục đích so sánh.
Steven Stadnicki

13

Kiểm tra Khoa học máy tính Unplugged . Từ trang web của họ:

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ánné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 cho 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 mười lăm 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!


1
Đây là một gợi ý hay, nhưng tôi nghi ngờ OP muốn thứ gì đó thực sự sử dụng phòng máy tính đã được đặt sang một bên.
András Salamon

Điểm hợp lệ. Cần có một dự án robocode cho những người không biết lập trình.
Pål GD

11

Hầu hết các sinh viên khoa học máy tính mà tôi biết đều coi việc học lập trình là phần đau đớn và làm mất tinh thần nhất trong giáo dục của họ. Do đó, tôi sẽ tránh xa mọi thứ liên quan đến lập trình. Như scphantm đã chỉ ra, có lẽ bạn cũng sẽ không có thời gian cho việc này.

Những gì bạn đang tìm kiếm là một bài tập kéo dài hai giờ thỏa mãn hai mục tiêu:

  • Nó đủ thú vị để giữ cho học sinh tốt nghiệp trung học đủ quan tâm trong hai giờ,
  • Nó sẽ cho họ một cái nhìn thoáng qua về Khoa học Máy tính là gì, và hy vọng sẽ khiến họ quan tâm đến nó.

Mục tiêu đầu tiên khá độc lập với những gì bạn thực sự sẽ thể hiện và còn nhiều điều phải làm với việc trở thành một giáo viên / người dẫn chương trình giỏi. Thực hành giáo huấn tốt, tức là giữ khán giả của bạn trên ngón chân của họ, cho phép họ thử những điều nhỏ nhặt theo nhóm, cho họ thở sau mỗi 15 phút, v.v.

Mục tiêu thứ hai là một chút khó khăn và điều tôi nghĩ là tốt nhất ở đây là giải quyết một vấn đề có thể giải thích bằng kiến ​​thức hiện tại của họ, chỉ ra cách bạn có thể mô tả giải pháp bằng thuật toán và sau đó chỉ ra cách phân tích giải pháp đó và được cải thiện.

Một ví dụ điển hình là vấn đề đường đi ngắn nhất trong các biểu đồ, còn được gọi là hệ thống định vị GPS. Không cần giải thích. Bạn có thể cung cấp cho họ một bản đồ nhỏ với trọng lượng / chiều dài cạnh được vẽ và một loạt bút màu để thực sự thực hiện thuật toán như bạn mô tả.

Sau đó, bạn có thể bắt đầu một cuộc thảo luận về cách bạn sẽ tìm thấy một con đường ngắn nhất, v.v., hãy để họ cố gắng xây dựng nó như một thuật toán, v.v ... Sau đó, bạn mô tả thuật toán của Dijkstra , cho phép họ tô màu các nút như đã truy cập , dự kiếnunvisited bộ. B Bam. Bạn đã có một thuật toán!

O

PNP


9

Nếu bạn chỉ có 2 giờ, bạn sẽ không thực hiện được nhiều mã hóa. Chỉ học cú pháp sẽ khó trong thời gian đó, nhưng có rất nhiều điều có thể được thực hiện thay thế.

Như một gợi ý, hãy thử dạy chúng kiểm soát dòng chảy và tầm quan trọng của việc cụ thể:

  1. Chia lớp thành 2, "robot" và các "lập trình viên" khác.
  2. Hãy đến với một thử thách phù hợp đòi hỏi một số logic đơn giản, lặp đi lặp lại, v.v. - có một ví dụ dưới đây.
  3. Yêu cầu "lập trình viên" viết ra một hướng dẫn danh sách được đưa ra cho "robot"
  4. Yêu cầu "robot" thực hiện các hướng dẫn, nhưng hãy cho "robot" biết rằng nếu các hướng dẫn đó gây nhầm lẫn thì chúng được phép dừng lại, báo lỗi hoặc hành động khác cho đến khi "lập trình viên" dừng lại và gỡ lỗi chúng. Đảm bảo, nếu có cơ hội để chơi, một học sinh trung học sẽ.

Như một nhiệm vụ ví dụ, thiết lập một số bồn chứa các quả bóng màu khác nhau, với các dải giấy màu tương ứng ở nơi khác và đủ các thùng nhỏ cho mỗi cặp robot / lập trình viên. Nhiệm vụ là làm cho robot lấp đầy xô bằng các quả bóng, tuy nhiên để làm như vậy chúng chỉ có thể lấy những quả bóng khớp với một dải giấy cụ thể. Nếu không có thêm những quả bóng có màu đó trong một cái bồn, thì robot phải trả lại dải giấy của chúng và thu thập một cái mới.

Nhiệm vụ này đòi hỏi phân nhánh có điều kiện, lặp, xử lý lỗi và suy nghĩ tiến bộ. Tất cả những điều mà một lập trình viên cần phải giỏi, bất kể ngôn ngữ hay hoạt động.

Chạy một cái gì đó như thế này hai lần để "robot" và "lập trình viên" có thể trao đổi. Ở giữa, hãy đưa ra một bài học nhỏ về các kiểu suy nghĩ ở trên, và chúng sẽ hoạt động tốt hơn nhiều trong phần hai, kết thúc bằng một cuộc nói chuyện nhỏ về các sự kiện lớn trong lập trình - đánh bại Đức quốc xã, lên mặt trăng, internet và bạn sẽ có một phòng lập trình viên tiềm năng và tham gia!


1
Tại sao tôi không thể cho điểm này +10? Đây là một ý tưởng tuyệt vời.
Xynariz

@Xynariz cảm ơn! Tôi đã thực hiện điều đó một vài lần với các nhóm thực sự nhỏ, và nói chung cuối cùng là những phần vui vẻ và bực bội như nhau - tuy nhiên sự thất vọng là ở những "robot" hoạt động sai và không phải máy tính mà bọn trẻ chưa hiểu.

Đôi khi mọi người dường như không hiểu rằng máy tính rất, rất giỏi làm chính xác những gì bạn nói với họ .. không hơn, không kém. Thậm chí còn có một tập
CyberChase

7

Tôi đã đào tạo nhiều lập trình viên. Nếu tất cả những gì bạn có là 2 giờ, đừng bận tâm đến việc dạy họ cách viết mã. Phòng máy tính là không cần thiết quá. Để đi từ số 0 đến thế giới xin chào, bạn sẽ mất một nửa lớp và dành 45 giờ trong 2 giờ để xử lý các trục trặc và không làm gì cả.

Bạn có thể có nhiều may mắn hơn cho họ thấy những gì nó giống như một lập trình viên. Đưa cho mỗi người một tờ giấy và bút và bảo họ viết chương trình bằng ngôn ngữ của họ về cách lấy điện thoại di động ra khỏi bàn và gọi điện thoại. Đi qua câu trả lời của họ. Nếu mã của bạn có bất kỳ loại muối nào, bạn có thể chuyển qua các chương trình của họ và cho họ biết cách làm cho chúng tốt hơn và làm thế nào để bổ sung chi tiết bạn cần phải có. Sau đó yêu cầu họ viết một chương trình bằng lời nói của họ để làm một việc khác trần tục. mặc quần vào, đánh răng, mở cửa, sao cũng được. Làm tương tự với chương trình đó.

Cung cấp cho họ một hương vị của những gì nó giống như NGHINK như một lập trình viên. Họ chắc chắn sẽ nhận được nhiều hơn từ đó hơn là bạn cố gắng dạy họ Python trong 2 giờ.


6

Bạn có thể thử Alice . Đó là một IDE và API cho hoạt hình 3D. Nó có tất cả các loại vật thể được xây dựng (thỏ, người ngoài hành tinh, cây cối, tòa nhà, ...) mà bạn có thể đặt trong một cảnh ban đầu, với các phương thức rất cao: như walk(north)(hoạt hình cánh tay và chân trong khi nhân vật di chuyển) và say("my name is Winky")có thể khiến bong bóng hoạt hình thoát ra khỏi miệng nhân vật.

Nó cho phép bạn móc các sự kiện bàn phím và chuột để bạn có thể làm những việc tương tác.

Ngôn ngữ lập trình cơ bản là Java, nhưng IDE cung cấp cho bạn một biến thể đồ họa nơi bạn kéo và thả các phần của biểu thức vào một cửa sổ soạn thảo. (Nó sẽ không cho phép bạn tạo một lỗi cú pháp.)

Tôi nghĩ rằng bạn có thể cài đặt sẵn tất cả các cảnh để một người không có kinh nghiệm lập trình có thể làm điều gì đó thú vị chỉ trong vài giờ.


1
Tôi sẽ do dự khi sử dụng phương pháp này; nó có thể làm việc cho học sinh nhỏ tuổi hơn, nhưng học sinh trung học có nhiều khả năng coi nó là trẻ con. Điều đó nói rằng, đây là một cách nhanh chóng để hoàn thành một cái gì đó trong thời gian giới hạn là 2 giờ ...
Izkata

6

Mã hóa, ngay cả trong một đồ chơi hoặc ngôn ngữ đồ họa, dường như rất xa vời trong một giờ. Chết tiệt, tôi không chắc mình có thể đón Alice lần nữa và làm bất cứ điều gì có giá trị trong 2 giờ. Có thể là một ngày cuối tuần, nhưng không phải 2 giờ.

Tôi khuyên bạn nên đun sôi CS xuống các yếu tố cần thiết: giải quyết và phân tích vấn đề. Chia nhóm thành các đội. Dành 10 phút để mô tả một vài vấn đề tính toán cấp cao. Đây phải là những vấn đề dễ dàng có thể dễ dàng giải thích cho những người có ít nền tảng toán học hoặc CS. Những ví dụ bao gồm:

  1. Sắp xếp danh sách
  2. Tìm cây bao trùm tối thiểu
  3. Rễ tính toán (gần đúng) của số nguyên
  4. v.v.

Dành thêm 10 phút để thảo luận thêm và để giải thích nhiệm vụ. Mỗi nhóm được chỉ định một vấn đề, trong đó họ sẽ đưa ra các giải pháp động não. Nhóm sẽ có nửa giờ để cùng nhau tìm ra giải pháp hoặc (các) giải pháp cho vấn đề được chỉ định của họ. Sau đó, dành một giờ để xem qua các giải pháp trong toàn bộ nhóm và để bọn trẻ tìm hiểu xem chúng có hoạt động hay không, liệu có cách nào nhanh hơn / tốt hơn để giải quyết vấn đề, v.v.

Nếu bọn trẻ không tìm ra giải pháp chính xác / tối ưu, điều đó không sao cả. Đừng chỉ đưa ra câu trả lời, mặc dù vậy - điều này hoàn toàn quan trọng. Lý do tại sao trẻ em không làm STEM nữa là vì các nhà giáo dục cho trẻ em ấn tượng rằng mọi thứ đã được tìm ra. Sẽ cần những cố vấn rất trưởng thành để cho phép những đứa trẻ cố gắng giải quyết những vấn đề này, và tự mình thành công hay thất bại. Nhận được câu trả lời đúng không phải là vấn đề. Vấn đề là mang đến cho trẻ những vấn đề thú vị và cho bọn trẻ thấy khoa học máy tính là gì: giải quyết vấn đề và đánh giá các giải pháp cho sự chính xác và hiệu quả. Để những đứa trẻ đưa ra câu trả lời của riêng chúng sẽ cho chúng cảm giác sở hữu và giúp chúng cảm thấy được tham gia.

Tất nhiên, nếu những đứa trẻ hỏi liệu chúng có câu trả lời đúng / tốt / được biết đến nhiều nhất hay không, hãy nói cho chúng biết sự thật. Nhưng đừng chỉ đưa ra câu trả lời, trừ khi chúng được đưa ra một cách hữu cơ như là kết quả của việc thảo luận về các giải pháp của học sinh. Để tóm tắt:

  1. Cung cấp cho trẻ dễ hiểu nhưng vấn đề phong phú để khám phá.
  2. Hãy để những đứa trẻ đưa ra giải pháp của riêng chúng, chỉ cung cấp sự giúp đỡ đủ để đảm bảo bọn trẻ hiểu được vấn đề trong tay.
  3. Thảo luận về tính đúng đắn / hiệu quả trong cài đặt nhóm, tạo cơ hội cho các nhóm giải thích các giải pháp của họ. Là cố vấn, bạn có thể tự do thảo luận về tính đúng đắn / hiệu quả theo như bạn nghĩ nó có thể mang lại lợi nhuận.
  4. Trong mọi trường hợp, bạn không nên trình bày các giải pháp của riêng mình hoặc bất kỳ giải pháp nổi tiếng nào cho vấn đề, trừ khi về cơ bản chúng giống với các giải pháp do sinh viên cung cấp. Đừng làm cho nó có vẻ như CS là một lĩnh vực mà mọi người đã tìm ra tất cả các câu trả lời.
  5. Nếu có thể, hãy để những đứa trẻ cảm thấy như chúng đã học được điều gì đó, nhưng để chúng vẫn có câu hỏi: chúng có tìm được câu trả lời tốt nhất không? Là những câu hỏi khác của họ, họ có thể giải quyết theo cách tương tự? Bạn thậm chí có thể cung cấp cho họ một số vấn đề không thể giải quyết được ở định dạng dễ tiêu hóa để cung cấp cho họ một cái gì đó để giải quyết sau đó.

Bạn thậm chí có thể xem xét các đội đọ sức với nhau trong một cuộc thi giao hữu. Đưa ra các cặp đội có cùng một vấn đề và xem ai đưa ra giải pháp tốt hơn.
Patrick87

1
Các cuộc thi kiểu đó làm nản lòng những người nhút nhát và chỉ củng cố bản ngã của những người đã biết thứ này. Điều này chỉ củng cố hình ảnh của CS là "chỉ dành cho những người mọt sách".
adrianN

6

Bây giờ tôi 17 tuổi và tôi bắt đầu lập trình vào khoảng thời gian tôi bước sang tuổi 16. Tôi sẽ kể câu chuyện của mình và hơn là đưa ra một số gợi ý: Sở thích lập trình của tôi bắt đầu khi tôi xem một anh chàng công nghệ máy tính, tôi gọi là lộn xộn với đăng ký và dấu nhắc lệnh của tôi ( mặc dù anh ấy muốn 500 đô la để sửa BSOD của tôi và tôi đã không trả tiền, tôi đã tự sửa chúng) Vì vậy tôi đã tìm hiểu "ngôn ngữ nhắc lệnh" và phát hiện ra rằng có một thứ gọi là "mã nguồn" và nó cho phép bạn lập trình . Vào thời điểm tôi không biết c ++ là gì, tôi thậm chí không nghĩ rằng mình đã từng nghe về nó. Vì vậy, tôi đã vào cpp.com (hướng dẫn rất tệ, bạn sẽ học những thực hành xấu và lỗi thời) và bắt đầu học những điều cơ bản. Tâm trí tôi phát điên và tôi thực sự biết rằng virus mà tôi đã bị nhiễm gây ra các vấn đề của tôi được viết bằng c ++, điều khiến tôi quan tâm hơn nữa. Sau này tôi bắt đầu đọc, học lắp ráp và các ngôn ngữ cấp cao khác. Trước tiên tôi bắt đầu muốn tìm hiểu về phần mềm độc hại và lập trình Đồ họa và tôi đã làm được.

  1. Điều này nghe có vẻ tồi tệ nhưng rất nhiều người ở độ tuổi của tôi thực sự quan tâm đến khía cạnh phá hoại của lập trình. Câu hỏi đầu tiên tôi nhận được từ bạn bè khi tôi nói với họ khá tốt với c ++ là "Bạn có thể tạo ra virus, thay đổi điểm số hay hack game không" Tôi không hoàn toàn ở cấp độ đó ... Tôi đã nghiên cứu về việc tiêm dll gần đây, vì vậy tôi đang nhận được ở đó Có lẽ bạn có thể nghĩ ra thứ gì đó dọc theo dòng phần mềm độc hại không nguy hiểm hoặc bất hợp pháp nhưng vẫn thú vị. (Có thể lấy thông tin đăng nhập của một học sinh từ máy chủ của trường) Bạn có thể nói chuyện với họ về cách thức hoạt động của virus và phần mềm độc hại.
  2. Phát triển một trò chơi nhỏ dọc theo dòng pokemon và mô tả cho chúng cách trò chơi và công cụ trò chơi hoạt động. Rất nhiều người có lẽ sẽ ngạc nhiên khi biết rằng trong rất nhiều game 2d như thế này, nhân vật không thực sự di chuyển, bối cảnh và nhân vật chỉ sử dụng một hình ảnh động, nói về những con số ngẫu nhiên. Hãy đến với một số cuộc biểu tình 3D quá.
  3. Cố gắng tránh xa việc giải thích những gì làm, cố gắng nói với họ những gì chương trìnhtự nó làm mà không nói về mã quá nhiều. Theo kinh nghiệm của tôi, đó là một cách dễ dàng để đánh mất sự chú ý của mọi người, đặc biệt nếu họ không hiểu những điều cơ bản của ngôn ngữ. Trên thực tế, tôi sẽ cố gắng không thực sự đưa mã nguồn ra ngoài vì có thể khá nản lòng khi ai đó nhìn vào 500 dòng mã và không hiểu bất kỳ mã nào. Ngoài ra nếu bạn có một người mà bạn đang chứng minh giống như tôi, họ có thể sẽ hỏi một chuỗi câu hỏi vì họ có một tâm trí tò mò. tức là: Bạn đang nói về những con số ngẫu nhiên, họ hỏi những con số ngẫu nhiên đó là gì và chúng đến từ đâu ... hơn là bạn phải giải thích cho họ về tiếng ồn điện tử và sự ngẫu nhiên và mọi thứ của nó, hơn là bạn có thể thấy mình trong tình huống bạn đang ở đâu giống như "Tôi không biết".
  4. Lego Mindstorms là một ý tưởng tuyệt vời. Nếu bạn không muốn đi theo con đường dài và sử dụng một ngôn ngữ chính thì nó đi kèm với một ngôn ngữ lập trình kiểu khối mà bạn có thể sử dụng. Tôi đã tìm ra ngôn ngữ trong khoảng 30-40 phút, mọi thứ xếp hàng khi bạn nghĩ về nó

  5. Bạn có thể nhanh chóng phát triển một ứng dụng và thể hiện nó, nói chuyện với họ về $$ có thể đến từ việc phát triển ứng dụng.


4

một số yêu thích của tôi

  • tạo ra fractals . chúng có mối liên hệ chặt chẽ với toán học sâu và đồ họa máy tính, và chúng cũng tự nhiên phù hợp với sự song song. nó minh họa sự phức tạp và hành vi mới nổi , đặc biệt khi bạn phóng to các thang đo tùy ý và có mối liên hệ chặt chẽ với khoa học và hiện tượng tự nhiên. không khó để viết một số mã fractal song song chạy trên nhiều máy. một thử nghiệm là để mỗi máy hiển thị các dòng ngẫu nhiên mà nó đã xử lý (ví dụ: máy "nô lệ" xử lý các dòng từ hàng đợi) và sau đó một máy trung tâm hiển thị kết quả kết hợp.

  • lego robotics (hoặc bộ dụng cụ robot khác, ví dụ như tem ). mindstorms là một món đồ chơi, nhưng nó có thể là một thứ rất tiên tiến phục vụ như một minh chứng hữu hình cho các khái niệm trừu tượng. phần mềm có thể chạy trên chúng có thể rất phức tạp và chúng có thể có các vòng lặp / thuật toán ý thức hành động phức tạp. có nhiều sách xây dựng tốt. cũng ấn tượng là các bộ giải khối Rubiks , gần đây đã phá kỷ lục thế giới.

  • raspberry pi là một nền tảng rẻ tiền mới đang được nhiều người quan tâm và sử dụng. nó có thể được sử dụng để trình diễn lập trình linux, robot, v.v., và có đầu ra HD, v.v. xem ví dụ: siêu máy tính raspberry pi Southhampton với giá đỡ Lego.

  • Logo như được đề cập trong câu trả lời khác là một cổ điển cũ. một góc độ mới hơn là lập trình trò chơi, ví dụ như với một ngôn ngữ phổ biến mới nổi có tên Scratch (được phát minh tại MIT ). nó có thể dạy nhiều chủ đề CS tự nhiên / nâng cao.


2

Đây là một góc độ khác. có rất nhiều vấn đề mở thú vị hoặc các công nghệ mới nổi trong khoa học máy tính tại biên giới của sự hiểu biết khoa học có thể châm ngòi cho sự tò mò / ngạc nhiên, thăm dò tức của lân cận incognita terra . nếu bạn nêu ra các vấn đề và sau đó cả lớp tham gia vào một cuộc thảo luận về sự phân nhánh của các giải pháp, điều đó có thể gây ra sự quan tâm / cảm hứng đáng kể. [kể từ khi bạn đề cập đến sự sẵn có của phòng thí nghiệm máy tính, bạn cũng có thể sáng tạo ra một số bài tập máy tính thực hành liên quan đến các lĩnh vực này.]

điều này có thể mang lại cảm giác khoa học viễn tưởng nhưng trong CS không giống bất kỳ lĩnh vực nào khác, nó biến những gì đã từng là scifi thành hiện thực trong một khoảng thời gian ngắn. chúng cũng có thể gây tranh cãi và kịp thời, kết nối với các tiêu đề ngày nay và sinh viên có thể bắt đầu nắm bắt mức độ phổ biến của CS trong thế giới / xã hội của chúng ta và tầm quan trọng của nó, khi được giải thích rộng rãi. đây là một vài cái lớn

  • DNA để vấn đề gấp protein . Có một thuật toán để tính toán chính xác?

  • trí tuệ nhân tạo nói chung. có thể không có đạo đức liên quan?

  • robot có nhiều lĩnh vực mới nổi quan trọng. ví dụ xe tự lái / lái xe . nó ở đường chân trời gần. Điều này sẽ ảnh hưởng đến xã hội như thế nào? video của cuộc thi DARPA từ cách đây không lâu rất ấn tượng. Bài viết của Kurzweil có rất nhiều thứ để vào. máy bay không người lái là một chủ đề phức tạp hiếm khi được thảo luận công khai và sẽ ngày càng được sử dụng trong nước. các mars cỗ là công nghệ đặc biệt và có những câu chuyện tuyệt vời đằng sau nó, chẳng hạn như làm thế nào các hệ thống đã được sửa lỗi từ xa-interplanetarily khi họ thất bại.

  • Các hệ thống giám sát dựa trên CNTT để phát hiện tội phạm / khủng bố có rất nhiều trong các tin tức gần đây.

  • boson Higgs không thể được phát hiện và siêu tàu không thể hoạt động hoàn toàn nếu không có các hệ thống dựa trên CS lớn để phân tích "dữ liệu lớn".

  • Định luật Moore . nó sẽ tiếp tục bao xa nó đã ảnh hưởng đến xã hội / nhân loại đến mức nào?

  • Máy tính lượng tử . họ có thể không họ sẽ nhanh hơn chứ? họ sẽ thấp hèn hay luôn bất cần? Dwave là một trường hợp nghiên cứu đầy màu sắc, có một bài viết SciAm tuyệt vời của Aaronson, v.v.

  • Thuật toán pagerank của Google là một trong những kỳ quan đa năng của khoa học máy tính hiện đại. nó sẽ được gia hạn? Làm thế nào để lọc thư rác hoạt động? công ty dường như đang tiến tới phân tích hình ảnh, v.v.

  • thuật toán / giao dịch tần số cao hiện chuyển số lượng lớn khối lượng / giá trị giao dịch. nó tốt / xấu? nó đang tăng / giảm? nó sẽ được quy định trong tương lai? Những cuộc chạy đua vũ trang tính toán có liên quan?

  • siêu máy tính rất lớn, giải quyết các vấn đề đáng kinh ngạc và ngày càng lớn hơn. Có giới hạn không? họ tính toán cái gì và họ sẽ tính toán cái gì trong tương lai? phần nào liên quan, Big dữ liệukhai phá dữ liệu .

  • các trang web mạng xã hội đã có tác động rất lớn trong chưa đầy một thập kỷ tăng trưởng. họ có liên quan đến việc thúc đẩy các cuộc nổi dậy phổ biến, ví dụ như mùa xuân Ả Rậpchiếm đóng tường . tương lai của họ là gì?


2

Tôi có một đề xuất rằng

  • tập trung vào khoa học máy tính (không phải lập trình hay phụ trợ),
  • bắt đầu với một tiền đề hầu hết trẻ em biết và
  • đã thực sự được thử và hoạt động.

Chúng tôi đã tổ chức các hội thảo nhỏ với học sinh trung học về Minesweeper . Hội thảo sẽ đại khái như thế này:

  1. Hãy chơi trò chơi một chút (hầu hết đều biết).

  2. Chúng ta vừa làm gì? Vấn đề chúng ta cố gắng giải quyết là gì? Chúng ta có thể xây dựng các quy tắc chung?

    Điều này thường sẽ mất một lúc. Trẻ em không được sử dụng để hình thành các vấn đề về đầu vào và đầu ra vì sợ các quy tắc chung để giải quyết chúng. Những người đã lập trình trước sẽ đánh giá cao nỗ lực; tham khảo "mã spaghetti" có thể giúp đỡ. Tuy nhiên, hầu hết các quy tắc sẽ đơn giản hầu hết thời gian, chỉ xem xét một ô mỗi lần.

  3. Triển lãm các vấn đề với các quy tắc.

    Tại thời điểm này, bạn muốn giới thiệu một trình giả lập Minesweeper . Cái của Bayer, Snyder và Chouiery không hoàn hảo nhưng cho phép bạn trưng bày các kịch bản được thiết kế cẩn thận.

  4. Cải thiện các quy tắc để bao gồm nhiều kịch bản hơn.

    Điều này thường sẽ dẫn sinh viên điều tra ngày càng nhiều tế bào cùng nhau. Bạn cũng có thể thúc đẩy họ theo hướng "giải quyết tất cả" như thể hiện thông tin trong tay như một hệ phương trình tuyến tính - điều này xuất hiện nếu bạn cố gắng diễn đạt thông tin có sẵn bằng thuật ngữ toán học. Học sinh đã biết làm thế nào để giải quyết các hệ thống như vậy!

  5. Lưu ý hạn chế.

    Đầu tiên, có những kịch bản không có giải pháp (xác định). Hơn nữa, chúng ta có thể tương phản vũ lực với các chiến lược đã phát triển của chúng tôi. Chúng ta có thể đánh đổi tốc độ so với sức mạnh? Nếu phương pháp hệ phương trình bật lên, lưu ý rằng chúng ta chỉ có thể giải quyết vấn đề này một cách hiệu quả trên thực tế, nhưng chúng ta cần câu trả lời nhị phân. Không quá khó để xây dựng các kịch bản dẫn đến thời gian chạy lớn (chúng tôi đã sử dụng đại số máy tính để minh họa).

Tùy thuộc vào nhóm, cách tiếp cận này cho phép bao quát nhiều nguyên tắc của khoa học máy tính theo cách tự nhiên: xác định vấn đề, mô tả thuật toán chung, giải quyết vấn đề lặp cũng như các vấn đề về tính toán và độ phức tạp đều có thể được chạm vào.

Phản hồi của sinh viên đã được tích cực tổng thể; họ cảm thấy gắn bó và thể hiện sự quan tâm đến các khái niệm. Điều quan trọng là hãy để họ làm hầu hết công việc, chỉ cẩn thận đẩy họ theo hướng mong muốn bằng cách đặt câu hỏi nhọn.


1

bạn có rất nhiều việc phải làm ... nhưng có một điều dường như rất "tiền", vì vậy hãy trình bày câu hỏi "P NP" và giải thưởng bảy thiên niên kỷ, khi tôi học cấp hai tôi đã đọc về nó mặc dù tôi tôi không biết các ký hiệu điều duy nhất mà tôi hiểu: có giải thưởng và câu hỏi lớn! những thứ khác sẽ trình bày sự kết nối của toán học và khoa học máy tính như: giải phương trình, kiểm tra các giải pháp bằng máy tính.

những điều khác tôi muốn đề xuất là trình bày Alan nói "cha đẻ của khoa học máy tính" và kể câu chuyện của mình. điều cuối cùng mà tôi đề nghị là bằng chứng kiến ​​thức bằng không và trò chơi "waldo ở đâu?" và chơi mà không gian lận và mật mã và tấn công mạng.


-2

Làm bất cứ điều gì với facebook, họ thích nó. Có thể điều này gây khó khăn cho người mới bắt đầu, nhưng bạn không nên để họ vẽ biểu đồ liên kết, cho thấy cách cấu hình của họ được kết nối với nhau. Tôi muốn giới thiệu Javascript là ngôn ngữ lập trình.

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.