Blog sobre Assuntos Profissionais do professor Adolfo Neto (DAINF-UTFPR).
O nome do blog é uma homenagem a Raymond Smullyan, lógico, autor de livros sobre charadas lógicas. Um dos livros se chama "Qual é o nome deste livro?" (What Is the Name of This Book?) http://bit.ly/witnotb
Uma ideia que tive (ou que algum aluno teve - não lembro) em 2016 foi a de usar aplicativos para o desenho de mapas mentais para desenhar demonstrações usando o sistema de tablôs analíticos.
Mas nem todos os aplicativos funcionam bem. O que melhor funcionou para mim foi o Bubbl.us. Abaixo uma demonstração de um sequente não-válido usando o sistema de tablôs analíticos com fórmulas marcadas para lógica clássica proposicional:
Com uma conta grátis no Bubbl.us, você pode ter até 3 mapas. E pode compartilhar um link de um mapa, como este link do tablô abaixo, cujo sequente é válido:
Meu aluno Jean Rangel me enviou a seguinte questão e pediu confirmação do gabarito:
Minha resposta foi
Deixa eu formalizar:
p: O solo foi adubado
q: As pragas foram exterminadas
r: As plantas ficaram doentes.
A primeira confusão da questão é misturar tempos verbais: passado aqui, futuro ali.
Mas vamos ignorar isso e colocar tudo no presente:
p: O solo é adubado
q: As pragas são exterminadas
r: As plantas ficam doentes.
Sendo assim, a fórmula do enunciado é
(!p|!q)->r
Onde:
! não
| ou
-> se então
Para contradizer uma implicação, é necessário que o antecendente (lado esquerdo, no caso !p|!q) seja verdadeiro e o consequente (r) seja falso.
Para que !p|!q seja verdadeiro é necessário que ou !p ou !q seja verdadeiro.
Logo,
ou
"O solo não é adubado"
ou
"As pragas não são exterminadas"
ou
as duas frases acima são verdadeiras.
Além disso, é preciso que q seja falso, ou seja, que
"As plantas não ficam doentes".
Vamos ver qual das opções tem uma das duas primeiras frases (ou as duas) e a terceira frase.
Sejam bem-vindos! Começamos as aulas de Lógica para Computação no Câmpus Curitiba da UTFPR na primeira semana de março de 2017.
Professor e Turmas
Neste semestre, eu, Adolfo Neto, lecionarei duas turmas:
A turma de calouros de Engenharia de Computação (~44 alunos)
A turma de segundo período de Sistemas de Informação (~44 alunos)
A turma de calouros de Engenharia de Computação (EC) será a primeira turma de EC com o novo formato da disciplina, com 3 horas-aula por semana, divididas em dois encontros semanais (no caso, terças, 1 hora-aula, e quintas-feiras, 2 horas-aula). A turma de Sistemas de Informação terá apenas um encontro semanal com 3 horas-aula.
Planejamento
Disponibilizo nesta planilha o planejamento de aulas. Ele está neste momento ainda incompleto e em permanente construção. Acessem-o regularmente para mais informações.
O contato com o professor da disciplina deve se dar por email, para uniformizar o atendimento.
Atendimento
A disciplina geralmente possui um monitor (ou monitora). A monitora é uma aluna que já foi aprovada na disciplina e que é responsável por ajudar os alunos atuais da disciplina. O monitor dispõe de horários de atendimento.
O professor também dispõe de horários de atendimento.
Em caso de dúvidas, você deve:
Expor sua dúvida ao professor no início da aula
Agendar um horário de atendimento com o professor por email
Procurar a monitora nos horários de atendimento deste
Os horários de atendimento do monitor e do professor serão informados nas primeiras semanas de aula.
Aqui vai a lista dos alunos aprovados neste segundo semestre de 2016.
Turma IF61B - Lógica para Computação - Curso: Engenharia da Computação
Andre Luiz Morishita
Bruno Miyashita Alves Pinto
Carlos Eduardo Lima Kamioka
Edric Seolin Galindo
Gabriel Antunes Ferraz
Gabriel Carrico Guerrero
Gabriel De Oliveira Freire Silva
Giuliana Martins Silva
Jader Fernandes Heredia
Leonardo Muraroto De Franca Reis
Lucas Da Silva Nolasco
Lucas Dos Santos Ramos
Lucas Felipe Ribeiro
Lucas Perin Silva Leyser
Marcos Vinicius De Lemos Campos
Matheus Bigarelli Dantas Da Costa
Matheus Vinicius Barcaro Turatti
Ricardo Bruno Bentin Reyes
Roman Herrera Nery
Victor Hugo Belinello Da Silva
Wagner Rodrigues Ulian Agostinho
Yasmim Nathaly Skroch
Alexandre Herrero Matias
Luan Luiz De Souza
Pedro Romano Splendore
Turma CSD20 - Introdução À Lógica Para A Computação. Curso: Sistemas de Informação
Depois de ler, assista ao vídeo abaixo (observação: são vídeos experimentais, sem qualidade), que descreve as regras do sistema.
No vídeo, inicialmente apresento a configuração inicial do tablô, uma vez que se trata de um método refutacional e que estamos usando a versão marcada do sistema de tablôs analíticos:
Em sala de aula, explico o que são fórmulas marcadas e porque as fórmulas do lado esquerdo do sequente (premissas) recebem T (representando True, ou seja, Verdadeiro) e a fórmula do lado direito recebe F (False, Falso).
Em relação a Silva, Finger e Melo, eu mudei um pouco a apresentação das regras no vídeo. Em primeiro lugar, eu digo que o fechamento é uma regra, como se pode ver na figura abaixo.
Regra de fechamento.
Depois eu defino as regras da figura abaixo como sendo as regras lineares (também chamadas de regras alfa):
Depois disso, mostro exemplos de tablôs que fecham, isto é, cuja demonstração indica que o sequente é válido. O vídeo abaixo faz isso incluindo alguns indicadores visuais para as razões das aplicações das regras e do fechamento dos ramos.
Neste momento aplico alguns exercícios para, de acordo com os princípios da Aprendizagem Ativa, verificar se os alunos aprenderam.
Depois de confirmar que os alunos entenderam o necessário até agora, explico o que são árvores, que uma árvore tem a raiz na parte de cima e as folhas em baixo. Explico o que são ramos. Depois, explico o que são ramos abertos, ramos fechados, ramos abertos e saturados usando um vídeo que mostra tablôs que não fecham:
No vídeo anterior e no próximo mostro também a ideia de valoração contra-exemplo.
E por fim aplico mais exercícios para verificar se os alunos realmente entenderam o assunto, isto é, que sabem fazer demonstrações utilizando o sistema dedutivo chamado Tablôs Analíticos.
Vamos construir um argumento a partir do que eu entendi (posso estar errado). Vou usar as siglas CL para representar Carmen Lúcia, LP para representar Língua Portuguesa. E vou usar o símbolo "∴" para indicar conclusões. As demais frases são premissas. Supus os trechos em itálico a partir do tweet.
O argumento então seria:
1. CL é presidente do STF.
2. CL quer ser chamada de "presidente¨ .
3. CL é estudante da LP.
4. CL é amante da LP. 5. ∴ CL conhece as regras da LP. 6. De acordo com as regras da LP, as mesmas regras que valem para as palavras "estudante" e "amante", valem para a palavra "presidente".
7. ∴ CL acha que o correto é presidente e que "presidenta" é errado.
Se (1) é verdadeiro, CL tem todo o direito de (2), isto é, de querer ser chamada de "presidente". Vamos supor que (3) e (4) sejam verdade também. Mas não dá para concordar que a partir de (3) e (4) se conclua (5). Uma pessoa pode estudar e amar um assunto e ainda assim não conhecê-lo. É o que parece acontecer aqui.
Logo, a conclusão (5) é falsa. A premissa (6) também é falsa e nem depende de (5). E a conclusão é falsa também, principalmente pelo que se lê neste link.
Só podemos aceitar as conclusões de um argumento se aceitarmos suas premissas. No caso de Carmen Lúcia, como algumas de suas premissas são falsas, a sua conclusão implícita de que "o termo "presidenta" é errado" é falsa.
Mas o mais importante é que ela deve ser chamada da forma que quiser. Não vamos fazer como certos órgãos da imprensa brasileira que chamavam Dilma de "presidente" provavelmente apenas por ele ter expresso que queria ser chamada de "presidenta".
O professor Ruy de Queiroz (que foi meu orientador de mestrado na UFPE) faz um excelente trabalho de solicitar a seus alunos que editem/traduzam verbetes da Wikipédia. Abaixo a mensagem que acabo de receber dele.
Às vezes os alunos que fazem a disciplina Lógica para Computação se perguntam "Por que estudar Lógica?". Uma possível resposta está aqui.
Também é importante destacar as inúmeras aplicações da Lógica na Computação. Algumas aplicações são bem importantes, outras menos. Uma lista incompleta vai abaixo.
Toda linguagem de programação possui o tipo de dados booleano com dois valores: verdadeiro e falso.
Em Elixir, os nomes são true e false. Os conectivos são and, or e not. Você pode também usar &&, || e ! para trabalhar com valores truthy e falsy. Veja abaixo:
A linguagem C também trabalha com valores truthy e falsy. Por exemplo:
Sejam bem-vindos! Começamos as aulas de Lógica para Computação no Câmpus Curitiba da UTFPR na segunda semana de agosto de 2016.
Professor e Turmas
Neste semestre, eu, Adolfo Neto, lecionarei duas turmas:
A turma de calouros de Engenharia de Computação (44 alunos)
A turma de segundo período de Sistemas de Informação (44 alunos)
A turma de calouros de Engenharia de Computação será a última turma com o formato antigo da disciplina, com 4 horas-aula por semana, divididas em duas encontros semanais (no caso, terças e quintas-feiras). A turma de Sistemas de Informação terá apenas um encontro semanal com 3 horas-aula. A partir do semestre que vem, tanto Engenharia de Computação quanto Sistemas de Informação adotarão o mesmo formato com um encontro semanal de 3 horas-aula.
Planejamento
Disponibilizo nesta planilha o planejamento de aulas. Ele está neste momento ainda incompleto e em permanente construção. Acessem-o regularmente para mais informações.
Nestas páginas são divulgados alguns itens interessantes mas que em geral não são obrigatórios para a disciplina. Nada obrigatório estará apenas nestas páginas, ou seja, ninguém é obrigado a criar conta nestas redes. No caso do perfil no Twitter, a página é acessível sem que seja necessário criar conta no Twitter.
Contato
O contato com o professor da disciplina deve se dar por email, para uniformizar o atendimento.
Atendimento
A disciplina geralmente possui um monitor. A monitora é uma aluna que já foi aprovada na disciplina e que é responsável por ajudar os alunos atuais da disciplina. O monitor dispõe de horários de atendimento.
O professor também dispõe de horários de atendimento.
Em caso de dúvidas, você deve:
Expor sua dúvida ao professor no início da aula
Agendar um horário de atendimento com o professor por email
Procurar a monitora nos horários de atendimento deste
Os horários de atendimento do monitor e do professor serão informados nas primeiras semanas de aula.
Para a questão acima, não há resposta certa. Ou qualquer resposta está certa.
Por exemplo, eu posso esolher um padrão como: "a segunda coluna é maior do que a primeira e do que a segunda. A terceira é maior do que a primeira." Segundo este padrão, só a B está errada. Mas eu poderia ter inventado outro padrão. Este tipo de questão não faz sentido.
A aula de hoje foi minha última aula de Lógica para Computação no 1o. semestre (letivo) de 2012. Foi sobre Verificação de Programas. Os slides usados estão abaixo:
Além de apresentar os slides, gosto de, durante a aula, mostrar páginas relacionadas ao tema, para ilustrar o assunto.
Alguns dos links foram:
O que é especificação? por C.A.R. Hoare, em que ele diz que "Uma especificação é apenas um teste generalizado".Tony Hoare, para quem não sabe, é um dos vencedores do Prêmio Turing. Um Cientista da computação com grandes contribuições.
Software dá problema pois temos que escrever na linguagem que o computador entende. Que linguagem é essa? Você pode ter uma ideia lendo este texto sobre a atividade Computador a Papel.