Skip to content
Repositório de anotações de aulas e exercícios resolvidos
C++ Common Lisp Assembly C PureScript APL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
SI
books
exercises
research
.gitignore
.gitmodules
LICENSE.txt
README.org

README.org

study

Objetivo

O objetivo deste repositório é reunir, de forma organizada, todas as anotações de aulas e de exercícios resolvidos, ao longo do meu curso de Sistemas de Informação.

Este repositório deverá servir, para mim, como referências futuras que eu possa revisitar, assim como uma forma de praticar a minha organização das minhas notas de estudo.

Os exercícios aqui presentes não envolvem atividades pontuadas pelos professores, pura e simplesmente porque minha intenção não é facilitar o plágio, mas sim indexar minhas notas para meu uso próprio. Independente da forma como os arquivos deste repositório sejam distribuídos, desde já isento-me da responsabilidade sobre as informações nele contidas; dito isto, não tenho a pretensão ou a arrogância de afirmar a corretude dos textos e exercícios aqui listados.

A maioria ou todos os exercícios aqui presentes poderão, também, não incluir seus respectivos enunciados; também me comprometo a não redistribuir, aqui, nenhum dos materiais dos meus professores.

Um objetivo secundário é o aspecto da utilização de formatos e recursos abertos, ou de código-aberto, durante o curso de uma formação acadêmica na área da tecnologia. Ao realizar o uso de tecnologias abertas (exceto quando não houver outra saída senão utilizar uma tecnologia proprietária), pode-se reforçar os conceitos de flexibilidade e distribuição irrestrita de informação; desta forma, outros leitores não necessariamente precisarão, da mesma forma, de ferramentas fechadas e possivelmente restritas a alguns poucos sistemas, para lidar com problemas acadêmicos.

Conteúdo

A maior parte das informações aqui existentes estará escrita em texto plano, sob o formato Org, para melhor integração com o editor de texto Emacs. Trabalhos exigindo uma maior responsabilidade sobre a formatação estarão escritos em LaTeX; exercícios de linguagens de programação poderão estar escritos em pseudo- -código, ou na linguagem de programação estudada ou utilizada.

Todos os commits presentes neste repositório estarão digitalmente assinados por mim. Desta forma, acredito que posso atestar o fato de que as respostas para exercícios aqui descritas vieram de mim mesmo.

Relação de diretórios e atividades incluídas

Última atualização: [2019-08-13 ter]

SI

Exercícios feitos no curso de Sistemas de Informação. Nenhuma destas respostas tem a garantia de estar correta, e as respostas foram completamente feitas por mim.

  • 2018-2: Exercícios relacionados à faculdade, no segundo semestre de 2018.
    • AEDS I: Algoritmos e Estruturas de Dados I. Não necessariamente terminados.
    • Cálculo I: Alguns poucos documentos escritos em Org, servindo como resoluções de exercícios enviados via Moodle, na disciplina de Cálculo I.
  • 2019-1: Exercícios relacionados à faculdade, no primeiro semestre de 2019.
    • TC: Exercícios de Teoria da Computação.
    • AEDS2: Algoritmos e Estruturas de Dados II. Inclui notas de aulas e exercícios também.

exercises

Exercícios variados, não necessariamente relacionados a estudo. Para maiores informações, veja o README incluído nesta pasta.

research

Outros programas implementados com o intuito de pesquisa pessoal ou acadêmica.

  • ga: Implementação de um algoritmo genético simples baseado em um tutorial em Python. O algoritmo foi implementado em Common Lisp, utilizando um arquivo Org (ga.org) para programação literada. Exige o editor de textos Emacs para realizar entrelaçamento ou para execução dinâmica com o SLIME. Também inclui uma arquivo de código pós-entrelaçamento (ga.lisp) para acessibilidade.
  • neural-networks: Implementações de teste de redes neurais artificiais, feitas durante o aprendizado das mesmas, em C++ e JS.
  • asm: Aprendizado de Assembly em geral.
    • 68k: Notas e código produzido seguindo o tutorial de Assembly para Motorola 68k do Sega Genesis.
    • 65816: Notas e código produzido seguindo os tutoriais do Wikibooks de Assembly para o 65816 do Super Nintendo.

books

Exercícios variados de livros e afins.

sicp

Link direto para o repositório de exercícios do livro Structure and Interpretation of Computer Programs, de Abelson e Sussman.

land-of-lisp

Link direto para o repositório de exercícios do livro Land of Lisp, de Conrad Barski, M.D.

learn-apl

Arquivos relacionados à leitura de material para aprendizado da linguagem APL, em especial na APL Wiki.

little-mler

Arquivos relacionados à leitura e ao estudo do livro The Little MLer. Os exemplos utilizam OCaml ao invés de Standard ML; distinções são apontadas segundo necessário.

nand2tetris

Exercícios resolvidos do livro The Elements of Computing Systems, de Nisan e Schocken. Normalmente, não inclui os arquivos de testes do livro, que podem ser encontrados na distribuição do material eletrônico.

  • ch01: Implementação de chips básicos.
  • ch02: Implementação de meio-somador, somador; incrementador e somador de 16-bits; e finalmente, da unidade lógico-aritmética (ALU) da plataforma Hack.
  • ch03: Implementação de registrador, chips variados de memória, e do program counter (PC).
  • ch04: Auto-estudo. Réplica com ligeira modificação do programa em Assembly de exemplo do livro. Utilizado para melhor auto-conhecimento da linguagem de Assembly da plataforma Hack.
  • ch05: Implementação dos chips de memória (Memory) e do processador (CPU) da plataforma Hack, culminando em um chip representativo de uma máquina completa (Computer).
  • ch06: Implementação de um assembler capaz de gerar código de máquina para a arquitetura Hack. O trabalho foi feito em um repositório externo, que foi linkado como submódulo Git neste diretório.
  • ch07: Códigos Assembly gerados pela implementação inicial do tradutor da VM para a plataforma Hack. O projeto não foi incluído como submódulo neste diretório, pois não estava completo ainda Todavia, este estágio do projeto pode ser acompanhado na tag v0.5 do repositório do mesmo. A versão estável do software fica delegada para o capítulo 08.
  • ch08: Códigos assembly gerados pela implementação final do tradutor da VM para a plataforma Hack. O projeto final também suporta uma flag que inibe o código de bootstrap de ser injetado no cabeçalho do arquivo .asm final. Assim como no Capítulo 06, o VM Translator foi programado em um repositório externo, e linkado como submódulo Git no diretório deste capítulo.
  • ch09: Código Jack implementando um Campo Minado. É provável que o código não compile apropriadamente sob 32K, com o restante do sistema operacional a ser posteriormente desenvolvido. Todavia, os arquivos .vm gerados executam apropriadamente sob o VM Emulator incluído no material de apoio do livro.
  • custom-chips: Chips extras construídos por curiosidade. A maioria envolve estudos avulsos a respeito de circuitos integrados.

purescript-by-example

Projeto englobando arquivos escritos de acordo com o livro PureScript By Example, de Phil Freeman. Relação de módulos:

  • Chapter2: Exercícios do capítulo 2.
  • Data.AddressBook: Exercícios do capítulo 3.
  • Chapter4: Exercícios do capítulo 4.
  • Chapter5: Exercícios iniciais do capítulo 5.
    • Data.Picture: Exercícios finais do capítulo 5, contendo biblioteca de manipulação de figuras.

practical-common-lisp

Relação de arquivos criados ao ler o livro Practical Common Lisp, de Peter Seibel.

Licenciamento

Todo e qualquer código aqui escrito estará distribuído sob a Licença MIT, o que fomenta o compartilhamento da informação e do software livre. Os dados neste repositório podem ser redistribuídos, no entanto esta licença deverá ser seguida à risca. Se você quiser um melhor detalhamento desta licença, veja a página da mesma em escolhaumalicenca.com.br ou veja o arquivo LICENSE.txt.

You can’t perform that action at this time.