Programação
-
Aulas:
- Horário: terças 8h / quintas 10h
- Local: Sala B3
Monitoria:
- Monitor: Renan Ribeiro Marcelino
- Plantão: terças, 14h~16h, sala de reuniões do bloco C
O fórum de AVISOS abaixo será usado para postagem de avisos/notícias
(todos irão receber a mensagem postada no email cadastrado aqui no e-disciplinas)O fórum de DÚVIDAS/COMENTÁRIOS/DISCUSSÕES é aberto para vocês postarem/responderem mensagens.
Recomendo que postem dúvidas aqui também, e não somente no grupo do telegram ou discord
ou outros que vocês utilizam "por fora". -
Notas de aula: booleana2023.pdf (atualizado em 27/06)
Livro para conhecimentos gerais e diversão: O livro abaixo é bem divertido. Cobre desde a história da computação (começando na idade da pedra) e vai até a descrição da organização de computadores. É uma forma light de vocês se familiarizarem com vários dos termos citados na primeira aula!
-
A avaliação será uma composição das notas de prova, notas de Listas e notas dos EPs (Projeto de circuitos)
MP = (P1 + P2) / 2 ---> média das provas ML = [(total de pontos obtidos) / (total possível)]*10 ----> média de listas MEP = (EP1+EP2+2*EP3) / 4 ----> média dos EPs (! pesos foram alterados !) if MP >= 5.0 : MF = ML(10%) + MEP (20%) + MP(70%) elif 3.0 <= MP < 5.0 : REC
novoMF = min {(MF + 2*PREC)/3, MF+3} + (eventual bônus derivado de ML e MEP) else : MF = MP (reprovado) -
Para projetar e simular os circuitos, usaremos o LOGISIM-EVOLUTION
- Lista 1: lista1.pdf, entregar em papel até 14/04
- Lista 2: lista2.pdf, entregar em papel até 02/05
- Lista 3: lista3.pdf, entregar em papel até 22/06
- EP1: ep1.pdf, entrega até 18/04
- EP2: ep2.pdf, entrega até 14/06
- EP3: ep3.pdf, entrega até 24/07
- P1 -- 04/05
- P2 -- 29/06
-
Aula 01 (21/03): Introdução sobre o que será coberto nessa disciplina. Basicamente, queremos entender como um programa, escrito em uma linguagem qualquer de programação, é executada pelo processador de um computador. Hoje falamos um pouco sobre números binários e, de forma geral, uso de diferentes bases (binária, decimal, hexadecimal, octal) para a representação de números.
Aula 02 (23/03): Mais números na base 2. Como representar números inteiros (sem e com sinal, i.e., positivos e negativos) no computador, considerando-se N bits para armazená-los. Representação de números inteiros com sinal: notações sinal-magnitude, complemento de 1 e complemento de 2. Adição e números de N bits em notação complemento de 2. Detecção de overflow. Mais detalhes nas notas de aula, cap.2
Aula 03 (28/03): Breve revisão de como interpretar os códigos binários como números inteiros. Adição de binários interpretados como inteiros sem sinal. Subtração de números de N bits em notação complemento de 2 por meio da adição. Detecção de overflow em todos os casos (adição, subtração, com sinal e sem sinal).
------- Após essas três aulas, vocês devem ter entendido a representação de números em diferentes bases (e especialmente na base 2), conversão de números da base 2 para a base 10 e vice-versa, operação de adição de números em binário, representação de números inteiros no computador em N bits (interpretação como inteiro sem sinal, sinal-magnitude, complemento de 1 e complemento de 2), operações de adição e subtração de números binários de N bits (interpretação inteiro sem sinal e interpretação complemento de 2) e deteção de overflow nesses casos.
Aula 04 (30/03): Somador de bits escrita como uma função binária. Operadores lógicos E, OU e NÃO. Escrita de funções binárias por meio dos operadores lógicos. Noções de portas lógicas AND, OR e NOT e de circuitos construídos usando-se essas portas. (capítulo 3 das notas de aula)
------ Semana de break
Aula 05 (11/04): Processamento de dados binários visto como uma função binária; expressão booleana define uma função binária (ou booleana); podem existir múltiplas expressões booleanas que definem uma mesma função; dada uma função binária qualquer, sempre existe alguma expressão booleana que a define? Circuitos lógicos podem ser vistos como uma implementação literal de uma expressão booleana (usando portas lógicas E, OU e inversor NÃO) -- capítulo 3 das notas de aula. Álgebra booleana: definição e alguns exemplos.
Aula 06 (13/04): Mais exemplos de álgebra booleana; princípio da dualidade em álgebras booleanas; algumas propriedades de álgebras booleanas (capítulo 4 das notas de aula)
Aula 07 (18/04): Propriedades (involução, associativa e Teorema de DeMorgan). Exercícios. Diagrama de Hasse e noção de ordem parcial.
Aula 08 (20/04): Relações de ordem parcial. Relação de ordem parcial associada a álgebras booleanas, Diagrama de Hasse de álgebras booleanas. Átomos e exemplos. (ainda estamos no capítulo 4 das notas de aula)
Aula 09 (25/04): Decomposição de qualquer elemento de uma álgebra booleana como união de átomos de forma única
Aula 10 (27/04): Decomposição de qualquer elemento de uma álgebra booleana como união de átomos de forma única, isomorfismo entre álgebras booleanas
Aula 11 (02/05): Exemplo de isomorfismo, existência de isomorfismo entre duas álgebras booleanas finitas com o mesmo número de átomos, qualquer álgebra booleana com n átomos é isomorfa à álgebra das partes de um conjunto S com n elementos
Aula 12 (04/05): P1 (conteúdo visto até agora, capítulos 1 a 4 das notas de aula) -- a P1 será na sala B5
Aula 13 (09/05): Noções sobre expressões booleanas, funções booleanas, álgebra booleana das funções booleanas -- os produtos canônicos correspondem aos átomos nessa álgebra booleana e, por conseguinte, qualquer função booleana pode ser expressa de forma única como soma de um subconjunto de produtos canônicos! (capítulo 5 das notas de aula)
Aula 14 (11/05) : Noções sobre expressões boolenas na forma SOP e POS, canônica ou não, e minimização delas
Aula 15 (16/05): Não haverá aula presencial. Estudem pelas notas de aula, o conteúdo das seções 6.1 a 6.5
Aula 16 (18/05): Não haverá aula presencial. Estudem pelas notas de aula, o conteúdo das seções 6.1 a 6.5
Aula 17 (23/05): Mapas de Karnaugh
Aula 18 (25/05): Minimização na forma SOP x minimização na forma POS; minimização quando há don't cares, minimização conjunta de múltiplas funções (exemplo para esses dois casos é o circuito para o display de dígitos com 7 segmentos); PLA (programmable Logic arrays). Com isso encerramos o tópico minimização de funções booleanas (capítulo 6 das notas de aula).
Aula 19 (30/05) : Circuitos combinacionais especiais (somadores, comparadores, decodificadores, codificadores, multiplexadores, demultiplexadores)
Aula 20 (01/06): Exemplo de uso de decodificadores e codificadores (memória ROM, teclado simplificado). Construção de MUX usando MUXes menores. Implementação de uma função booleana qualquer usando MUX.
Semana de 05/05 a 09/05: Break 2 😌
Aula 21 (13/06): Circuito combinacional x Circuito sequencial. Sinais digitais (breve noção). Flip-flop SR
Aula 22 (15/06) : Flip-flop JK, flip-flops ativados por borda (de subida ou de descida), flip-flops D e T
Semana de 19 a 23/06 -- Não teremos aula presencial. Os próximos conteúdos a serem cobertos são "Capı́tulo 9 Circuitos sequenciais – contadores,
registradores e outros exemplos" e "Capı́tulo 11 Organização de computadores" (vamos pular o 10 por enquanto)
- Aula 23 e 24 (seriam as aulas
dos dias 20 e 22/06): Vamos cobrir contadores, registradores e memória.
Estudem pelas notas de aula ou pelos vídeos a seguir:
- Contadores síncronos e assíncronos; registradores (é suficiente ver o cap.9 das notas de aula)
Vídeo: https://drive.google.com/file/d/14SELly9J5q19aiftsl3KyoB_Jz5OTNRt/view?usp=sharing - Mais registradores, memória RAM, um pouco sobre componentes do processador
Vídeo: https://drive.google.com/file/d/14JUqbhnPbf1kQKenfLlbK7Bd2FZGWXm4/view?usp=sharing
- Contadores síncronos e assíncronos; registradores (é suficiente ver o cap.9 das notas de aula)
Aula 25 (27/06): Revisão/discussão/esclarecimento de dúvidas sobre circuitos sequenciais (contadores, registradores, memória RAM)Aula 26 (29/06): P2 -- conteúdo das aulas 13 a 25, sendo que das aulas 21 a 25 é esperado interpretação (não será cobrada a construção de circuitos sequenciais). A P2 será na sala B-09Aula 27 (04/07): Noções sobre organização de computadores e execução de instruções pelo processador (slides aula 27)Aula 28 (06/07): Mais detalhes sobre o ciclo de instrução. Como gerar o código assembly de programas em C; entender as instruções de máquina e execução de programs a partir do exame do código assembly ( slides aula 27 + anotações )Aula 29 (11/07): às 10hs -- Tópico extra: processamento de imagens usando funções booleanas
- Aula 23 e 24 (seriam as aulas
dos dias 20 e 22/06): Vamos cobrir contadores, registradores e memória.
Estudem pelas notas de aula ou pelos vídeos a seguir:
-
-
-
-
-
-