Uma das razões para realmente ingressar em uma universidade é ultrapassar a simples formação profissional e, em vez disso, agarrar-se a ideias mais profundas.

Vamos refletir um pouco sobre essa questão. Alguns anos atrás, os departamentos de Computer Science me convidaram para dar palestras em várias universidades. Quase que por acaso, perguntei ao meu primeiro público, formado por alunos do último ano, pós-graduandos e professores, sobre a definição de "Computer Science". Todos puderam oferecer apenas uma definição técnica. Fiz isso em cada novo lugar, e os resultados foram semelhantes em todos os locais.
Outra pergunta foi: "Quem é Douglas Engelbart?" Algumas pessoas disseram: "ele não teve alguma relação com o mouse?" (e isso me desapontou muito, pois minha comunidade científica se esforçou bastante para que a resposta a essa pergunta pudesse ser encontrada após dois ou três cliques do mouse e certificar-se de que Engelbart realmente teve alguma conexão com o mouse).
Em parte, o problema estava na falta de curiosidade, em parte na limitação dos objetivos pessoais que não estavam ligados ao aprendizado, e em parte na falta de compreensão do que essa ciência representa, e assim por diante.
Eu trabalho em meio período no departamento de ciência da computação da Universidade da Califórnia há alguns anos (na verdade, sou professor, mas não preciso participar das reuniões do departamento). Ocasionalmente, dou aulas, às vezes para calouros. Ao longo desses anos, o já baixo nível de curiosidade em Computer Science diminuiu consideravelmente (mas também aumentou a popularidade, uma vez que a ciência da computação é vista como um caminho para um emprego bem pago, caso você saiba programar e tenha um certificado de uma das 10 melhores escolas). Assim, nenhum aluno ainda reclamou de que a primeira linguagem na Universidade da Califórnia é C++!
Parece-me que nos deparamos com uma situação em que ambos os valores de "Computador" e "Ciência" foram diluídos por conceitos massivos e fracos para criar um novo termo — uma espécie de etiqueta em jeans — que soa bem, mas é suficientemente vazio. O termo relacionado, igualmente diluído, "engenharia de software", que novamente não usou as ideias mais brilhantes de "programação" e "engenharia", apenas as combinou (isso foi intencional na década de sessenta, quando o termo foi criado).
Uma das razões para realmente ingressar na universidade é para ir além do treinamento profissional simples e, em vez disso, agarrar ideias mais profundas. Parece-me bastante razoável que, na introdução a uma especialidade, se tente — se possível, com exemplos — fazer com que os aprendizes enfrentem problemas reais e comecem a entender o que realmente é interessante, importante e central nesta área.
Os alunos do primeiro ano ficam empolgados quando lhes mostram como uma régua sobre outra régua se torna um ábaco, com o qual podem superar os alunos da 5ª série na adição de frações. E então eles ficarão felizes em participar do desenvolvimento de ábacos melhorados. Eles tocaram em um verdadeiro computador — uma ferramenta física e mental que nos ajuda a pensar. Eles aprenderam um modo realmente eficaz de representar números — mais eficaz do que o que se ensina nas escolas!
Eles conseguiram conectar sua ideia sensata de "adição" como "acumulação" com algo semelhante com novas propriedades poderosas. Eles o programaram para que fosse capaz de resolver uma variedade de problemas.
Eles também o expandiram. E assim por diante. Não é um computador digital. E não é um computador com programa armazenável. Mas essa é a essência do computador. Assim como — essa é, na verdade, a essência do computador e da computação.

O mecanismo de Anticítera
Até onde podemos ir e quanto podemos fazer antes que tudo saia do controle e nos perdamos em abstrações? Sempre fui indiferente à característica de — o primeiro laureado do Prêmio Turing, que talvez tenha inventado o termo "Ciência da Computação" — que nos anos 60 disse: "Ciência da Computação é a ciência dos processos". Todos os processos.
Em prol da empresa Quora, vamos evitar levar isso adiante ou transformar em um dogma religioso. Vamos apenas usar a ideia de forma feliz. , para pensarmos melhor sobre nossa área. E especialmente sobre como ensinar isso. Precisamos olhar para o significado contemporâneo de "ciência", e Perlis estava bastante confiante de que isso não deveria ser diluído por valores antigos (como "acúmulo de conhecimento") e usos (como "biblioteconomia" ou até mesmo "ciências sociais"). Sob "ciência", ele tentou entender o fenômeno, criando modelos/mapas que tentam mostrar, "rastrear" e prever fenômenos.

Eu dei várias entrevistas sobre como os melhores mapas e modelos muitas vezes podem se adequar a uma camiseta, assim como as equações de Maxwell e outras. A analogia é que existe uma "ciência das pontes", embora a maioria das pontes seja feita pelo homem. Mas assim que a ponte é construída, ela reflete fenômenos que os cientistas podem estudar; a partir das pontes, é possível criar modelos de muitos tipos e formar teorias abrangentes e úteis sobre "pontes". A diversão é que, então, pode-se projetar e construir novas pontes (já mencionei que dificilmente há algo mais divertido do que a colaboração de cientistas e engenheiros para resolver grandes e importantes problemas!).

Herbert Simon — laureado do Prêmio Turing e do Prêmio Nobel — chamou tudo isso de "ciências do artificial" (e escreveu um magnífico livro com esse título).

Deixe-me dar um exemplo. Na década de 50, empresas e universidades estavam construindo computadores com programação armazenada e começando a programá-los — e houve um momento especial em 1956, quando o Fortran surgiu — que não era a primeira linguagem de alto nível, mas talvez a primeira feita de forma tão boa que fosse usada em uma série de áreas diferentes, incluindo muitas que antes eram feitas apenas em linguagem de máquina.
Tudo isso gerou "fenômenos".

John McCarthy
A história do Lisp é mais complexa, mas John McCarthy se interessou pela tentativa de encontrar uma "teoria matemática da computação" e estava determinado a fazer tudo funcionar perfeitamente. A função eval, que interpreta Lisp, pode facilmente ser colocada em uma camiseta! Comparado ao "sistema de programação" — isso é insignificante. Mais importante, essa "teoria da computação" tinha uma concepção mais poderosa do que Fortran! Essa foi a melhor ideia de ligação!
A miniaturização do Lisp permite que toda a ideia de programação seja capturada com algumas pulsões em um nível mais profundo e pensada em um nível que parece simplesmente impossível, quando você observa os enormes artefatos (esta é uma das razões pelas quais os cientistas preferem que a matemática seja compacta e poderosa). A matemática usada aqui é uma nova matemática, uma vez que permite conceitos como "antes" e "depois", levando à "lógica da variável", que permite manter tanto a dependência funcional quanto o raciocínio lógico, além de admitir a posição e a passagem do tempo. (Ainda não é compreendido em nosso tempo no cruel mundo da programação situacional).
O Lisp, atuando como uma poderosa linguagem de programação e metalanguage capaz de apresentar sua própria teoria, é um exemplo de verdadeira ciência da computação. Se você aprender isso e outras coisas semelhantes, poderá pensar de forma mais profunda e ter maior responsabilidade sobre seu próprio destino do que se apenas aprendesse a programar em Fortran ou seus equivalentes modernos (… dessa forma você poderá se aproximar dos programadores!).
Você aprenderá muito mais sobre tipos especiais de design que são necessários em computação (por exemplo, geralmente não é valorizado quando os cálculos frequentemente exigem sair do ambiente computacional: uma das características especiais da computação programada armazenada é que não é apenas material para o programa, mas material para um computador totalmente novo).
Outra razão para escolher a definição de Perlis é que, de maneira geral, a computação está muito mais relacionada à criação de sistemas de vários tipos do que a algoritmos, "estruturas de dados" ou até mesmo à programação em si. Por exemplo, um computador é um sistema, a computação são sistemas, redes locais e a internet são sistemas, e a maioria dos programas deve representar sistemas melhores do que aqueles que são (o estilo antigo de programação dos anos 50 durou tanto que parece que a programação deveria ser assim — nada está mais longe da verdade).
A internet é um bom exemplo — ao contrário da maioria dos programas hoje em dia, a internet não precisa ser parada para consertar ou melhorar algo — ela se assemelha mais a um sistema biológico — por nossa intenção, do que ao que a maioria das pessoas considera um sistema computacional. E ela é muito mais escalável e confiável do que quase todos os sistemas de software existentes hoje. Isso é realmente algo a se pensar antes de ensinar iniciantes em programação conceitos que não são tão poderosos!
Então, o que precisamos fazer no primeiro curso de Ciência da Computação é levar em consideração o que os alunos podem fazer desde o início e, em seguida, tentar permanecer dentro de sua "carga cognitiva" para ajudá-los a chegar ao que realmente importa. É muito importante "manter-se autêntico" e encontrar maneiras que sejam intelectualmente honestas e adequadas para aqueles que estão apenas começando a aprender. (Por favor, não ensine ideias ruins apenas porque parecem um pouco mais simples — muitas ideias ruins são, de fato, mais simples!).
Os estudantes devem começar criando algo que tenha várias características importantes que discuti aqui. Deve ser um sistema composto por várias partes que interagem dinamicamente, e assim por diante. Uma boa maneira de decidir qual linguagem de programação usar é simplesmente fazer algo que tenha milhares de partes interativas! Se isso não for possível, você deve encontrar uma. O pior que você pode fazer é colocar os alunos em um caminho de fluência muito fraca que limitaria severamente as ideias expandidas. Isso simplesmente os mata — e queremos cultivá-los, não destruí-los.
Sobre a escola GoTo

- 17-30 de junho, 15-28 de julho, 12-25 de agosto
Fonte: habr.com
