|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA |
|
Ficha de Componente Curricular
CÓDIGO:
|
COMPONENTE CURRICULAR: |
|
UNIDADE ACADÊMICA OFERTANTE: FACULDADE DE ENGENHARIA ELÉTRICA |
SIGLA: FEELT |
|
CH TOTAL TEÓRICA: 30 horas |
CH TOTAL PRÁTICA: 30 horas |
CH TOTAL: 60 horas |
OBJETIVOS
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:
Demonstrar a importância da linguagem C no desenvolvimento de aplicações em hardware heterogêneo;
Desenvolver habilidades dos discentes em produzir códigos de qualidade através da adoção de boas práticas de programação e de Test-Driven Development (TDD);
Desenvolver as habilidades dos discentes em trabalhar em grupo, gerenciar e documentar projetos;
Desenvolver a consciência, a autonomia e a responsabilidade dos discentes.
Ementa
Desenvolvimento de aplicaçõ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 estrutura de dados, compiladores, análise de algoritmos, computabilidade e complexidade. Uso de computação nas nuvens. Noções de empreendedorismo e de inovação.
PROGRAMA
1. Introdução
1.1. Arquitetura de Von Neumann: CPU, memória, dispositivos E/S
1.2. Compilador, makefile, debug
1.3. Repositórios (Github)
1.4. Plataformas de desenvolvimento (sistemas embarcados, computadores pessoais, IoT – internet of things, servidores e computação nas nuvens)
1.5. Soluções em hardware e em software
2. Linguagem C
2.1. Primitivas e tipos de dados
2.1.1. Bases numéricas, conversão entre bases binária, decimal, octal, hexadecimal
2.1.2. Primitivas ou tipos básicos: ASCII, Unicode, complemento de 2, IEEE 754-1985/2008
2.1.3. Operações binárias (BITWISE)
2.2. Armazenamento em memória
2.3. Controles de fluxo de execução: sequência de instruções, condicionais, laços
2.4. Ponteiros, vetores e strings
2.4.1. Aritmética de ponteiros
2.4.2. Acesso aleatório de dados
2.5. Funções e recursão
2.5.1. Passagem de parâmetros por valor e por referência
2.6. Estruturas de dados e encapsulamento
2.7. Alocação dinâmica de memória
2.8. Matrizes e operações
2.9. Implementação e análise de algoritmos, estudo de complexidade
2.10. Manipulação de arquivos
2.11. Compilador SWIG e ligação de código C com outras linguagens
3. Aplicação em sistemas embarcados
3.1. Comunicação serial para sistemas embarcados (ex. Arduino)
3.2. Desenvolvimento de aplicações em sistemas embarcados (ex. Arduino)
3.3. Desenvolvimento de aplicações em nuvem
4. Cursos online abertos e massivos
4.1. https://www.youtube.com/watch?v=FH7YrE0RjWE&list=PLesCEcYj003SwVdufCQM5FIbrOd0GG1M4 (canal brasileiro eXcript)
4.2. https://www.coursera.org/learn/arduino-platform
4.3. http://mooc.fi/courses/2016/aalto-c/en/
BIBLIOGRAFIA BÁSICA
Backes, André. Linguagem C: completa e descomplicada. Rio de Janeiro: Elsevier, 2013.
Feofiloff, Paulo. Algoritmos em linguagem C. Rio de Janeiro: Campus, 2009.
McRoberts, Michael. Arduino básico. São Paulo: Novatec, 2011.
BIBLIOGRAFIA COMPLEMENTAR
Etter, Delores M. Engineering problem solving with C. 4th. ed. Boston: Pearson, 2013.
Kernighan, Brian W.; Ritchie, Dennis. C, a linguagem de programação. 4. ed. Porto Alegre; Rio de Janeiro: EDISA; Campus, 1988.
SCHILDT, Herbert. C completo e total. 3. ed. São Paulo: Makron Books, 1997.
Sedgewick, Robert. Algorithms in C. 3rd. ed. Boston: Addison-Wesley, 1998-2002.
SOFFNER, Renato K. Algoritmos e Programação em Linguagem C, 1ª edição. São Paulo: Editora Saraiva, 2013. E-book. ISBN 9788502207530. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788502207530/.
aprovação
Prof. Dr. Augusto Wohlgemuth Fleury Veloso da Silveira Coordenador do Curso de Graduação em Engenharia Elétrica |
Prof. Dr. Sérgio Ferreira de Paula Silva Diretor da Faculdade de Engenharia Elétrica |
| Documento assinado eletronicamente por Augusto Wohlgemuth Fleury Veloso da Silveira, Coordenador(a), em 03/05/2023, às 12:30, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
| Documento assinado eletronicamente por Sergio Ferreira de Paula Silva, Diretor(a), em 04/05/2023, às 15:29, 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 4418216 e o código CRC 6BDFF80C. |
Referência: Processo nº 23117.080333/2022-16 | SEI nº 4418216 |