|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
Observações: |
EMENTA
Desenvolvimento de aplocações práticas em linguagens C, com abordagem algorítmica e conceitos de avaliação de valores e de expressões; constantes, variáveis, ponteiros, strings, arrays; controle de fluxo de execução de código (sequência, instruções condicionais, laços, funções); estruturas e encapsulamento; alocação dinâmica de memória; manipulação de arquivos; base de arquitetura e organização de computadores. Noções de estruturas de dados, compiladores, análise de algoritmos, computabilidade e complexidade. Uso de computação nas nuvens. Noções de empreendorismo e inovação.
JUSTIFICATIVA
Criada em 1972 por Dennis Ritchie e Ken Thompson para desenvolver o sistema operacional Unix, a linguagem de programação C é uma linguagem compilada de propósito geral, estruturada, imperativa, procedural e padronizada pela ISO. Apesar das mudanças que sofreu desde primeira publicação, permaneceu notavelmente estável e unificada. Sua versão mais recente é padronizada pela norma ISO/IEC 9899:2011.
Devido à sua proximidade do código de máquina, a linguagem C permite com que o programador seja capaz de fazer previsões e de sempre controlar o comportamento do seu código. C permite o acesso de baixo nível à memória, necessita de baixos requerimentos do hardware e possibilita o reaproveitamento de códigos. A linguagem substitui com vantagens o uso da linguagem Assembly e ainda hoje é a linguagem de programação preferida para o desenvolvimento de sistemas e softwares de base, sendo usada também como uma linguagem de suporte em aplicações que necessitam de alto desempenho.
Compiladores C, por serem facilmente implementados, estão disponíveis para a maioria absoluta das plataformas de hardware existentes. O fato da linguagem ser simples e mais próxima do hardware permite com que a linguagem C seja largamente utilizada em aplicações de sistemas embarcados e microprocessadores onde é necessária a economia tanto da capacidade de processamento quanto da energia dispensada para suas operações.
Seja para gerar e manipular fluxos de dados próximos do hardware, para ajudar a compreender certas características do computador, para manipular e transformar com alto desempenho conjuntos de dados de interesse, ou mesmo para possibilitar a programação de microprocessadores heterogêneos, a linguagem C assume ainda hoje um importante papel na realidade mercadológica, tornando essa disciplina uma importante contribuição para o desenvolvimento profissional do estudante.
OBJETIVO
Objetivo Geral: |
Desenvolver as habilidades dos discentes em programação na linguagem C explorando as estruturas básicas que compõe a arquitetura de um computador. |
Objetivos Específicos: |
|
PROGRAMA
Data |
DDS |
Prática 1 / 2 |
Teoria |
|
29/Sep/22 |
5ªf |
Não haverá aula |
Introdução; Linguagem de programação C padrão C99 |
|
6/Oct/22 |
5ªf |
Lab 00: Git, Github, Apresentação IDE / Primeiros programas |
Tipos de Dados Primitivos, Qualificadores, Aritmética, Controle de Fluxo Simples (if-else, while) |
|
13/Oct/22 |
5ªf |
--- Reposição em 29/Oct/22 --- |
Mais sobre Controle de Fluxo: decisão (switch/case, ternário, aninhados), iteração (do-while, for, aninhados); Bases numéricas (dec, oct, hex, bin) * |
|
20/Oct/22 |
5ªf |
--- Reposição em 26/Nov/22 --- |
Básico de funções: tipo, parâmetros/argumentos. noção de escopo, retorno, protótipo * |
|
27/Oct/22 |
5ªf |
Lab 01: Interações com o usuário: Printf/Scanf, Aritmética |
Vetores e Matrizes |
|
3/Nov/22 |
5ªf |
Lab 02: Controle de Fluxo, Uso de Funções |
Codificação de caracteres; Strings: strlen, strcat, strcpy, strcmp |
|
10/Nov/22 |
5ªf |
--- Reposição em 3/Dez/22 --- |
Funções e escopo; Recursão em C * |
|
17/Nov/22 |
5ªf |
--- Reposição em 10/Dez/22 --- |
Registros e Struct; Union; Enum * |
|
24/Nov/22 |
5ªf |
Lab 03: Vetores |
Ponteiros em C: variáveis, struct, funções, passagem pot referência, ponteiros para ponteiros |
|
26/Nov/22 |
Sábado |
Lab 04: Matrizes |
|
|
1/Dec/22 |
5ªf |
Lab 05: Strings |
Alocação dinâmica em C: vetores, matrizes; Realocação; Organização da memória (stack e heap) |
|
3/Dec/22 |
Sábado |
Lab 06: Recursão |
|
|
8/Dec/22 |
5ªf |
Lab 07: Struct, Union, Enum |
Listas ligadas: impressão; inserção e remoção (cabeça, cauda, interior); Listas ordenadas e circulares |
|
10/Dec/22 |
Sábado |
Lab 08: Ponteiros |
|
|
15/Dec/22 |
5ªf |
Lab 09: Alocação Dinâmica |
Tipos Abstratos de Dados; Filas e Pilhas; Compilando com Makefile |
|
17/Dec/22 |
Sábado |
Lab 10: Listas Ligadas |
|
|
22/Dec/22 |
5ªf |
Lab 11: Filas e Pilhas |
Algoritmos de Busca: Sequecial, Binária; Custo computacional; Análise assintótica; Ordem de crescimento; Eficiência de Algoritmos |
|
29/Dec/22 |
5ªf |
--- Recesso --- |
||
5/Jan/23 |
5ªf |
Lab 12: Algoritmos de Busca |
Algoritmos de Ordenação: Selection, Insertion, Bubble, Merge, Quick |
|
12/Jan/23 |
5ªf |
Lab 13: Algoritmos de Ordenação |
Arquivos em C; Escrita e Leitura em Texto; Escrita e Leitura em Binário |
|
19/Jan/23 |
5ªf |
Lab 14: Arquivos, texto e binário |
Dicas de aperfeiçoamento; SWIG; Encerramento da Disciplina |
|
26/Jan/23 |
5ªf |
Entrega de laboratórios atrasados (recuperação) |
||
2/Feb/23 |
5ªf |
--- Reposição de aulas de QUA --- |
||
Aulas aos sábados: das 8:00h às 9:40h (Prática 1); das 9:50h às 11:30h (Prática 2) (*) Aula ministrada pelo Prof. Felipe Louza |
METODOLOGIA
Parte teórica: Aulas expositivas dialogadas com demonstrações práticas, diagramas e codificação-exemplo, acompanhadas de indicação para materiais de apoio.
Parte prática: Aulas práticas em laboratório com roteiros e apoio de sítios informativos de internet com discussão sobre dúvidas, exposição de exemplos e orientação em projetos.
Observação: Os materiais de referência e de apoio, assim como links relevantes, avaliações e repositório de materiais complementares, serão disponibilizados com o suporte do Moodle da UFU no sítio: https://moodle.ufu.br/course/view.php?id=11233.
AVALIAÇÃO
Parte teórica
Avaliação continuada: atividades avaliativas do tipo questionário no Moodle quase toda semana. Total máximo possível: 50% da nota final.
Parte prática
Entrega de programas e avaliação dos mesmos, com diferentes níveis de dificuldade. Total máximo possível: 50% da nota final.
Recuperação
Serão aceitos entregas até o final do semestre, com desconto progressivo nas notas, dos questionários e programas desenvolvidos no decorrer do curso.
BIBLIOGRAFIA
Básica
BACKES, André, 2013, Linguagem C: completa e descomplicada, Rio de Janeiro : Elsevier, 2013.
FEOFILOFF, Paulo, 2009, Algoritmos em linguagem C. Rio de Janeiro : Campus, 2009.
MC ROBERTS, Michael. Tradução Rafael Zanolli. Arduino básico. São Paulo : Novatec, 2011.
Complementar
KERNIGHAN, Brian W.; RITCHIE, Dennis. C, a linguagem de programação: padrão ANSI. Tradução Daniel Vieira. Rio de Janeiro: Elsevier, c1989.
ETTER, Delores M. Engineering problem solving with C. 4th ed. Boston : Pearson, 2013.
HARTEL, Pieter; MULLER, Henk. Functional C. 1st ed. Boston : Addison-Wesley, 1997.
SEDGEWICK, Robert. Algorithms in C. Boston: Addison-Wesley, 2002.
SCHILDT, Hebert. C completo e total. Tradução Marcos Ricardo Alcantara Morais. 3 ed. São Paulo> Makron Books : McGraw-Hill, 1991.
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Igor Santos Peretta, Professor(a) do Magistério Superior, em 07/10/2022, às 11:41, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 3984168 e o código CRC F3222239. |
Referência: Processo nº 23117.058216/2022-76 | SEI nº 3984168 |