Programa
Programa provisório. Ver mudanças em breve, especialmente na bibliografia.
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
DEPARTAMENTO DE CIÊNCIAS EXATAS
PROFESSOR(A): ROBERTO ALMEIDA BITTENCOURT
PERÍODO LETIVO: 2015.2
PROGRAMA DA DISCIPLINA
EXA 170 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
CARGA HORÁRIA/CREDITAÇÃO
60 horas / (T:30; P:30; E:00)
PRÉ-REQUISITOS
Não há.
EMENTA
Noções de arquitetura e organização de computadores, sistemas operacionais,
redes de computadores e banco de dados. Paradigmas de linguagens de programação.
Compiladores e interpretadores. Noções de algoritmo, dado, variável, instrução e
programa. Tipos e estruturas elementares de dados. Instruções condicionais,
incondicionais e de repetição. Tipos definidos pelo usuário. Estruturas compostas de
dados: vetores, matrizes e registros. Subprogramas: funções, procedimentos e
recursividade. Noções de arquivos em programação. Aplicações com linguagens de
programação.
OBJETIVOS
Geral:
Ser capaz de resolver problemas algorítmicos através da construção de pequenos programas em uma linguagem de programação atual.
Específicos:
Compreender, de maneira introdutória, o funcionamento dos computadores digitais;
Aplicar conceitos de algoritmos para projetar a solução de pequenos problemas de informação;
Ser capaz de se expressar, em nível básico, em uma linguagem de programação atual, através de estrututas de controle, processamento e entrada e saída;
Compreender estruturas de dados básicas homogêneas e heterogêneas em memória e usá-las para armazenar dados em memória;
Aplicar os conceitos de arquivos para armazenamento e recuperação de informação.
CONTEÚDO PROGRAMÁTICO
Algoritmos e o ambiente Scratch.
Ambiente Scratch: visão geral.
Comandos de aparência, movimento, caneta, sensores, controle, variáveis e expressões.
Entrada de dados através de mouse e teclado.
Saída de dados na tela.
Variáveis e expressões aritméticas.
Estruturas de seleção e expressões lógicas.
Estruturas de repetição.
Comunicação entre objetos.
Desenvolvimento de programas no framework AppInventor.
Design de interação.
Comandos do AppInventor.
Construção de scripts.
Renderização de listas.
Persistência de dados.
Linguagem Python.
Entrada e saída.
Expressões aritméticas.
Expressões lógicas e estruturas de seleção.
Estruturas de repetição.
Estruturas de dados básicas.
Funções e módulos em Python.
Arquivos em Python.
Bibliotecas básicas de Python.
Erros e exceções.
Framework web2py.
Noções básicas: programação para web, CSGI e MVC.
O ambiente web2py.
Modelos: DAL, CRUD, tipos de dados e validação, administração do BD, modelagem de dados.
Controladores: mapeamento de URLs, passagem de parâmetros, API, renderização de conteúdo, controle de acesso e autenticação.
Visões: templates, helpers, formulários, upload e validação.
Distribuição e publicação de aplicações. Tópicos avançados.
METODOLOGIA
A metodologia será um híbrido de aulas expositivas dialogadas e tutoriais de técnicas e ferramentas, além de atividades práticas de laboratório para a construção de programas.
MATERIAL UTILIZADO
Quadro branco, pincel, apagador, computador e projetor multimídia.
AVALIAÇÃO
A disciplina será dividida em quatro unidades, para que o estudante possa refletir sobre sua situação em diferentes momentos do curso e, caso necessário, realizar correções de rumo no processo de aprendizagem.
Medidas da Unidade:
A medida de cada uma das quatro unidades será extraída de uma prova prática realizada no final da unidade.
Média Parcial:
A média parcial será a média aritmética das medidas de cada unidade. Obtendo média igual ou superior a 7,0 (sete), o estudante pode ser aprovado, caso cumpra os requisitos de frequência.
Prova Final:
Não obtendo média parcial suficiente na avaliação do módulo, o estudante poderá fazer prova final, e a média final será calculada de acordo com o sistema de avaliação vigente na UEFS.
Aprovação no módulo:
Para ser aprovado no módulo, o estudante precisa cumprir os seguintes requisitos:
Ter frequência igual ou superior a 75% da carga horária efetiva ministrada no módulo, caso contrário haverá reprovação por frequência;
Ser aprovado na avaliação do módulo, caso contrário haverá reprovação por nota.
REFERÊNCIAS
LIVROS-TEXTO
MANZANO, J. A. N. G. Estudo Dirigido de Linguagem C. São Paulo: Érica: 1997.
MANZANO, J. A. N. G., OLIVEIRA, J. F. Algoritmos : Lógica para Desenvolvimento de Programação. São Paulo: Érica, 1996.
FORBELLONE, A. V. L., EBERSPACHER, H. F. Lógica de Programação : A Construção de Algoritmos e Estrutura de Dados. 2. ed. São Paulo: Makron Books, 2000.
FARRER, H., et al. Algoritmos Estruturados. 3. ed. Rio de Janeiro: LTC, 1999.
MENEZES, N. N. C. Introdução à Programação com Python. 2. ed. Novatec, 2014.
ALVES, F. J. Introdução à Linguagem de Programação Python. Ciência Moderna, 2013.
Diversas apostilas e web sites.
LEITURA COMPLEMENTAR
BEAZLEY, D., JONES, B. K. Python Cookbook. Novatec, 2013.
Diversas apostilas e web sites.