Poucas ideias são tão centrais em computação e informática - e têm tantas aplicações! - como o conceito de algoritmo. O objetivo deste curso é dar-te uma introdução ao mundo dos algoritmos e à programação competitiva. Mas o que é isso e porque é que te pode interessar?
Alguns dos tópicos do curso de Algoritmos I são:
- Variáveis, condicionais, vetores, ciclos e funções em C++
- Pensamento algorítmico e algoritmos de pesquisa completa (força bruta)
- Eficiência e complexidade algorítmica de tempo e memória
- Pesquisa binária (e introdução aos logaritmos)
- Algoritmos de ordenação
- Prática de resolução de problemas de ordenação e pesquisa binária
- Escrever e submeter algoritmos em plataformas de avaliação automática como o Codeforces
Um algoritmo é uma sequência de instruções bem definidas que dás a um computador para resolveres uma certa classe de problemas ou efetuares um certo cálculo. Problemas como encontrar o caminho mais curto entre duas localizações, calcular a integridade estrutural de uma ponte, comparar sequências de ADN ou "treinar" uma rede neuronal. Para resolveres cada um destes problemas existem vários algoritmos possíveis, mas nem todos têm a mesma utilidade. Por exemplo, certos algoritmos são mais rápidos do que outros e requerem menos memória. Por isso, o mesmo problema pode demorar anos a ser resolvido com um certo algoritmo - até mesmo com o computador mais poderoso do mundo -, mas demorar menos de um segundo com o processador do teu telemóvel se usares um algoritmo certo.
Mas como avalias e descobres estes algoritmos mais eficientes? É aqui que entra a programação competitiva, onde diferentes programadores com diferentes algoritmos estão frente a frente para ver quem resolve o problema mais depressa com menos recursos. É uma das melhores e mais divertidas formas de desenvolveres as tuas competências algorítmicas e a tua capacidade de analisar problemas complexos e de encontrar soluções otimizadas para os mesmos. Além disso, é algo essencial para teres um bom desempenho em competições como as Olimpíadas Nacionais de Informática e pode contribuir para o teu futuro profissional, dado que é bem vista por diversas empresas, como a Google, Amazon ou Facebook.
Se isto te parece interessante, mas talvez um pouco complicado, não te preocupes. O curso está desenhado para alunos com apenas os conhecimentos básicos de programação. Todos os conceitos são ensinados em detalhe com tempo para compreenderes e praticares. E claro, como é típico do AfterSchool, terás colegas com os quais aprender e uma equipa de instrutores para te esclarecer quaisquer dúvidas. Se tópicos como Inteligência Artificial, Bioinformática ou Criptografia te fascinam e se estás disposto a trabalhar umas horas por semana para aprenderes técnicas de programação, desenvolveres o teu conhecimento de linguagens e ganhares proficiência em algoritmos e estruturas de dados, este curso é para ti. Candidata-te!
Para conseguires acompanhar o curso no tempo esperado, deverás já ter alguma experiência em programação, mas não necessariamente na linguagem que vamos usar (C++). Essencialmente, terás de estar à vontade com os conceitos e manipulações básicas de variáveis, ciclos, condicionais, funções e listas. Caso ainda não tenhas esses conhecimentos, poderás adquiri-los no nosso curso de Programação.