Skip to content

oseasandrepro/Topicos-De-Programacao-USP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Tópicos de Programação(Técnicas Sistemáticas de Desenvolvimento de Programas).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published