Introdução à Computação – 2022.1
- disciplina
- introdução á computação
- professor
- Alexandre Rademaker
- carga horária
- 90h
- pré-requisito
- não há
- sala
- online
Ementa
Este curso é uma introdução aos desafios intelectuais da ciência da computação e à arte da programação. Este curso ensina os alunos a pensar algoritmicamente e implementar códigos para resolver problemas de forma eficiente. Os tópicos incluem abstração, algoritmos, estruturas de dados, encapsulamento, gerenciamento de recursos, engenharia de software e programação web. As linguagens incluem C, Python e SQL, além de HTML, CSS e JavaScript.
Objetivos da disciplina
- Uma compreensão ampla e robusta de ciência da computação e programação
- Como pensar algoritmicamente e resolver problemas de programação de forma eficiente
- Conceitos como abstração, algoritmos, estruturas de dados, encapsulamento, gerenciamento de recursos, engenharia de software e desenvolvimento web, SO, controle versão, edição de textos científicos etc.
- Familiaridade em várias linguagens, incluindo C, Python, JavaScript, além de SQL, CSS e HTML, LaTeX etc.
- Como se envolver com uma comunidade com ideias semelhantes de todos os níveis de experiência.
- Como desenvolver e apresentar um projeto final de programação para seus colegas.
Procedimentos de ensino
Duas aulas expositivas por semana e uma aula prática.
Conteúdo programático detalhado
Datas | Tópico | Atividades | W |
---|---|---|---|
7,9,11/2 | Introdução ao curso e conceitos iniciais | Apresentação e Laboratório | 0 |
14,16,18/2 | Introdução linguagem C | Apresentação e Laboratório | 1 |
21,23,25/2 | Introdução linguagem C | Apresentação e Laboratório | 1 |
7,9,11/3 | Arrays | Apresentação e Laboratório | 2 |
14,16,18/3 | Algoritmos | Apresentação e Laboratório | 3 |
21,23,25/3 | Memória | Apresentação e Laboratório | |
28,30/1/4 | Estruturas de dados | Apresentação e Laboratório | |
13/4 | Python | Apresentação e Laboratório | |
18,20/4 | Python, SQL | Apresentação e Laboratório | |
25,27,29/4 | HTML, CSS, JavaScript | Apresentação e Laboratório | |
2,4,6/5 | Flask | Apresentação e Laboratório | |
9,11,13/5 | Linguagens funcionais: Haskell | Apresentação e Laboratório | |
16,18,20/5 | Linguagens funcionais: Racket | Apresentação e Laboratório | |
23,25,27/5 | Provando correção: Lean | Apresentação e Laboratório | |
30,1,3/6 | Apresentação de projetos | Apresentação e Laboratório | |
6/6 | Conclusion | Apresentações |
Procedimentos de avaliação
Avaliação será feira por trabalhos em grupo semanais.
Bibliografia Obrigatória
- Luís Damas, Linguagem C, 10ª edição https://integrada.minhabiblioteca.com.br/books/9788521632474
- André Backes, Linguagem C - Completa e Descomplicada https://integrada.minhabiblioteca.com.br/books/9788595152090
- Introdução a Estruturas de Dados - Com Técnicas de Programação em C https://www.amazon.com.br/Introdução-Estruturas-Dados-Waldemar-Celes/dp/8535283455
- Haskell programming from the first principles https://haskellbook.com
- Learn you Haskell for Great Good! http://learnyouahaskell.com/chapters
- The not so Short Introduction to LaTeX https://ctan.org/tex-archive/info/lshort/english/?lang=en
Bibliografia Complementar
- Practical C Programming https://www.amazon.com/Practical-Programming-Does-Nutshell-Handbooks/dp/1565923065
- Programming in C, Fourth Edition, Stephen G. Kochan, Pearson Education, 2015, ISBN 0-321-77641-0 https://pt.wikibooks.org/wiki/Programar_em_C
- https://en.wikibooks.org/wiki/C_Programming
Projetos
- contribuir resolvendo algum bug ou adicionando alguma funcionalidade em códigos open-source ja existentes no GitHub.
- novo projeto, tem que ser algo inétido, não pode ser copiar algo
da internet…
- https://github.com/LR-POR/MorphoBr e interface web para consulta dos dados.
- http://openwordnet-pt.org modernização interface; integração com MorphoBr
- Uma interface web para visualização das provas da OAB e respostas geradas pelo sistema que fizemos em http://arademaker.github.io/bibliography/jurix-2017.html
Minicurrículo do(s) Professor(s)
Alexandre é professor adjunto na Escola de Matemática Aplicada da Fundação Getulio Vargas (EMAp / FGV) e também Pesquisador no laboratório da IBM no Brasil (IBM Research Brazil Lab), no passado, foi também professor na PUC-Rio Graduou-se na UFRJ em Computação, fez o mestrado na UFF com especialização de métodos formais e sistemas distribuídos e doutorado na PUC em computação, Lógica Matemática. Durante seu Ph.D., Alexandre estagiou na Microsoft Research e no SRI International. Com mais de 100 publicações em eventos e periódicos nacionais e internacionais, atua nas áreas de pesquisa de: lógica, representação do conhecimento, raciocínio, linguística computacional e NLP, programação funcional e lógica.
Links Interessantes
Ferramentas
- http://docker.com
- https://code.visualstudio.com
- https://www.python.org
- http://haskell.org
- http://racket-lang.org
- http://leanprover.github.io