Oficina de Computação – Licenciatura em Computação UFPR – 2014

Objetivo:  Prática e aprendizagem de programação (resolução de problemas por meio de recursos computacionais)

 

Estratégia de ensino:

  •      Aulas teóricas
    • Baseada em exemplos de problemas e soluções
    • Foco na abstração e detalhamento da solução
    • Aprender observando e dando ideias
  •      Atividades práticas:
    • Exercícios em laboratório
    • Coding Dojo
    • Pair programming
    • Trabalho

Conteúdo:

Oficina de Computação – Ementa

Material de estudo (1º bimestre):

Material do Prof. Marco Aurelio Barbosa (UEM):

  1. Introdução:  Notas de aulaexercícios
  2. Fundamentos: Notas de aula, exemplos, exercícios
  3. Dados compostos: Notas de aula, exemplos, exercícios
  4. Naturais: Notas de aula, exemplos, exercícios
  5. Composição de templates: Notas de aula, exemplos, exercícios
  6. Funções: Notas de aula, exemplos, exercícios
  7. Acumuladores: Notas de aula, exemplos, exercícios
  8. Sequências e streams: Notas de aula, exemplos, exercícios

Livro How to Design Programs – 2ed

Livro Structure and Interpretation of Computer Programs

Programação Funcional – Wikipedia

Curso “Systematic Programming Design”: YouTube, Coursera (requer inscrição – grátis)

Introdução Rápida ao Racket

Racket Documentation

 

Material de estudo (2º bimestre):

Curso online grátis: Intro to Computer Science

Curso online grátis: Python para zumbis

Curso online grátis: Python (codeacademy)

Livro: Use a Cabeça: Programação

DocumentacaoPython

Como Pensar Como um Cientista da Computação: Edição interativa (usando Python 3.x)

Apostila: Como Pensar como um Cientista da Computação usando Python

 

Quick help:

 

1ª Aula (18/08): Introdução e Fundamentos

2ª Aula (19/08): Introdução e Fundamentos, Exemplos: conhecendo a linguagem BST (Beginner Student Language) / Racket

Exemplos: Exemplo Tabuleiro de XadrezExemplo Cena de Pouso Inicial

3ª e 4ª Aula (25/08 e 26/08): Revisão dos principais conceitos da linguagem, receita “Como Projetar Funções” , Como Projetar Dados e exemplos

5ª e 6ª Aula (01/09 e 02/09): Exercícios em sala, revisão do projeto sistemático de programas (Como Projetar Funções e Como Projetar Dados)

Exemplos: Exemplo Figura Alta, Exemplo Inclinação Trilha

7ª e 8ª Aula (08/09 e 09/09): Como Projetar Mundos – Programas Interativos, Coding Dojo – Primeiras sessões

9ª, 10ª e 11ª Aulas (15/09 e 16/09): Dados compostos, Mundos com dados compostos

Exemplos: Exemplo Filmes Inicial, Exemplo Vaca Inicial

12ª Aula (22/09): Refatoração

Exemplos: Exemplo Vaca

Exercícios (PARA ENTREGAR ATÉ TERÇA 30/09!!)

Links: Atribuição e estado local (Capítulo Livro de Scheme)

13ª e 14ª Aulas (29/09 e 30/09): Prática em sala de aula e desenvolvimento

Exemplos: Exemplo Vaca

Função Próxima Vaca (eixos X e Y)

Imagem Chupacabra

15ª e 16ª Aulas (06/10 e 07/10): Desenvolvimento. Dados compostos.

Exemplos: Exemplo Vaca

17ª e 18ª Aulas (13/10 e 14/10): Listas  e recursão

Exemplos: Exemplo Vaca

Listas e recursão

Templates (atualizado com template para funções sobre listas)

19ª e 20ª Aulas (20/10 e 21/10): Listas, helpers e controle de versão com Git

Exemplos:

Exemplo Vaca (Advanced Student Language – AST)

Exemplo Vaca (Racket Language)

Links:

Fazendo fork em um repositório no GitHub

21ª a 23ª Aulas (28/10, 03/11): Exemplos finais e desenvolvimento do trabalho do 1º bimestre

Exemplos:

Exemplo Vaca (Advanced Student Language – AST)

22ª Aula (10/11): Criando números naturais com listas e recursão, dicas para aprender mais sobre programação funcional

Exemplo: Números naturais

Links:

Continue aprendendo Racket/Scheme/Lisp/Clojure:

Por que aprender Lisp/Scheme/Racket/Clojure?

Escolhendo um Lisp: do Clojure ao Racket

Programando para Android com Racket

Introdução ao Racket no Coding Dojo Rio

Posts sobre Racket por Rodolfo Carvalho

Monografia sobre Racket e HtDP para ensino de algoritmos

Comunidade Racket

Material do Prof. Marco Aurelio Barbosa (UEM):

  1. Introdução:  Notas de aulaexercícios  (visto em sala de aula)
  2. Fundamentos: Notas de aula, exemplos, exercícios (visto em sala de aula)
  3. Dados compostos: Notas de aula, exemplos, exercícios (visto em sala de aula)
  4. Naturais: Notas de aula, exemplos, exercícios (visto em sala de aula)
  5. Composição de templates: Notas de aula, exemplos, exercícios (visto parcialmente em aula)
  6. Funções: Notas de aula, exemplos, exercícios (visto parcialmente em aula)
  7. Acumuladores: Notas de aula, exemplos, exercícios (visto parcialmente em aula)
  8. Sequências e streams: Notas de aula, exemplos, exercícios (não visto em aula, recomendado!!)

Introduction to Systematic Program Design – Part 1: Coursera, YouTube

Livro How to Design Programs – 2ed

Livro Structure and Interpretation of Computer Programs

Livro Land of Lisp (com direito a trailer do livro)

Outras Linguagens Funcionais para se divertir:

Scala: Curso no Coursera, Site Oficial

Clojure: Aprenda em Y minutos

Haskell: Haskell em 10 minutos, ¡Aprende Haskell por el bien de todos!

 

23ª Aula (11/11): Introdução à programação em Python

Links:

IDE LiClipse

Curso online grátis: Intro to Computer Science

Curso online grátis: Python para zumbis

Curso online grátis: Python (codeacademy)

Livro: Use a Cabeça: Programação

Aprenda Computação com Python

DocumentacaoPython

Como Pensar Como um Cientista da Computação: Edição interativa (usando Python 3.x)

Apostila: Como Pensar como um Cientista da Computação usando Python

 

Exemplos:

Exemplos somatório e soma em listas

Regras: Valores das Mãos de Poker

 24ª e 25ª Aulas (17/11 e 18/11): Começando projeto em Python, controle de versão e repositório remoto, Eclipse/LicClipse e PyDev

Instruções para Fork do projeto poker-python e configuração do ambiente

 

Quick help:

 

Links

 

Citações sobre Programação

Incentivo ao aprendizado de novas linguagens de programação

Outros

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s