Informações da Disciplina

 Preparar para impressão 

Júpiter - Sistema de Gestão Acadêmica da Pró-Reitoria de Graduação


Instituto de Matemática e Estatística
 
Ciência da Computação
 
Disciplina: MAC0216 - Técnicas de Programação I
Programming Lab I

Créditos Aula: 4
Créditos Trabalho: 2
Carga Horária Total: 120 h
Tipo: Semestral
Ativação: 01/01/2018 Desativação: 31/12/2020

Objetivos
Expor o estudante a conceitos e ambientes de programação e integração de módulos e programas, partindo de baixo nível (linguagem de montagem), utilização de ferramentas do sistema operacional e de desenvolvimento de software até atingir os princípios de orientação a objetos. Estes tópicos são aplicados em uma parte prática que consiste em desenvolver um sistema de software em linguagem procedimental. 
 
 
 
Docente(s) Responsável(eis)
84710 - Alfredo Goldman Vel Lejbman
84724 - Fabio Kon
3150657 - Kelly Rosa Braghetto
2090749 - Marco Dimas Gubitoso
 
Programa Resumido
Arquitetura de computadores. Linguagem de montagem e ligação de código objeto. Interação com o sistema operacional e Shell scripts. Gerenciamento de compilação de programas Modularização de código. Bibliotecas estáticas e dinâmicas. Teste e depuração. Linguagens procedimentais de alto nível. Linguagens dinâmicas de script. Introdução aos conceitos de orientação a objetos. 
 
 
 
Programa
 Conceitos básicos de arquitetura de computadores. Linguagem de montagem e montadores, ligação de código objeto, interface com hardware e com linguagens de alto nível. Interação com o sistema operacional no nível do shell: streams, entrada e saída padrão, redirecionamento e pipes. Shell scripts. Gerenciamento de compilação de programas e bibliotecas com ferramentas como make. Modularização de código. Ligação de módulos, estática e dinâmica. Construção de bibliotecas. Técnicas de depuração e teste de programas. Construção de um sistema em uma linguagem procedimental (por exemplo, C). Estudo de uma linguagem dinâmica de script (por exemplo, Python ou Ruby). Introdução aos conceitos de orientação a objetos no âmbito de linguagens dinâmicas.
 
 
 
Avaliação
     
Método
O aluno será avaliado continuamente durante o semestre, tendo em vista as atividades apresentadas ao professor, monitores e seus pares na disciplina.
Critério
Média ponderada dos trabalhos e provas realizados durante a disciplina e assiduidade às aulas e trabalhos.
Norma de Recuperação
alunos com média final entre 3,0 e 4,9 terão a opção de realizar uma prova ou trabalho extra que será contabilizado em uma nova média final.
 
Bibliografia
     
Bibliografia Básica
W.R. Stevens, S.A. Rago, Advanced Programming in the UNIX Environment (3rd Edition), Addison-Wesley Professional, 2013. 
B. Neveln, LINUX assembly language programming, Prentice Hall, 2000. 
B.W. Kernigham and R. Pike, The practice of programming, Addison-Wesley, 1999. 
N. Nisan, S. Schocken, The Elements of Computing Systems: Building a Modern Computer from First Principles, MIT Press, 2005. 
E. Roberts, The Art and Science of C, Addison-Wesley, 1995. 
A. Martelli, Python in a Nutshell, 2nd edition. O'Reilly, 2006. 
R. Sedgewick, K. Wayne, R. Dondero, Introduction to Programming in Python: An Interdisciplinary Approach, Addison-Wesley, 2015. 
D. Thomas, C. Fowler, A. Hunt, Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide (The Facets of Ruby), 4th Edition, Pragmatic Bookshelf, 2013. 
R. Sedgewick, K. Wayne, Introduction to Programming in Java: An Interdisciplinary Approach Addison-Wesley, 2007.

Bibliografia Complementar
Intel 64 and IA-32 Architectures Software Developers' Manual, https://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax. 
GNU Make Manual, http://www.gnu.org/software/make. 
Git Documentation, https://git-scm.com/doc.
 

Clique para consultar os requisitos para MAC0216

Clique para consultar o oferecimento para MAC0216

Créditos | Fale conosco
© 1999 - 2024 - Superintendência de Tecnologia da Informação/USP