Introdução a paradigmas de linguagem de programação imperativa e funcional. Introdução a linguagem de programação C: comandos de entrada e saída; estrutura de decisão e repetição; matrizes, strings e tipos de dados estruturados; subprogramas, arquivos, conjuntos, ponteiros; alocação dinâmica de memória; introdução à programação modular. Introdução a linguagem de programação Haskell: listas, tuplas, tipos, classes, polimorfismo, funções de alta ordem, recursão.
Revisar diferentes linguagens de programação: imperativas e funcionais, lógicas e concorrentes; estabelecer as características necessárias de uma boa linguagem de programação em função do problema a ser solucionado; descrever as estruturas de controle, unidades de programa, comandos e o gerenciamento de memória das linguagens de programação; conhecer e avaliar aspectos de implementação das linguagens de programação.
Os recursos utilizados nas aulas incluem computadores, slides, ferramentas digitais, baralhos, jogos e post-its para a realização de atividades analógicas.
A carga horária diária da disciplina é de 240 minutos, sendo 60 minutos de atividades assíncronas e 180 minutos de atividades presenciais ou síncronas mediadas.
A metodologia de ensino adotada baseia-se em aulas expositivas dialogadas, debates, estudos de caso, dinâmicas e apresentações de trabalhos realizados pelos alunos, valorizando a dimensão crítica, participativa e construtiva, com especial atenção à capacidade de expressão oral e escrita.
Como suporte às atividades, será utilizado Ambiente Virtual de Aprendizagem (Google Classroom), além de Slack, e-mail, Zoom, Google Meet, projetor, computador, materiais em PDF e videoaulas.
O processo avaliativo da disciplina é composto por duas avaliações: Avaliação 1 (AV1) e Avaliação 2 (AV2). Cada avaliação é constituída por um conjunto de atividades, totalizando 10 pontos. A nota final do(a) estudante será calculada conforme a fórmula apresentada a seguir:
(AV1 + AV2) / 2 = Média Final
Legenda:
Composição das notas (AV1 e AV2):
O cronograma da disciplina é atualizado continuamente, de acordo com o andamento das atividades em sala. As datas previstas podem sofrer alterações em casos excepcionais, e todas as mudanças são previamente comunicadas em aula. Ressalta-se que o semestre letivo, conforme estabelecido no Calendário Acadêmico institucional, já delimita o período no qual o(a) estudante deve se organizar e se dedicar às atividades e estudos da graduação.
| Aula | Data | Conteúdo |
|---|---|---|
| - | 09/02 | Início das Aulas |
| 1 | 11/02 |
Atividade assíncrona: AWS Academy Introdução a paradigmas de linguagem de programação imperativa Introdução à linguagem de programação C |
| 2 | 25/02 |
Atividade assíncrona: AWS Academy Programação em C: comandos de entrada e saída Estrutura de decisão e repetição |
| 3 | 04/03 |
Programação em C: arrays uni e multidimensionais Programação em C: strings |
| 4 | 11/03 | Programação em C: tipos de dados estruturados |
| 5 | 18/03 |
Programação em C: subprogramas Programação em C: arquivos Programação em C: conjuntos |
| 6 | 25/03 |
Programação em C: ponteiros Programação em C: alocação dinâmica de memória |
| 7 | 01/04 |
Programação em C: ponteiros Programação em C: alocação dinâmica de memória |
| 8 | 08/04 |
Programação em C: alocação dinâmica de memória Revisão |
| 9 | 14/04 | AVALIAÇÃO 1 |
| 10 | 22/04 |
Introdução a paradigmas imperativo e funcional Introdução à linguagem de programação Haskell |
| 11 | 29/04 |
Programação em Haskell: listas Programação em Haskell: tuplas |
| 12 | 06/05 |
Programação em Haskell: tipos Programação em Haskell: classes |
| 13 | 13/05 |
Programação em Haskell: polimorfismo Acompanhamento de projeto |
| 14 | 20/05 |
Programação em Haskell: funções de alta ordem Acompanhamento de projeto |
| 15 | 27/05 |
Programação em Haskell: recursão Acompanhamento de projeto |
| 16 | 03/06 |
Programação em Haskell: recursão Acompanhamento de projeto |
| 17 | 10/06 | Acompanhamento de projeto |
| 18 | 15/06 | AVALIAÇÃO 2 |