MC102 - Algoritmos e Programação de Computadores
Essa página contém links para slides e vídeos de MC102 - Algoritmos e Programação de Computadores.
Os slides sofrem alterações com o passar do tempo e o link é sempre para a versão mais recente. Assim, os slides mostrados nos vídeos podem não condizer com os slides atuais. Além disso, dependendo do semestre, a ordem de algumas aulas pode mudar em relação a ordem dos vídeos no YouTube. O site será mantido na ordem que as aulas serão ensinadas no respectivo semestre.
Também há alguns problemas do CodeForces para treinar o conteúdo. Os problemas marcados com uma ou mais ⭐ são mais interessantes do que os outros… Porém, mais interessante não necessariamente significa mais difícil.
Correções nos links e sugestões de outros conteúdos, principalmente problemas do CodeForces, são mais que bem-vindas!
Indíce
- Aulas
- Unidade 01 - Sobre a Disciplina
- Unidade 02 - História da Computação
- Unidade 03 - Introdução
- Unidade 04 - Variáveis
- Unidade 05 - Condicionais
- Unidade 06 - Repetição
- Unidade 07 - Funções
- Unidade 08 - Código Bom
- Unidade 09 - Listas e Strings
- Unidade 10 - Dicionários e Conjuntos
- Unidade 11 - Matrizes e Objetos Multidimensionais
- Unidade 12 - Combinando e Usando Estruturas de Dados
- Unidade 13 - Classes e Objetos
- Unidade 14 - Arquivos
- Unidade 15 - Algoritmos de Busca e Ordenação
- Unidade 16 - Recursão
- Unidade 17 - Algoritmos Recursivos de Ordenação
- Guias de Instalação do Python
- Ambientes de Desenvolvimento
- Sugestão de Extensões para o Visual Studio Code
- Sugestão de Canais de YouTube
- Outros cursos
- Programação Competitiva
Aulas
Unidade 01 - Sobre a Disciplina
Unidade 02 - História da Computação
Unidade 03 - Introdução
Unidade 04 - Variáveis
- Slides (handout)
- Vídeo (2021)
- Exercícios resolvidos em aula
- Why Computers are Bad at Algebra - Infinite Series
Unidade 05 - Condicionais
- Slides (handout)
- Vídeo (2021): Parte 1, Parte 2
- Exercícios resolvidos em aula: Parte 1, Parte 2
- Inline If in Python: The Ternary Operator in Python
- Problemas sugeridos no CodeForces: ⭐⭐ 318/A, ⭐ 479/A, ⭐ 4/A, ⭐ 50/A, 1/A, 546/A, 617/A, 228/A, 581/A
Unidade 06 - Repetição
- Slides (handout)
- Lista de Exercícios
- Vídeo (2021): Parte 1, Parte 2, Parte 3
- Exercícios resolvidos em aula: Parte 1, Parte 2
- Python “while” Loops (Indefinite Iteration)
- Python “for” Loops (Definite Iteration)
- Python break and continue
- Problemas sugeridos no CodeForces: ⭐⭐ 158/B, ⭐ 158/A, ⭐ 263/A (Você consegue fazer sem usar matrizes?), ⭐ 96/A, ⭐ 977/A, ⭐ 110/A, ⭐ 122/A, ⭐ 344/A, ⭐ 580/A, ⭐ 1328/A, ⭐ 268/A, ⭐ 996/A, 1335/A, 791/A, 231/A, 69/A, 116/A, 271/A, 677/A, 467/A, 136/A, 1030/A, 486/A, 200/B, 469/A, 148/A,
Unidade 07 - Funções
- Slides (handout)
- Exercícios resolvidos em aula: Parte 1, Parte 2, Parte 3
- Lista de Exercícios
- Vídeo (2021): Parte 1, Parte 2, Parte 3, Parte 4
- Positional-only and keyword-only arguments in Python
- You should put this in all your Python scripts
- Defining Your Own Python Function
- map
- reduce
- filter
Unidade 08 - Código Bom
Unidade 09 - Listas e Strings
- Slides (handout)
- Exercícios resolvidos em aula: Parte 1, Parte 2
- Lista de Exercícios
- Vídeo (2021): Parte 1, Parte 2
- Python f-strings can do more than you thought
- Lists and Tuples in Python
- Strings and Character Data in Python
- Problemas sugeridos no CodeForces: ⭐ 266/A (o output do segundo teste deveria ser 3 não 4), ⭐ 112/A, ⭐ 59/A, ⭐ 58/A, ⭐ 41/A, ⭐ 208/A, ⭐ 443/A, 734/A, 133/A, 71/A, 282/A, 118/A, 281/A, 61/A, 705/A, 131/A, 25/A, 520/A
Unidade 10 - Dicionários e Conjuntos
- Slides (handout)
- Exercícios resolvidos em aula
- Lista de Exercícios
- Vídeo (2021): Parte 1, Parte 2
- Dictionaries in Python
- Sets in Python
Unidade 11 - Matrizes e Objetos Multidimensionais
Unidade 12 - Combinando e Usando Estruturas de Dados
- Slides (handout)
- Lista de Exercícios
- Exercícios resolvidos em aula
- Vídeo (2021)
- Documentação: função zip, função enumerate, biblioteca itertools
- Geeks for Geeks - Python Itertools
- Lists and Tuples in Python
- Working With JSON Data in Python
Unidade 13 - Classes e Objetos
- Slides (handout)
- Lista de Exercícios
- Exercícios resolvidos em aula
- Vídeo (2021)
- Python dataclasses will save you HOURS, also featuring attrs
- Python staticmethod and classmethod
- Magic Methods - Making Python builtins work with your classes
- Object-Oriented Programming (OOP) in Python 3
- Data Classes in Python 3.7+ (Guide)
Unidade 14 - Arquivos
- Slides (handout)
- Exercícios resolvidos em aula
- Vídeo (2021): Parte 1, Parte 2
- Working With Files in Python
Unidade 15 - Algoritmos de Busca e Ordenação
- Slides (handout)
- Vídeo (2021): Parte 1, Parte 2
- Exercícios resolvidos em aula
- Binary Search - A Different Perspective
- Sorting Algorithms in Python
- How to Do a Binary Search in Python
Unidade 16 - Recursão
- Slides (handout)
- Vídeo (2021): Parte 1, Parte 2, Parte 3
- Exercícios resolvidos em aula
- Recursion in Python: An Introduction
Unidade 17 - Algoritmos Recursivos de Ordenação
- Slides (handout)
- Vídeo (2021)
- Sorting Algorithms in Python
- Problemas sugeridos no CodeForces: 339/A, ⭐ 144/A
Guias de Instalação do Python
Ambientes de Desenvolvimento
- Visual Studio Code RECOMENDADO!!!
- PyCharm
- REPL: Python no Navegador
- Cloud Shell Editor
Sugestão de Extensões para o Visual Studio Code
Estas são algumas extensões que acredito que sejam úteis para quem está programando em Python ou que melhoram o uso do Visual Studio Code.
Básico:
Outras extensões para Python:
Formas de ver a execução do código em Python:
Melhoras de forma geral para o VS Code:
Tema:
Sugestão de Canais de YouTube
Outros cursos
- learnpython.org
- Python Tutorial for Beginners: Learn Programming Basics
- Python Programming Examples
- The Python Tutorial