Tecnicas Computacionais

De Pontão Nós Digitais
Revisão de 12h48min de 9 de abril de 2019 por V1z (discussão | contribs) (→‎Tarefas)
Ir para navegaçãoIr para pesquisar

Esta é a pagina principal de um curso de tecnicas computacionais sendo ministrado em 2019 no IPRJ/UERJ, de utilidade geral para a formacao de programadores de nivel intermediario e avancado, principalmente nos campos de computacao cientifica e multimidia (jogos, simuladores,etc). Trata-se de uma disciplina de nivelamento. Disciplinas mais avancadas sao tratadas em PP.

Hacking-keyboard.gif

Informacoes Gerais

  • Instrutor: prof. Ricardo Fabbri
  • Periodo: 1o. Semestre de 2019, voltado ao 1o. periodo do Mestrado em Modelagem Computacional - Capes 6
  • Horario: Tercas e Quintas, 9:40-11:30am, sala 206. Reposicao: 29Abr19, 6Mai19, 20Mai19, todos M3-M6 (8:50-12:20) sala 110
  • Lista de emails: iprj-tc-2019@googlegroups.com

Pre-requisitos

  • Teorico: Nenhum. Familiaridade com programacao sera assumida. Porem, trata-se de um curso intensivo.
  • Pratico: Linux devera ser instalado no computador do aluno. Ajuda devera ser procurada com o professor.

Conteudo aproximado

Recursos Principais

Bibliografia

Principal livro texto K&R

Livros Principais

Outros Livros

Top Coder

Aulas

Os seguintes videos sao versoes resumidas do conteudo tratado em aula e nao substituem as aulas.

Provas

  • P1: 23Mai19
  • P2: 11Jul19

Recursos adicionais

Tarefas

Somente serao aceitos arquivos eletronicos no formato PDF

Todo material submetido eletronicamente deve ser enviado ao email do professor, com a string "[iprj-tc]" no subject do email. Voce devera receber uma confirmacao automatica.

A cada data de entrega (exceto a primeira tarefa) ate 3 alunos serao sorteados para apresentar.


Tarefa 1: Entrega dia 4/Abril/2019

  • K&R 1-1, 1-4, 1-5 (se conseguir Tarefa 2 completa, ganha 10 nesta sem precisar fazer)

Tarefa 2: Entrega dia 9/Abril/2019

  • K&R 1-13 (horizontal), 1-13 (vertical)

Tarefa 3: Entrega dia 11/Abril/2019

  • K&R 1-17, 1-19

Tarefa 4: Entrega dia 16/Abril/2019

  • K&R 1-20, 1-21, 1-23 (se fizer apenas 1-23 ja ganha 10).

Tarefa 5: Inversao de matrizes, Entrega dia 25/Abril/2019

  • Dada uma matriz nxn, com n <= 4, calcule sua inversa de forma explicita
  • Bonus: utilize uma biblioteca e compare a velocidade com seu proprio codigo

Simulado presencial: 30/Abril/2019

  • Dois dos exercicios das tarefas 1-4
  • Em laboratorio (nao usando computador do aluno)

Trabalho: Parte 1 valendo bonus, dia 2/Maio/2019, Parte2 completo 7/Maio/2019

  • Dado um labirinto na forma de uma matriz, onde os caminhos sao formados por espaco ' ',

e as paredes do labirindo sao formadas pela letra 'a' ou '8' conforme abaixo, e dada uma entrada e uma saida marcadas por espaco ' ' ou na parede de cima do labirinto, ou na parede de baixo, resolva o labirinto ou retorne 0 caso nao exista um caminho. Note que tanto as paredes ou os caminhos podem ter largura maior que 1 caractere.

  • A parte 2 do trabalho valera nota e devera ser entregue 1 semana apos a parte 1. A parte 1 eh apenas bonus para incentivar o aluno a resolver o problema com ideias proprias.
  • Sera dado um grande bonus.
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   a
   8   8               8               8           8                   8   8
   8   8   aaaaaaaaa   8   aaaaa   aaaa8aaaa   aaaa8   aaaaa   aaaaa   8   8
   8               8       8   8           8           8   8   8       8   8
   8aaaaaaaa   a   8aaaaaaa8   8aaaaaaaa   8aaaa   a   8   8   8aaaaaaa8   8
   8       8   8               8           8   8   8   8   8           8   8
   8   a   8aaa8aaaaaaaa   a   8   aaaaaaaa8   8aaa8   8   8aaaaaaaa   8   8
   8   8               8   8   8       8           8           8       8   8
   8   8aaaaaaaaaaaa   8aaa8   8aaaa   8   aaaaa   8aaaaaaaa   8   aaaa8   8
   8           8       8   8       8   8       8           8   8           8
   8   aaaaa   8aaaa   8   8aaaa   8   8aaaaaaa8   a   a   8   8aaaaaaaaaaa8
   8       8       8   8   8       8       8       8   8   8       8       8
   8aaaaaaa8aaaa   8   8   8   aaaa8aaaa   8   aaaa8   8   8aaaa   8aaaa   8
   8           8   8           8       8   8       8   8       8           8
   8   aaaaa   8   8aaaaaaaa   8aaaa   8   8aaaa   8aaa8   aaaa8aaaaaaaa   8
   8   8       8           8           8       8   8   8               8   8
   8   8   aaaa8aaaa   a   8aaaa   aaaa8aaaa   8   8   8aaaaaaaaaaaa   8   8
   8   8           8   8   8   8   8           8               8   8       8
   8   8aaaaaaaa   8   8   8   8aaa8   8aaaaaaa8   aaaaaaaaa   8   8aaaaaaa8
   8   8       8   8   8           8           8   8       8               8
   8   8   aaaa8   8aaa8   aaaaa   8aaaaaaaa   8aaa8   a   8aaaaaaaa   a   8
   8   8                   8           8               8               8   8
   8   8aaaaaaaaaaaaaaaaaaa8aaaaaaaaaaa8aaaaaaaaaaaaaaa8aaaaaaaaaaaaaaa8aaa8

Outras tarefas (ainda nao agendadas)

Tarefa - Busca Binaria

  • Implementar busca binaria de um vetor ordenado de floats
  • Utilizar apenas linguagem C e sua propria implementacao
  • Bonus: implementar em C++ usando a biblioteca padrao

Tarefa - Ordenacao

  • Implementar o mergesort, o quicksort e o insertion sort
  • Plotar grafico do tempo de execucao minimo, maximo, e medio para diferentes tamanhos de entradas aleatoreas

Bonus

Bonus FriScience

Bonus Vim/Emacs

  • Aluno que aprender ou ja souber editores de programador Vim/Emacs
  • Aluno que entregar tarefas em Latex.

Criterio de Avaliacao

 M_p = (P1 + P2)/2   
 M = 0.7*M_p + 0.3*T

Palavras-Chave

Programacao, Computacao Cientifica, Linguagem C, Algoritmos e Estruturas de Dados para Pos Graduacao