Ensino do TCS do ensino médio - programas existentes

16

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:

  1. Alguém sabe de um programa semelhante em algum lugar?
  2. 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á)
  3. 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.
Shaull
fonte
2
Parece que você lista a teoria dos autômatos no final como uma espécie de reflexão posterior. Eu defenderia tornar a teoria dos autômatos o tema central e unificador. Ele pode apresentar aos alunos o raciocínio matemático formal, sem nenhuma formação matemática específica. Ele tem teoremas incondicionais afiados que são fundamentais, mas relativamente fáceis de provar. Ele pode ser conectado diretamente ao aprendizado de máquina , embora, pela minha experiência, seja difícil ensinar aos alunos de graduação em um primeiro curso de teoria, portanto, é necessário ter mais cautela com o HS.
Artem Kaznatcheev
11
nunca ouvimos falar disso antes! alunos "selecionados"? isso também significa avançado, presumivelmente? tente minerar pesquisar livros de ciência populares no TCS ou também blogs on-line [vários bons por aí]. Máquinas de Turing, computação quântica outras áreas-chave / interessantes. acho que isso poderia ser feito se a matemática não for pesada e feita de maneira mais conceitual do que matemática. também este site aparece muito em questões edu: cs unplugged . boa sorte!
vzn
2
Gostaria de saber se seria melhor dedicar parte do seu tempo a ensinar as habilidades matemáticas mencionadas (por exemplo, probabilidade) ... isso também ajudaria você a cobrir tópicos mais avançados, mas também ajudaria a preparar os alunos para estudos futuros em matemática / cs .
usul
11
@vzn - sim, esses são alunos avançados (ouso dizer - talentosos).
Shaull
11
@ vzn Essa é uma sugestão muito interessante. De alguma forma, o TCS ainda não faz parte da cultura popular. Ou seja, mesmo estudantes curiosos geralmente desconhecem questões como P vs NP. Definitivamente, pediremos sugestões aos alunos atuais de CS e veremos o que eles sugerem. Meu palpite é que a criptografia seria central.
Shaull

Respostas:

8

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:

  • programação,
  • estrutura de dados e algoritmos,
  • combinatória e
  • teoria dos grafos.

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.

Kaveh
fonte
A parte de programação é coberta pelo programa CS padrão, que todos eles usam. Estes são tópicos adicionais. Você tem um link para esse site de escola de verão? Quanto ao foco em algoritmos - embora eu concorde que eles são centrais para o CS, acho que computabilidade e complexidade são igualmente a essência da ciência da computação. Lembro-me de ficar muito mais impressionado com o fato de que existem coisas que não podemos resolver, em vez de algoritmos inteligentes. Mas ambos serão cobertos, provavelmente.
Shaull
de certa forma, as máquinas de Turing são sobre algoritmos . Ruby também é uma excelente opção comparável ao python . na mesma subj outra excelente opção para aprender desenvolvimento é javascript causa de muitas razões, por exemplo a sua proliferação em navegadores, os lotes de público / código de exemplo, apresenta amplos, alta de uso, etc.
vzn
11
@ Shaull, eles têm um site ( Young Scholars Club ), mas é em persa e não contém muito sobre o que é coberto na escola de verão.
Kaveh
11
@vzn, acho que você não tem muita experiência no ensino de TCS para alunos do ensino médio e expliquei muito claramente que não estou interessado em suas opiniões . Pare de trollar minhas respostas.
Kaveh
k, plz não adivinhe meu bkg e fará a mesma cortesia. o comentário é, basicamente, em apoio de suas opiniões ... soa como um tópico para meta = (
vzn
5

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:

  • qual é o problema básico de classificação
  • o que é uma classe de conceito e o que significa aprender um conceito
  • por que você não pode esperar aprender conceitos de uma classe de conceito irrestrita com menos de complexidade de amostragem exponencial (como uma introdução à contagem de argumentos)
  • o que é dimensão VC

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.

Sasho Nikolov
fonte
Ambas as sugestões são muito agradáveis. Obrigado! Tenho a sensação de que, para o ensino médio, apenas aprender o que é uma dimensão de VC pode levar cerca de 3 meses, o que pode ser demais. Mas definitivamente vale a pena considerar, especialmente porque o pensamento já foi colocado nisso.
Shaull 9/11/2013
Acho que apenas para entender o que significa aprender um conceito e ter uma vaga idéia de que você não pode aprender coisas arbitrariamente complicadas antes que o sol congele seja uma vitória.
Sasho Nikolov
3

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 Advanced Placement Program do College Board disse quinta-feira que planeja adicionar um novo programa de ciência da computação às suas ofertas de classe, o primeiro novo teste em sete anos. A medida reflete um interesse crescente em treinar estudantes para carreiras nas ciências, em meio a um esforço nacional para tornar a economia dos EUA mais competitiva globalmente.

O novo programa, Princípios de Ciência da Computação da AP, se concentrará nos "aspectos criativos" da computação e será financiado em parte por uma doação de US $ 5,2 milhões da National Science Foundation. A agência federal pretende treinar mais de 10.000 professores de ciência da computação no mesmo número de escolas secundárias em todo o país até 2016, como parte de um esforço para melhorar a educação nos campos de ciência, tecnologia, engenharia e matemática, ou STEM. O College Board vai aportar cerca de US $ 3,5 milhões para apoio e equipamento dos professores.

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.

vzn
fonte
3
Aliás, Baker Franke e eu enviamos uma proposta para uma sessão do BOF (Birds-of-a-Feather) no SIGCSE '14 para discutir como tornar os tópicos em teoria acessíveis ao currículo dos Princípios de CS.
#
@ rahulmehta95 - existe um link para a proposta que eu posso ler?
Shaull
2
Aqui está: cs.ucls.uchicago.edu/~rahulmehta/papers/BOF-Theory.pdf . Espero que isto ajude!
rahulmehta95
2

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? "

VCPIND-SET

G=(V,E)SV VS

SVSG

rahulmehta95
fonte
CeuEuQvocêEpEuND-SET
no que diz respeito às reduções, a prova de que existe uma máquina de turing universal é um caminho a percorrer e provavelmente é compreensível para os alunos do ensino médio avançados [note que existem muitos vídeos de lego TM, alguns até de pesquisadores da cs ...] também, talvez a transformação de tseitina ?
vzn