Me ofereceram para ensinar um novo programa de ensino médio do TCS, que exige a construção de um currículo. Eu gostaria muito de ouvir opiniões e sugestões sobre isso.
Primeiro, alguém conhece as escolas secundárias onde um programa TCS foi ensinado com sucesso (ou sem sucesso)?
A idéia é de um programa de três anos (10 a 12 séries, de 16 a 18 anos), cerca de 8 horas semanais, para alunos destacados selecionados, o que significa que pode e deve ser exigente. Diferentemente do programa "computadores" padrão, este programa não deve se concentrar na programação, mas em tópicos selecionados no CS, principalmente no TCS. Os tópicos que temos em mente até agora são:
- Análise assintótica
- Estruturas de dados e algoritmos básicos (listas, matrizes)
- Algoritmos de gráfico, também como demonstração de algoritmos gananciosos versus programação dinâmica.
- Outros algoritmos (por exemplo, probabilístico)
- Computabilidade - o conceito de TM, redução, decidibilidade.
- Complexidade - NP, P, talvez PSPACE e NL. Completude.
- Teoria dos autômatos
Basicamente, isso abrange a parte do TCS dos dois primeiros anos de um bacharelado em CS. No entanto, devemos ter em mente que esses alunos não possuem os fundamentos matemáticos necessários para a maior parte deste material. Em particular, coisas como teoria dos conjuntos, combinatória, probabilidade e arte-modular não são ensinadas no ensino médio (infelizmente).
Para resumir e fazer perguntas precisas:
- Alguém sabe de um programa semelhante em algum lugar?
- Existem sugestões para tópicos concretos / gerais que você acha que pode e deve ser ensinado além dos tópicos acima, mantendo o programa interessante, além de importante e diretamente relevante (por exemplo, a teoria dos grupos é importante e interessante, mas não é relevante o suficiente) para justificar o tempo que levará)
- Eu ficaria feliz em introduzir o aprendizado de máquina de alguma forma, pois atualmente é um assunto muito quente. Quaisquer idéias sobre como o aprendizado de máquina pode ser apresentado sem ferramentas como os teoremas da concentração-medida são bem-vindas.
Respostas:
Muitos países organizam escolas de verão para suas equipes de IOI (que consistem em estudantes do ensino médio com cerca de 16 anos de idade). O que temos no Irã costumava ter os seguintes cursos:
Eu acho que a Associação de Professores de Ciência da Computação da ACM tem um currículo K12 em sua página de Recursos Curriculares , embora provavelmente seja muito leve para adolescentes talentosos.
Eu acho que programação deve definitivamente fazer parte do currículo. Python deve ser uma boa primeira linguagem para aprender.
Você também pode cobrir alguns tópicos acessíveis com aplicativos (a alegria de criar algo bacana pode ter um grande efeito no interesse deles). Eu acho que o curso de ML de Coursera de Andrew Ng deve ser acessível para estudantes talentosos (especialmente para países de países onde o seu, onde existe um currículo de matemática K12 mais sério).
Um tópico não-padrão que você pode considerar é a teoria combinacional dos jogos; pode não ser muito interessante aos 16 anos (não tenho experiência para isso), mas funciona muito bem para estudantes um pouco mais jovens na minha experiência.
Pessoalmente, acho que o tema central e de conexão deve estar em torno de algoritmos, acho que funcionaria melhor do que a teoria dos autômatos como tema central e, sem dúvida, a perspectiva algorítmica (não máquinas de Turing, autômatos etc.) é a essência da ciência da computação.
fonte
Curiosamente, há alguém que argumentou que o aprendizado de máquina é exclusivamente adequadoentre os tópicos de ciência da computação para ensinar aos alunos do ensino médio, porque supostamente é um dos poucos subcampos em que a matemática básica pode fazer você entender o suficiente para apreciar os desafios importantes. Não concordo com essa afirmação - algoritmos básicos (digamos, para pesquisar, classificar) podem ser apresentados como quebra-cabeças e você pode rapidamente chegar a um estado muito simples, mas problemas abertos fundamentais como "a multiplicação pode ser feita com essencialmente o mesmo número de operações" como adição ", ou ordenação de números inteiros em tempo linear ou fatoração (presumo que o conceito de números primos não seja novo para o grupo selecionado de estudantes do ensino médio?). Por outro lado, seria difícil entender muito aprendizado de máquina sem um bom nível de experiência com estatística e teoria das probabilidades. Mesmo assim,
Em termos de um programa de ensino, há um mais detalhado por Essinger e Rosen na Drexel.
Além disso, eu acho que alguém pode tentar esboçar algumas das idéias de mais alto nível da teoria da aprendizagem:
Outra sugestão é introduzir circuitos e tentar algum esboço do limite inferior de Shannon. Depende do conforto dos alunos em contar. Se isso for muito pesado, ainda poderá ajudar a argumentar enquanto os alunos fazem a contagem dos circuitos por fé. Eu acho que a idéia de "a maioria dos problemas exige circuitos grandes, porque há muitos problemas e poucos circuitos pequenos" será impressionante. Essa ideia é importante e difundida em complexidade.
fonte
Aqui está uma direção promissora para seguir em frente. A AP / NSF anunciou recentemente uma nova iniciativa do programa CS de colocação avançada no ensino médio. haverá muitas vantagens em usar esse programa, como um plano de aula padronizado, acreditação para faculdades, etc.
está atualmente em desenvolvimento e deve estar pronto para 2016. o currículo e os materiais do curso estão disponíveis online. (para especialistas acadêmicos, pode até haver alguma possibilidade de influenciar o conteúdo futuro por meio da colaboração do tipo "inteligência coletiva".)
o programa existente é chamado AP Computer Science A e o novo programa é chamado AP Computer Science Principles. a turma existente existe há muitos anos e também é útil como modelo para os professores que desenvolvem currículo.
fonte
Uma ideia que tenho discutido recentemente é como ensinar aos alunos do ensino superior a noção de redução entre problemas. Achei que esse era um dos tópicos mais interessantes, porém mais desafiadores, quando fui apresentado à complexidade, já que é bastante difícil (pelo menos inicialmente) entender o fato de que um problema como o 3-SAT é "igualmente difícil" como Vertex-Cover.
O exemplo que eu criei foi uma redução entre Vertex Cover (VC) e Independent Set (IND-SET), com a seguinte redação;
"Você é o diretor de um museu e tem a tarefa de contratar segurança para proteger os corredores. Quando colocado em um cruzamento de corredores, um guarda pode ficar de olho em TODOS os corredores adjacentes a ele. Qual é o número mínimo de guardas necessários? patrulhar todo o museu? "
"Um pouco mais tarde, algumas crianças decidem brincar de esconde-esconde no museu. O objetivo delas é esconder-se de modo que nenhuma outra criança possa vê-las. No entanto, os guardas não querem que elas corram pela cidade. corredores, então eles são relegados a "se esconder" nos cruzamentos. Qual é o maior número de crianças que podem se esconder no museu sem se ver? "
fonte