https://github.com/oseasandrepro/topicos-de-programacao-usp
Tópicos de Programação(Técnicas Sistemáticas de Desenvolvimento de Programas).
https://github.com/oseasandrepro/topicos-de-programacao-usp
algorithm algorithms algorithms-and-data-structures c c-language graph python3
Last synced: 8 months ago
JSON representation
Tópicos de Programação(Técnicas Sistemáticas de Desenvolvimento de Programas).
- Host: GitHub
- URL: https://github.com/oseasandrepro/topicos-de-programacao-usp
- Owner: oseasandrepro
- Created: 2025-02-12T21:39:32.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-02-13T02:37:21.000Z (10 months ago)
- Last Synced: 2025-02-13T03:27:23.964Z (10 months ago)
- Topics: algorithm, algorithms, algorithms-and-data-structures, c, c-language, graph, python3
- Language: C
- Homepage:
- Size: 29.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Registros de Aulas: Curso **"Tópicos de Programação"**
Bem-vindo ao repositório criado para acompanhar as aulas e registrar os exercícios desenvolvidos durante o curso **"Tópicos de Programação"**(Técnicas Sistemáticas de Desenvolvimento de Programas).
### Descrição
O curso aborda técnicas sistemáticas para o desenvolvimento de programas, focando nos seguintes tópicos:
- Complexidade de algoritmos.
- Introdução a finitude e corretude de algoritmos
- Algoritmos recursivos.
- Fundamentos de Estruturas de Dados.
- Algoritmos de busca (busca linear e binária).
- Algoritmos de ordenação.(selectionsort, insertionsort, bubblesort, mergesort)
- Arvores
- Introdução a teoria dos Grafos
- Algoritmos em Grafos
- Computação Quântica - Uma Breve Introdução
### Requisitos
- Primeiro ano completo de graduação em Ciências Exatas.
- Conclusão de um curso de **Introdução à Programação**.
- Conhecimento de uma linguagem de programação estruturada (**C**, **Java** ou **Python**).
### Público-Alvo
- Estudantes interessados em pós-graduação em **Ciência da Computação**.
- Alunos ou programadores que desejam aprofundar seus conhecimentos em algoritmos e técnicas de programação.
### Detalhes
- **Carga Horária**: 60 horas
- **Horário**: Segunda a Sexta-feira, das 19:00 às 21:00
- **Período do Curso**: 06/01/2025 a 14/02/2025
---
## Estrutura do Repositório
Este repositório será utilizado para armazenar os exercícios e códigos desenvolvidos ao longo do curso. A estrutura inicial está organizada da seguinte forma:
```
/curso_algoritmos
├── README.md
├── 01-Semana
│ ├── Introducao
│ ├── Nocoes de complexidade
| ├── Provas-matematicas
│ └── exercios
├── 02-Semana
│ ├── Sobre Invariantes
│ ├── Sobre Finitude e Corretude de Algoritimos
| ├── Algoritimos de busca sequencial versus binária
| ├── Ordenação por inserção - finitude, corretude e complexidade
| ├── Fundamentos de Estruturas de Dados Parte 1(apartir do slide 9)
| ├── Fundamentos de Estruturas de Dados Parte 2 - Listas Encadeadas
| ├── Fundamentos de Estruturas de Dados Parte 3 - Listas Duplamente Encadeadas(a partir do slide 10)
| ├── Fundamentos de Estruturas de Dados Parte 4 - Pilhas e Filas
│ └── exercios
| └── Finitude-Corretude&Complexidade(artigo e testes das implementações)
├── 03-Semana
| ├── Prova-Primeira-Avaliacao
│ ├── Aulas 11 e 12 - Fundamentos de Estruturas de Dados Part 5 - Grafos(Slides 1 a 26)
│ ├── Aula 13 - Fundamentos de Estruturas de Dados Parte 6 - Grafos e Arvores(A partir da página 6, Seção 1.2)
| ├── Intro teoria dos Grafos
| ├── Busca em profundidade (“Depth First Search”, DFS)
| ├── Busca em Largura (“Breadth First Search”, BFS)
| ├── Passeios em árvores binárias, pré-ordem
| ├── Passeios em árvores binárias, in-ordem
| └── Passeios em árvores binárias, pás-ordem
|
├── 04-Semana
│ ├── Introducao-Recursividade
│ ├── Recursividade
│ ├── Resolucao de recorrências, Método da Árvore de Recursão
│ ├── Resolucao de recorrências, Teorema Mestre
│ ├── Resolucao de recorrências, Método da Subistituição
│ └── exercios
├── 05-Semana
│ ├── Arvores e formas de de percorrer uma árvore
| ├── Aula 19 - Algoritmos em Grafos - Árvore Geradora Mínima(A partir do slide 20.)
│ ├── Aula 20 e 21 - Algoritmos em Grafos - Caminhos Mínimos
| ├── Aula 22 - Sobre a Computação Quântica - Uma Breve Introdução
| ├── Caminho Euleriano
| ├── Caminho mínimo
| ├── Algoritmo de Dijkstra
| ├── Algoritmo de Bellman-Ford
| ├── Arvore geradora mínima
| ├── Algoritmo de Kruskal
| ├── Algoritmo de Prim
│ └── exercios
├── Livros Usados Para Consulta
│ ├── ALGORITHMS - ROBERT SEDGEWICK - 1983
│ ├── AN INTRODUCTION TO THE ANALYSIS OF ALGORITHMS - Robert Sedgewick, Philippe Flajolet - 1946
└── Projetos
```
---
## Ferramentas e Linguagens
As linguagens utilizadas durante o curso serão **C**, **Java** ou **Python**. Para um melhor aproveitamento, recomendo as seguintes ferramentas:
- Compilador para **C** (GCC ou similar).
- Ambiente para **Java** (JDK 8 ou superior).
- Interpretador para **Python** (versão 3.8 ou superior).
- IDE ou editor de texto de sua preferência (Visual Studio Code, IntelliJ IDEA, PyCharm, etc..).
- Visualização de algoritmos e Estruturas de Dados(**VisualAlgo** https://visualgo.net/en).
---