Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andreainfufsm/elc117-2022b
ELC117 - Paradigmas de Programação - UFSM - 2022b
https://github.com/andreainfufsm/elc117-2022b
concurrent-programming education functional-programming java liascript-course logic-programming object-oriented-programming programming-paradigms
Last synced: about 2 months ago
JSON representation
ELC117 - Paradigmas de Programação - UFSM - 2022b
- Host: GitHub
- URL: https://github.com/andreainfufsm/elc117-2022b
- Owner: AndreaInfUFSM
- Created: 2022-09-14T14:57:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-04T13:55:30.000Z (almost 2 years ago)
- Last Synced: 2023-03-03T18:18:33.172Z (almost 2 years ago)
- Topics: concurrent-programming, education, functional-programming, java, liascript-course, logic-programming, object-oriented-programming, programming-paradigms
- Language: Java
- Homepage:
- Size: 1.41 MB
- Stars: 9
- Watchers: 1
- Forks: 19
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Universidade Federal de Santa Maria
Paradigmas de Programação
Segundo semestre de 2022
Desafie-se a explorar o maravilhoso mundo das linguagens de programação!
Sobre a disciplina
·
Aulas
·
Avaliações
·
Bibliografia
## Sobre a disciplina
- Professora: Andrea Schwertner Charão ([email protected])
- Horários: terças e quintas, das 10:30 às 12:30, sala 334
- [Ementa](https://www.ufsm.br/ementario/disciplinas/ELC117): informações institucionais sobre objetivos, programa e bibliografia.
- As aulas serão presenciais, com registro de frequência. Entre as aulas, usaremos Discord para comunicação síncrona/assíncrona por chat/áudio.
- Usaremos estratégias de aprendizagem ativa, incluindo dinâmicas/discussões, práticas com resolução de problemas e projetos colaborativos de programação, alternados com momentos expositivos sempre que necessário.
- Todo o material da disciplina será disponibilizado via GitHub e as entregas de exercícios e trabalhos também serão no GitHub.(início)
## Aulas
AulaDataDiaAssunto/Atividade
1
13/09/2022
Ter
- Apresentação do programa da disciplina e do plano de ensino.
- Dinâmica com post-its e "same but different".
2
15/09/2022
Qui
-
Visão geral dos paradigmas de programação:
conceitos e
resultados do questionário.
3
22/09/2022
Qui
-
Programação orientada a objetos (slides). -
Primeira prática com Java.
4
27/09/2022
Ter
-
Programação orientada a objetos: introdução, conceitos e exemplos de encapsulamento, classes, objetos, métodos, atributos, construtores (slides). -
Segunda prática com Java.
5
29/09/2022
Qui
-
Programação orientada a objetos: encapsulamento, classes, objetos, métodos, atributos, construtores. Classe ArrayList em Java. -
Terceira prática com Java. -
Veja mais: Associações entre classes.
6
04/10/2022
Ter
7
06/10/2022
Qui
-
Programação orientada a objetos: herança (slides). -
Quinta prática com Java.
8
11/10/2022
Ter
-
Quiz sobre POO em Java. -
Sexta prática com Java.
9
13/10/2022
Qui
10
18/10/2022
Ter
11
20/10/2022
Qui
-
Classes abstratas e interfaces em Java (slides). -
Missão (im)possível?.
12
25/10/2022
Ter
-
Formulário para coleta de sugestões de temas de trabalho. -
Formação dos grupos e definição do tema geral do trabalho de Programação Orientada a Objetos.
13
27/10/2022
Qui
-
Entrega das especificações de cada trabalho. -
Desenvolvimento do trabalho, criação de repositório e primeiros commits.
14
01/11/2022
Ter
- Programação concorrente (slides).
-
Concorrência em Java (slides). -
Prática de programação concorrente com Java. - Problemas de programação concorrente: sincronização (slides).
-
Prática de programação concorrente com Java. -
Veja também este texto sobre o brasileiro que criou a linguagem Elixir: https://community.revelo.com/de-mantenedor-rails-a-criador-da-linguagem-de-programacao-elixir/ (o que será que tem a ver com concorrência?) -
Feriado - Avaliação do projeto de orientação a objetos.
-
Produção individual personalizada - POO/Concorrente. - Última aula do ano! Prática: programação orientada a objetos com GUI e persistência de dados.
- Ano novo, novo paradigma: Programação Funcional! (dinâmica com perguntas e respostas)
- Resumo de motivação e características da programação funcional (slides)
- Introdução à linguagem Haskell (slides e prática)
- Programação funcional: funções de alta ordem e funções anônimas em Haskell (slides e prática)
- Programação funcional: geração de listas e list comprehension em Haskell (slides e prática)
- Trabalho de Programação funcional (orientações e starter code)
- Programação lógica com Prolog (slides)
- Apresentação de trabalhos individuais.
- Apresentação de trabalhos individuais. Ordem de apresentações com Repl.it
15
03/11/2022
Qui
-
08/11/2022
Ter
-
10/11/2022
Qui
-
15/11/2022
Ter
-
17/11/2022
Qui
16
22/11/2022
Ter
17
24/11/2022
Qui
18
29/11/2022
Ter
19
01/12/2022
Qui
20
06/12/2022
Ter
21
03/01/2023
Ter
22
05/01/2023
Qui
23
10/01/2023
Ter
24
12/01/2023
Qui
25
17/01/2023
Ter
26
19/01/2023
Qui
27
24/01/2023
Ter
28
26/01/2023
Qui
29
31/01/2023
Ter
30
02/02/2023
Qui
(início)
## Avaliações
[Notas](https://script.google.com/macros/s/AKfycbzJtO8F2_Ik3vil3WJU4W62c6V9n71wDfq1spG1phyQJebChA-UNPMaMmI-GEC-wA_b/exec)
Obs.: Estudantes que não atingiram média 7,0 devem manter contato com a professora para combinar as últimas entregas, que irão compor o exame final.
## Produção individual personalizada
- [Programação orientada a objetos / concorrente](trabalhos/perso1)
- [Programação funcional / lógica](trabalhos/perso2)
## Projeto de Programação Orientada a Objetos
- Commit inicial: 27/10/2022
- Primeira entrega: 07/11/2022
- Segunda entrega: 14/11/2022
## Como será a avaliação?
A avaliação irá considerar a produção **individual** e **coletiva** a cada bimestre.
A produção **individual** (peso 5 em cada bimestre) consistirá na entrega de exercícios/problemas resolvidos e atividades personalizadas, estabelecidas previamente entre estudantes e professora.
A produção **coletiva** (peso 5 em cada bimestre) consistirá em projetos de programação desenvolvidos em grupo.
As produções serão examinadas a cada bimestre, compondo 2 momentos de avaliação parcial, nas seguintes datas:
- 1o Bimestre: ~~01 e 03/11/2022~~ (cronograma alterado - ver aulas)
- 2o Bimestre: ~~24 e 25/01/2023~~ (cronograma alterado - ver aulas)
Avaliação final (exame): 07/02/2023
(início)
## Bibliografia
## Geral
- Robert Sebesta. Conceitos de Linguagens de Programação. Bookman, 2018. Disponível no [Portal de E-books](https://www.ufsm.br/orgaos-suplementares/biblioteca/e-books-2/) da UFSM.
- Bruce A. Tate. [Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages](https://www.semanticscholar.org/paper/Seven-Languages-in-Seven-Weeks%3A-A-Pragmatic-Guide-Tate/8ab7286cc9e93b11bf783d4ba1d3ddc14630d202).
- Outros materiais de referência indicados nas aulas.
(início)
## OO / Java
- Ralph Morelli, Ralph Walde, Beryl Hoffman. [Java, Java, Java: Object-Oriented Problem Solving](https://runestone.academy/ns/books/published/javajavajava/book-1.html)
- [2.4 Class Definition](https://runestone.academy/ns/books/published/javajavajava/sec-classdef.html)
Seção sobre definição de classes, com exemplos e exercícios
- Alura. [Java e Orientação a Objetos](https://www.alura.com.br/apostila-java-orientacao-objetos)
Apostila gratuita.
- University of Helsinki. [Java Programming - A free online course on learning Java](https://java-programming.mooc.fi/)