7 pontos por GN⁺ 2025-07-25 | 1 comentários | Compartilhar no WhatsApp
  • A aula "Mathematics for Computer Science" do MIT OpenCourseWare oferece a base matemática essencial para ciência da computação e engenharia de software
  • Aborda combinatória, teoria dos grafos, matemática discreta e outros temas, com foco em fortalecer a capacidade de resolver problemas de ciência da computação
  • Os materiais do curso incluem notas de aula, exercícios e soluções, todos disponibilizados, o que ajuda bastante no aprendizado prático
  • Este curso pode ser aplicado tanto na prática quanto na pesquisa, em áreas como projeto de algoritmos, teoria da computação e verificação de erros
  • É gratuito e aberto ao público, acessível a qualquer pessoa, e baseado no currículo padrão do MIT

Visão geral do curso

  • "Mathematics for Computer Science" do MIT OpenCourseWare é um curso central de matemática para estudantes de ciência da computação e engenharia elétrica
  • Entre os principais conteúdos estão combinatória, teoria dos grafos, estruturas discretas e probabilidade, oferecendo a base para a fundamentação lógica de programas e a análise de algoritmos

Principais áreas de estudo

  • Matemática discreta: destaca estruturas matemáticas básicas de programas, como números, funções, conjuntos e lógica
  • Combinatória e probabilidade: ajudam a compreender a eficiência, aleatoriedade e distribuição de dados em algoritmos
  • Teoria dos grafos: desempenha papel importante em estruturas de dados e representação de redes, além de problemas de busca de caminhos e otimização
  • Prova de correção de algoritmos: usa raciocínio lógico e indução matemática para garantir a confiabilidade dos programas

Materiais de estudo

  • Notas de aula: organizadas de forma sistemática, com foco em explicações teóricas e exemplos
  • Exercícios: incluem problemas de diferentes níveis de dificuldade em cada unidade para ampliar a capacidade de aplicar os conceitos
  • Soluções: fornecem explicações para verificar os resultados após tentar resolver os problemas por conta própria

Aplicações e valor

  • Estabelece a base fundamental para áreas como ciência da computação, projeto de sistemas, inteligência artificial e engenharia de software
  • O acesso gratuito oferece ampla oportunidade de aprendizado para aspirantes a desenvolvedores, engenheiros em atividade e pesquisadores
  • Estruturado de acordo com o currículo padrão do MIT, proporcionando uma experiência de aprendizado em nível global

Observações adicionais

  • Ao usar sites externos, os termos de uso e licenças desses sites podem ser diferentes dos do MIT OCW
  • O MIT OCW não se responsabiliza pelo conteúdo de sites externos

1 comentários

 
GN⁺ 2025-07-25
Comentários do Hacker News
  • É impressionante que qualquer pessoa possa assistir gratuitamente a aulas de nível das melhores universidades do mundo, especialmente uma aula profunda de matemática com 31 horas. Mas séries longas de aulas sempre foram difíceis de concluir para mim. Acabo procurando vídeos curtos que expliquem só os conceitos rapidamente, mas aí falta profundidade e, no fim, muitas vezes eu desisto no meio. Acho que a motivação de estar realmente matriculado em uma universidade é importante. Será que alguém aqui já conseguiu terminar sozinho um curso desses até o fim? Queria saber como vocês mantêm constância e autodisciplina. Em plataformas de cursos como Coursera e KhanAcademy, há um certo nível de cobrança por causa de prazos e coisas do tipo, então é mais fácil manter a motivação. Acho que estou acostumado a estudar com base em deadlines. Se alguém procura aulas curtas por falta de concentração (embora possam ter menos profundidade), recomendo dar uma olhada na playlist do Professor Dave Explains no YouTube

    • Eu gosto de matemática, fui até o doutorado e até que tenho uma boa capacidade de me organizar, mas no começo não foi fácil estudar só com videoaulas. Sinto que é preciso atingir um certo limiar de conhecimento básico antes de conseguir aprender de forma autodirigida com aulas em vídeo. Acho que elementos importantes são participar de um programa junto com colegas e, acima de tudo, ter um mentor experiente. Na minha visão, é difícil chegar ao ponto de estudar matemática sozinho sem um mentor. É essencial ter alguém para corrigir seus erros e orientar o caminho. É como um professor de piano. Outra coisa importante é o tempo investido. Se você realmente quer ter fluência em álgebra linear, análise, cálculo etc., precisa investir mais de 10 horas por semana durante um ano. Se investir só 2 horas, vai acabar com uma compreensão superficial e rasa

    • Sobre a pergunta se a fonte de motivação vem de estar de fato matriculado em uma universidade, acho que na maioria dos casos o fator é o prêmio salarial obtido depois de se formar. Ao contrário de um aluno real do MIT, fazer só o curso online não te aproxima de um diploma do MIT, então a motivação é mais fraca. Se você está acostumado a estudar com prazos, uma alternativa é impor penalidades a si mesmo ou fazer um compromisso com alguém, de modo que você tenha de pagar um custo se não terminar. Eu mesmo já consegui terminar cursos e livros por conta própria, e minha motivação foi pura curiosidade, além de eu não gostar de admitir que não sei algo nem de agir como se soubesse quando não sei

    • Na universidade, a época em que eu fazia disciplinas avançadas de CS com professores e colegas foi a fase mais divertida da minha vida. Depois de me formar, com o trabalho puxando para todo lado, e agora sem correção de tarefas, provas e perguntas e respostas com professores, aprender coisas novas ficou muito mais difícil. Estou pensando em me matricular em uma universidade online por diversão, mas queria saber se existe algum programa que seja online e barato, ofereça disciplinas avançadas de CS/ML e permita uma interação de verdade com professores. Se alguém tiver sugestões, agradeço

    • Este curso ajudou muito no meu projeto atual (um visualizador de G-code e sistema de modelagem 3D para OpenPythonSCAD). Materiais adicionais que recomendo são SICP(Structure and Interpretation of Computer Programs), Euclid's Elements online, Motion Mountain, além de LibriVox e Project Gutenberg. Também tenho lembranças de infância de conseguir livros e ler por vários canais diferentes, como uma pequena estante no interior, a torre de livros da prisão e uma loja de departamento da cidade vizinha a 26 milhas de distância

    • Enquanto acompanhava as aulas, foi difícil terminar uma aula inteira de uma vez porque me faltava treino e prática em matemática. Para reforçar o básico, eu buscava explicações em outros sites e ouvia cada aula dividida ao longo de vários dias (ou semanas). O importante é ajustar as expectativas. É preciso parar para pensar com calma nos pontos em que você trava, ou simplesmente esperar até que aquilo se torne familiar com o tempo. Eu anotava em um arquivo de texto simples ou no papel o que tinha entendido e o que ainda não sabia, e, mantendo isso por alguns meses, em algum momento o caminho começa a aparecer

  • A lista de tópicos das aulas pode ser vista na página do MIT OCW, e as notas de aula são fornecidas aqui. Não conheço bem o curso como um todo, mas o último módulo, 'Large Deviations', tem algo de peculiar. Pessoalmente, gostei da aula sobre 'State machines', que introduz o conceito de invariante com exemplos mais intuitivos, como o quebra-cabeça de 15 peças, em vez de exemplos com variáveis booleanas. O livro-texto (PDF) está aqui. Os problemas reais também são bastante práticos. Por exemplo, em vez de uma álgebra booleana seca, trata-se de formalizar as condições em que um sistema de arquivos fica travado

    • A aula de 'Large Deviations' é sobre um tema interessante, mas as notas de aula não chegam a definir o que são grandes desvios. Aparece um exemplo de limite de Chernoff (exponencial) para a soma de variáveis aleatórias IID, mas o termo grandes desvios não é usado diretamente, o que foi um pouco decepcionante. Limites desse tipo aparecem com frequência em ciência da computação, especialmente na teoria do aprendizado mais recente

    • Parece que cada unidade é independente das outras. Ou seja, será que tanto faz em que ordem estudar? Pergunto porque coisas como set theory (teoria dos conjuntos) parecem ser a base matemática

  • Gostaria de saber se alguém já conseguiu mudar de carreira usando OpenCourseware. Acho que a era dos MOOCs, diferente da propaganda, acabou sendo mais adequada para pessoas já bem escolarizadas, autodidatas ou para quem estuda por hobby. Não estou criticando; eu mesmo estou estudando computação quântica entre o trabalho e as tarefas domésticas, mas desse jeito parece que só vou alcançar o ritmo depois de algumas dezenas de anos

  • Tenho uma certa resistência a nomes de curso como 'Mathematics for Computer Science'. Sempre considerei ciência da computação um ramo da matemática

    • Em teoria eu concordo, mas na indústria real não há tanta necessidade de engenheiros de software quanto de formados em matemática, e quase ninguém entra em CS por interesse matemático. Por isso, o currículo de CS também é prático. O foco está em algoritmos principais, estruturas de dados, como programar em Python etc., ou seja, no que é necessário para entrar em big tech

    • Não haveria nada de estranho se cada subárea da matemática tivesse um curso chamado 'Mathematics for [subárea específica]'. Nunca dei nome a um curso, mas em termos de conteúdo isso é parecido com outras disciplinas do tipo 'Intro to'

  • Estou pensando em formalizar este curso em Lean. Ainda não sei quão difícil será, mas, se alguém tiver interesse, seria legal colaborar no repositório no github

    • Isso combina muito bem com os objetivos da iniciativa CSLib. No momento, o único link relacionado é este post no LinkedIn

    • Fiquei curioso sobre o que se ganha com esse trabalho

  • Seria bom se também houvesse um livro de soluções/comentários dos exercícios. Fico pensando como eu deveria verificar minhas respostas

    • Dá para usar LLMs para obter algum tipo de orientação. Ou então tentar conseguir respostas no MathExchange
  • Os vídeos das aulas podem ser vistos no MIT OCW e na playlist no YouTube

  • Eu queria saber onde encontrar comentários/soluções para os problemas deste curso

  • Os temas das aulas são interessantes, mas acho que pouca coisa aí é realmente necessária para um engenheiro de software comum. Quando comecei a programar, percebi como o conteúdo matemático usado no trabalho do dia a dia é surpreendentemente pequeno. Claro, essas aulas do MIT são para cientistas da computação, não para engenheiros de software. Nas universidades americanas, essa distinção é bem marcada

    • Se você mexe nem que seja um pouco com física ou robótica, isso já não se sustenta. Sem matemática você não entende nada

    • Eu já trabalhei como engenheiro de software tanto tendo conhecimento de matemática quanto sem ele, e minha contribuição e eficácia eram completamente diferentes nos dois casos

    • O primeiro tema é 'Predicates, Sets, and Proofs', e eu também uso predicados e conjuntos com frequência na programação do dia a dia

    • O fato de eu não usar não significa que os outros não usem. Engenharia de software não se sustenta sem ciência da computação

    • Mesmo sem conhecer tudo em profundidade, acho que a compreensão conceitual é essencial para escrever programas corretos de acordo com a especificação. O ser humano consegue resolver problemas algorítmicos de forma ad-hoc por instinto, mas a matemática dá estrutura e rigor ao modo de pensar, além de permitir sistematizar o problema e tornar o processo de solução mais mecânico. Só de conhecer teoria dos conjuntos, lógica e álgebra relacional já se entende muito melhor a ligação entre programação e matemática. Recomendo os livros Introductory Logic and Sets for Computer Scientists (de Nimal Nissanke) e Understanding Formal Methods (de Jean-Francois Monin)

  • Espera aí... CS originalmente é um diploma de matemática. Esse título soa como matemática para matemática