An open API service indexing awesome lists of open source software.

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).

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).

---