Skip to main content

Arquitetura de Computadores I

CompRaizX
Enrollment in this course is by invitation only

Sobre este curso:

Este curso está voltado para cientistas da computação, engenheiros da computação e qualquer outra pessoa interessada em escrever programas melhores através do aprendizado do que está "por baixo do capô" de um computador.

O objetivo global deste curso é explicar os conceitos fundamentais e duradouros subjacentes a todos os computadores, e mostrar maneiras práticas e concretas de aplicar esses conceitos para melhorar a corretude, performance e utilidade dos seus programas. Como Bryant e O'Hallaron escreveram, no clássico livro "Computer Systems: a programmer's perspective", se você estudar e aprender o conteúdo deste curso estará no caminho certo para se tormar um "programador poderoso raro", que sabe como as coisas funcionam e como consertá-las quando elas quebram.

Pré-requisitos:

Para ter sucesso neste curso você precisa dos seguintes conhecimentos prévios:

  • Programação C: você já deve ter feito, pelo menos, um semestre de estudo de programação C; em particular você deve conseguir escrever programas de tamanho moderado (200-500 linhas), utilizar ponteiros e alocação de memória, trabalhar com structs e enums, saber usar as funções mais comuns da Biblioteca Padrão C, e compilar programas C na linha de comando com o GCC.
  • Computadores Linux: todas as atividades do curso serão executadas em computadores Linux (distribuição Ubuntu MATE), arquitetura x86_64. O uso de Linux é fundamental por dois motivos: 1) nós aprenderemos como os computadores executam programs C no Linux; e 2) muitos exemplos e tarefas de programação são especificamente formatadas e projetadas para serem realizadas em máquinas Linux. Se você não tiver um computador com Linux instalado, pode utilizar sistemas de virtualização como o VirtualBox e o VMware para criar uma máquina virtual Linux.
  • Circuitos Digitais: você já deve ter feito, pelo menos, um semestre de estudo a respeito de circuitos digitais; em particular você deve entender sobre circuitos lógicos digitais, portas lógicas, somadores, flip-flops.

Carga e trabalho:

Este curso é intensivo e exigirá de você de 6-12 horas semanais de estudo, além das horas em sala de aula, para que você aprenda o conteúdo. Haverá muito trabalho prático, exercícios manuscritos e online, provas surpresa e atividades no laboratório.

Por favor, não subestime a carga horária necessária de estudos. Se você já está fazendo diversos outros cursos intensivos, talvez seja melhor você terminar os outros cursos primeiro e depois, quando tiver mais tempo para se dedicar, se matricular neste curso.

Pessoal do curso:

Course Staff Image #1

Prof. Abrantes Araújo Silva Filho

Biography of instructor/staff member #1

Perguntas freqüêntes:

Nunca programei em C, conseguirei fazer o curso?

Em princípio sim, desde que você se esforço no começo para aprender C por conta própria. Há muito material de estudo (livros e onlie) para o aprendizado de C e, se você se esforçar realmente, você pode aprender C enquanto faz este curso.

Preciso comprar algum hardware?

O material necessário para o curso está disponível no Laboratório de Hardware, mas é altamente recomendável que você compre algum Kit de Arduino para realizar atividades em casa.

Course Summary

  1. Course Number

    CR6190A
  2. Classes Start

  3. Classes End

  4. Estimated Effort

    10:00