Kursthemen
-
IMPORTANTE: antes de começarmos as aulas, por favor, preencham o seguinte questionário até 2a feira, 16/8 às 14:00: https://forms.gle/sr2HK4rxhf6oVnoc9
-
Nossa sala de aula virtual é aqui! (faça login com sua conta USP) Link/URL
A monitoria do EP do Nelson Lago vai ser no nosso link antigo do jit.si:
https://meet.jit.si/MAC0216-ime-usp
-
Dúvidas e discussões variadas Forum
Poste aqui qualquer dúvida ou discussão que tenha em relação ao conteúdo da disciplina e aos exercícios.
As dúvidas serão respondidas pelo monitor, professor e colegas de turma (não necessariamente nessa ordem :-)
A única regra é ser educado com todos e colaborar.
-
-
Aula 1 - Apresentação da disciplina e breve História dos Computadores
- linguagem de máquina vs. linguagem de montagem vs. linguagem de alto nível
- montador, compilador, interpretador
Aula 2 - Organização de Computadores
- História
- Modernos: https://chortle.ccsu.edu/assemblytutorial/Chapter-04/ass04_1.html
- Quiz 1 - Organização - Entregar até 24/8, 14:00
-
Aula 3 - CISC vs. RISC
- Slides CISC vs. RISC
- Quiz 2 (entregar até o dia 26/8, 14:00)
Aula 4 - MIPS básico
- Quiz 3 - MIPS (entregar até o dia 31/8, 14:00)
-
Aula 5 - MIPS - vetores, pilha, chamada de função e recursão
Aula 6 - MIPS avançado - linguagem de máquina do MIPS, chamadas ao sistema, matrizes, ponto flutuante. -
Aula 7 - Sistemas Operacionais e Shell
-
Aula 8 - Bash - Parte 1
Aula 9 - Bash - Parte 2
-
Aula 12 - Canos e filtros (pipes and filters) no Unix
Aula 13 - Introdução à Linguagem C - Parte 1
-
Aula 14 - Não faça Esso com o Shell - Palestra de Julio Neves
Aula 15 - Introdução à Linguagem C - Parte 2
-
Aula 19: Automatização da construção (build automation), GNU Make
Aula 20: Gerenciamento de versões - git
-
Vamos practicar Linguagem C, Makefile e bibliotecas, muitas bibliotecas!
Compartilhem o código do seu projeto com os seguintes usuários:
Gitlab: @anayoon e @MaxCG
GitHub @anayflima e @MxCG
-
Aula 22 - Orientação a Objetos - Parte 2
lição de casa opcional: melhorar implementação do Musica.py da aula passada
- Introduzir classe Playlist
- Nesta nova classe, permitir busca por qualquer tipo de atributo:
def busca_por (self, atributo, valor)
usando getattr(musica, atributo)
Aula 23 - Orientação a Objetos - Parte 3 (Herança)
-
Break para finalizar o EP3 com chave de ouro e submetê-lo!
Não deixe de acompanhar a discussão sobre o EP3 no fórum. Podem aparecer dicas e esclarecimentos importantes lá! Assim como no mundo real, a especificação de um sistema de software real costuma ser algo vivo que evolui à medida em que desenvolvemos o sistema (em geral, é bem diferente da formulação de um problema matemático).
-
Aula 24 - Depuração (slides)
- Vídeo sobre depuração no Eclipse
Aula 25 -- Apresentação dos EP3s
- Introdução ao Teste de Software - Parte 1
- Vídeo sobre depuração no Eclipse
-
Aula 26 - Desenvolvimento de jogos com orientação a objetos em Python com Pygame - aula do Dr. Wilson Mizutani.
Aula 27 - Introdução ao Teste de Software - Parte 2
-
Aula 28 - Testes em python com o PyTest
Aula 29 - Cobertura de Testes, testes em IDEs e JUnit
https://drive.google.com/file/d/1MnLGZOym1MkOweAPxMn1vmNi-jWOX5vz/view?usp=sharing
-
Na aula desta 5a feira, além de assistir ao vídeo pré-gravado pelo professor, vocês devem:
A) Ler o artigo A Importância dos Testes Automatizados e
B) Submeter aqui um documento de 1 a 2 páginas respondendo as seguintes 3 perguntas:
- Qual a vantagem de testes automatizados em relação a testes manuais?
- Qual a vantagem de se usar uma ferramenta específica para testes como pyTest ou JUnit ao invés de escrever testes automatizados no seu próprio estilo?
- Escrever testes automatizados retarda o desenvolvimento de software? Explique.
Todas as respostas devem ser escritas da sua cabeça, individualmente, com suas próprias palavras. Não é permitido copiar frases de qualquer fonte que não seja a sua própria invenção criativa pessoal.
A entrega deve ser feita aqui até domingo às 20:00.
-
-
Aula 30 - Palestra Effective Testing com Prof. Mauricio Aniche (Delft University, Holanda):
Aula 31 - Ética em Computação