A base de qualquer programação em... quebra-cabeças

Saudações, residentes de Khabrovsk!

Neste artigo quero falar sobre minha experiência como professor de programação C++ em uma faculdade de uma universidade técnica. Foi uma experiência única que me ensinou muito. Quando se trata de fatos interessantes do seu passado pessoal, esta passagem da vida é uma das primeiras que vêm à mente.
Vamos

Primeiro, um pouco sobre mim.
Em 2016, me formei com louvor no instituto em Segurança da Informação de Sistemas Automatizados. Durante meus estudos, pude repetidamente concretizar meu potencial escrevendo artigos científicos, participando de concursos e bolsas. Em 2015, tive a oportunidade de me tornar o vencedor do concurso russo para jovens cientistas “UMNIK”. Em 2016, antes de concluir os estudos, já trabalhava em uma grande organização da cidade como “Especialista em Segurança da Informação, Criptografia e Criptografia”.
Resumindo, algo assim. Você pode imaginar que eu ainda tinha uma ideia sobre programação.

E aqui estamos em 2017. Estudos de pós-graduação. Fui convidado para lecionar C++ em uma faculdade por um semestre, pelo qual me prometeram bons bônus para aliviar o fardo de um estudante de pós-graduação e nada mais.

Para ser honesto, eu estava sinceramente interessado em experimentar esse credo.

Primeiro par
Setembro. Primeira semana de aula. Os alunos vieram até mim. “O grupo mais travesso” - era assim que eram chamados.
23 pessoas. "Programadores".

Como esperado, primeiro me apresentei. Contei-lhes discretamente o conteúdo da parte “Primeiro, um pouco sobre mim”...
Então começou a coisa terrível. À pergunta “O que você pode fazer?” os alunos (vamos chamá-los assim de agora em diante) responderam que podiam fazer um pouco mais do que nada (bem, isso significava que alguns deles sabiam como era o MS VS e poderiam criar um projeto “Olá, mundo”). .. Programadores. Último curso…

Além disso, explicaram detalhadamente, “em cores”, que não tinham aprendido nada e que, em geral, estavam decepcionados com a programação...

Quase todos os dias até minha próxima lição foram assim:
A base de qualquer programação em... quebra-cabeças

... mas no dia anterior surgiu a ideia de envidar esforços para corrigir a situação actual nas mentes e nas consciências destes jovens. E então “Ostap se empolgou”.

Introdução à Programação
Para a próxima lição eu trouxe... um quebra-cabeça.
Sim Sim. Quebra-cabeça. "Como Treinar seu dragão." As regras eram simples. O grupo foi dividido em 3 equipes. Cada equipe montou sua parte. Alguns são a floresta, outros são a terra, outros são o dragão no centro da imagem. Enquanto todo o casal montava o quebra-cabeça, eu disse a eles que montar um quebra-cabeça também é programarque os programadores muitas vezes usam código de outra pessoa, que cada projeto tem diversas equipes, funcionalidades, módulos diferentes...
Aos poucos, os alunos mais letárgicos aderiram ao processo.
Quando terminei de incorporar a ideia de programação em conceitos de negócios, processos e... quebra-cabeças, era hora de estabelecer as regras do treinamento.
Para cada aula, cada aluno teve que anotar 10 termos de TI em um caderno. Qualquer. Todo mundo tem o seu. A questão é que peguei o caderno de um aluno e encontrei entre todos os termos aplicado ao máximo e perguntei a outro aluno sobre eles. Quando outro aluno disser: “Eu não anotei esse termo”, não houve penalidade (devido ao bom senso), mas esse aluno teve que anotar os termos “faltantes” (como todos os outros que não os tinham) e encontrar seus significados na próxima ocupação.

Foi isso que fizemos. Cada aula começava com uma alegre aleatoriedade em relação a dois ou três alunos. Os caras ficaram entusiasmados com esse processo.

Tópicos da aula
Ao iniciar o treinamento, é muito importante fornecer aos alunos uma boa literatura. Na minha opinião o livro ideal era:
A base de qualquer programação em... quebra-cabeças

Certa vez, tive que lê-lo furtivamente enquanto abraçava o Microsoft Visual Studio. Então consegui entender a programação quase do zero. Opção perfeita.

Você modestamente vai até os alunos e diz: “Para se tornar programador, você só precisa ler e experimentar tudo neste livro”, e joga o livro sobre a mesa. O principal é não confundir os livros da mochila...

Antes de cada tópico, certamente tive que me preparar bem. Li o mesmo Laforet e várias outras fontes interessantes da Internet.
A explicação foi quase do zero. Além disso, era preciso entender onde o conhecimento básico dos alunos estava cortado dedutivamente.
Arrays -> Trabalhando com memória (construtores) -> Links -> Como funciona a memória -> Drives -> O que é um drive físico -> Representação binária de dados...
A base de qualquer programação em... quebra-cabeças

Um teste de colisão muito forte de conhecimento de fatos fundamentais sobre programação. Não sou mais programador, sou historiador!

E assim, significa que batalhas históricas estão acontecendo para vários casais seguidos. Um dia, uma secretária do departamento olha para dentro do nosso escritório e, ao ver o grupo, arregala os olhos, espia e fecha a porta. Como me disseram mais tarde, ela ficou chocada por ESSE grupo estar tão quieto e me ouvir com tanta atenção... Eh, fácil.

Trabalhos de laboratório
A primeira informação aplicada são os primeiros “laboratórios”. No total, o grupo realizou 10 trabalhos laboratoriais durante o semestre. No começo eles fizeram o console mais simples a + b, e neste último eles escreveram aplicativos, embora baseados em console, mas bastante interessantes, como calcular o valor da integral de alguma função dada arbitrariamente usando um dos três métodos - aproximadamente as mesmas tarefas estavam na certificação final - trabalho de curso.

Essa é apenas a abordagem de aceitação não era familiar. Ao longo dos meus estudos no instituto, me deparei com o fato de que ser inteligente e saber passar relatórios não são a mesma coisa. Isso não combinava comigo.

- Gente, eu estava pensando. Vamos construir um relacionamento “conceitual”. Se algum de vocês pensa que não precisa de programação, a porta está ali. Eu te ensino de graça. Quero ver aqui apenas entusiastas curiosos, atenciosos e atenciosos. “Peço a todos que não desperdicem o tempo de todos”, disse no primeiro dia de trabalho de laboratório. Depois disso, 5 pessoas pararam imediatamente de frequentar as aulas. Isso era lógico e esperado. Foi possível tentar fazer algo inteligível com o resto.

- ... não estou interessado em ver alguém fazer o seu trabalho só para passar. Vocês podem não ser programadores, mas serão pessoas em minhas aulas ter.

Parecia assim:

case отличник

Um aluno senta-se comigo para entregar seu trabalho.
— Você mesmo fez isso?
- Sim.
- O que é isso?
- *responde corretamente*.
*Pergunto sobre mais alguns pontos. Responde corretamente*
- aceitaram. Ótimo.

case болтун

— Você mesmo fez isso?
- Sim.
- O que é isso?
- *responde incorretamente / não responde*.
*Pergunto sobre mais alguns pontos. Mesmo resultado*
- Não aceito. FRACASSADO Estou aguardando a retomada.

case хорошист

— Você mesmo fez isso?
- Sim.
- O que é isso?
- *responde corretamente, mas não com confiança, nada*.
*Pergunto sobre mais alguns pontos. Mesmo resultado*
- aceitaram. Multar.

case ровныйТроечник

— Você mesmo fez isso?
- Não.
- Por que não?
- Difícil. Ele me ajudou... *nomeia honestamente um excelente aluno do grupo*
- Você entendeu?
- Sim, entendi quase tudo.

- O que é isso?
- *responde corretamente*.
*Pergunto sobre mais alguns pontos. Respostas mais ou menos corretas, às vezes completamente erradas, mesmo que sejam 50/50 corretas e incorretas*
- aceitaram. Multar.

Não faz sentido descrever todos os outros casos. Sim, um “bom aluno” pode ficar insatisfeito com o fato de um aluno “C” receber a mesma nota, com base na honestidade. Então tudo depende do humor. Ou peço ao “bom aluno” que olhe para o chão, porque “agora vou deixar cair uma pitada de sabedoria”, e depois contarei a essência da abordagem, descreverei o que na vida tem mais valor e explicarei que era muito mais difícil para o aluno “C” passar do que para ele, o “bom aluno”. ", etc…
... ou, como meu professor fez uma vez, desenharei um pequeno dente na caixa de diário em frente a essa pessoa insatisfeita e da próxima vez concluirei pessoalmente o trabalho de laboratório para ela. Apenas. Para não “extinguir” os seus camaradas.

A base de qualquer programação em... quebra-cabeças

Оценки
O processo educacional, como o mundo inteiro, está literalmente afogado em etiquetas de preços e notas.
Os alunos também são pessoas, porém, na minha opinião, o “quadro” deveria ter sido “abalado” também aqui.
Durante o semestre, todos receberam uma tarefa bônus. Registrar para Github.com, carregue um projeto C++ vazio lá, faça 2 atualizações, confirme-as e envie-as. Para essas ações foram atribuídas 15. Sim, sim, não 4, não 5, mas 15. Três descobriram. Isso era de alguma forma compreensível para o psicótipo do aluno, mas houve outro caso.
Uma vez nosso casal se mudou para que ela fosse a última, e também por algumas janelas. No entanto, 15 pessoas ainda compareceram. Eu não queria explicar um novo tópico em homenagem a tal heroísmo, pois já havíamos progredido muito bem apenas nos tópicos + o próximo tópico não era muito simples para cérebros cansados ​​(meus e dos alunos). Então decidi falar sobre filosofia.

— Anuncio uma atração de generosidade sem precedentes. Todo mundo me diz que nota dar a ele no par de hoje.
Todo mundo queria um "A".
“Considere que já está lá”, eu disse. Todos estavam felizes.
Silêncio.
- por que ninguém quis? 7-ku ou 10-ku?
Os olhos de todos se arregalaram e começaram a sorrir estupidamente.
- Você vai apostar? Para a revista?! - uma voz veio da mesa dos fundos.
- Sim, fácil! - eu disse, - estou anunciando uma blitz nos termos, quem responder 10 das minhas perguntas - aposto no dia 20 para a revista, sem pegadinha, quem não responde é quem -10 (menos dez).

“A equipe se animou, um debate começou”, todos ganharam notas honestamente. Dois se ofereceram. Com pequenas imprecisões, eles se revezaram com 10 perguntas sobre pilha, fila, construtor, destruidor, coletor de lixo, encapsulamento, polimorfismo, funções hash...
Cada um foi desenhado em uma revista 20... mas a importância da revista e das notas caiu nos olhos de todos. Agora lamento não ter perguntado se eles gostariam de “compartilhar” sua avaliação com alguém. Parece-me que iriam partilhar... A partir de agora todos entregaram o “laboratório” com conhecimento e honestidade.

A partir desse momento surgiu outro tipo de parto laboratorial:


case честноНеЕгоНоОнПытался

— Você mesmo fez isso?
- Não.
- Por que não?
- Difícil. Ele me ajudou... *nomeia honestamente um excelente aluno do grupo*
- Você entendeu?
— Sergey Nikolaevich, honestamente, não entendo nada, então escrevi comentários ao lado de cada linha — bem, isso não é minha praia, serei motorista de trator
- O que é isso?
— *lê o comentário ao lado da linha*.
- ...
- ...
— Qual é a diferença entre Belarus MTZ e Don 500 e K700?
- ??!.. O primeiro é um trator de rodas fabricado em Minsk, muito utilizado na produção agrícola leve e média. Também possui rodas pequenas na frente e rodas grandes atrás. O Don 500 é basicamente uma colheitadeira, e o K-700 Kirovets é um trator de rodas off-road soviético de uso geral, classe de tração 5.
- aceitaram. Multar (!!!).
- Obrigado, Sergei Nikolaevich!!!

Na minha terra natal, falar de TractorA é quase como falar de SOLID aqui.

Gênio
Havia um gênio no meu grupo. O aluno chegou muito atrasado desde a primeira aula e não completou o quebra-cabeça junto com todos os demais. Então pedi a ele que fizesse o que planejei para todos na próxima aula - escrever para si mesmo em um pedaço de papel o que lhe interessa, o que lhe interessa. De acordo com os resultados, “Genius” tinha 2-3 linhas: algo como “Eu percebo a futilidade de ser”...

...Oh, Deus, no meu grupo eu tenho o segundo Lao Tzu e Kojima em uma pessoa...
A base de qualquer programação em... quebra-cabeças

Para minha surpresa, nas duas primeiras aulas ele realmente respondeu a perguntas sobre termos de maneira brilhante, mas o efeito não durou muito. O “gênio” deixou de frequentar as aulas e da próxima vez veio apenas para passar no primeiro trabalho de laboratório, que concluiu com sucesso. não passou por razões objetivas. Depois, por absenteísmo, acumulou naturalmente dívidas, que, segundo ele, Fui simplesmente obrigado a contá-lo, por assim dizer, “de forma fraterna”.
A falta de frequência aos casais + aumento da frequência cardíaca era contrária aos princípios estabelecidos para a frequência das minhas aulas. O “gênio” tinha apenas 2 saídas para a situação - reabilitar-se (o caminho esperado) ou desistir das aulas e torcer por um “C” dado pela reitoria para se livrar do preguiçoso.
Bem, isso é “Genius”... você tem que agir “brilhantemente” imediatamente. Este jovem não encontrou nada melhor do que escrever no diálogo geral do VK (onde estávamos eu e todos os alunos deste grupo) um discurso irado com xingamentos e insultos dirigidos a mim.

Hmm... Decepção.
O que mais chamou a atenção foi que, antes da conclusão da operação punitiva por parte da direção do colégio, ele decidiu me pedir desculpas. Para que? - Sinceramente não entendo. Naquela época, eu era independente de críticas há muito tempo, especialmente daquelas francamente estúpidas. Minha personalidade não foi afetada, mas os processos são processos, e como professora não pude deixar de relatar isso. Acontece que tantas reclamações já haviam se acumulado contra ele durante seus estudos que este caso acabou sendo o último. Ele foi expulso. Do último ano da escola profissional.
Talvez ele esteja me observando há muito tempo através da mira de um rifle de precisão, mas, para ser sincero, não me importo.
Eh, gênio, você é sem coração...

Epílogo
Para mim, pessoalmente, a experiência de ensino foi uma das mais educativas. Isso me ajudou a consolidar meus conhecimentos fundamentais de programação depois de estudar no instituto. Senti-me confiante na especialidade escolhida (a gama de especialidades disponíveis). De particular importância é o facto de o “grupo mais travesso” ter me imbuído de respeito e simpatia - isso vale muito. Consegui encontrar um caminho para os seus inovadores interiores, tentei incutir a realidade, e não essas prioridades estereotipadas. É uma pena que não tenhamos chegado ao “quebra-cabeça” da codificação - quando todos teriam que fazer parte do código e, conectando todas as partes em uma, obteríamos um grande programa funcional...
Espero que um dia cada um deles sinta isso... mas por enquanto, abaixo estão screenshots com avaliações de vários alunos após 2 anos.

A base de qualquer programação em... quebra-cabeças

É muito cedo para tirar conclusões sobre o sucesso da carreira de programador de qualquer um deles, porque agora a maior parte desse grupo está estudando em uma universidade. O tempo mostrará.

Espero que o artigo tenha sido útil. Obrigado pela sua atenção!
Sucesso criativo e humor positivo, colegas!

Fonte: habr.com

Adicionar um comentário