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.
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.
Última atualização: [2024-07-09 ter]
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.
2019-2
: Exercícios relacionados à faculdade, no segundo semestre de 2019.AEDS3
: Algoritmos e Estruturas de Dados III. Partes em destaque:avl
: Implementação de uma árvore AVL em literate programming. Fator de balanceamento não é armazenado nos nós.tp3-rbtree
: Implementação de uma árvore red-black em literate programming. Não inclui remoção de elementos.tp4-huffman
: Implementação de compactação de arquivos de texto através do algoritmo de Huffman. O arquivo binário será gerado ao final e pode ser descompactado também. Inclui ajuda via linha de comando, e foi igualmente feito com literate programming.
2020-5
: Exercícios relacionados à faculdade, no semestre emergencial de 2020, em meio à pandemia de COVID-19.BD1
: Bancos de Dados I. Inclui notas sobretudo relacionadas à sintaxe e ao uso de SQL. Também inclui uso de Docker para uso de SGBDs.POO
: Programação Orientada a Objetos. Inclui trabalhos da disciplina, feitos principalmente em Java.
2021-1
Exercícios relacionados à faculdade, no semestre 2021/1 (final de 2021), em meio à pandemia de COVID-19.BD2
: Bancos de Dados II. Inclui exercícios resolvidos e notas rápidas sobre sintaxe e uso de SQL, MariaDB/MySQL. Também inclui recursos para uso de Docker para uso de SGBDs, especialmente MySQL.IA
: Inteligência Artificial. Inclui exercícios resolvidos da disciplina em Python.
Exercícios variados, não necessariamente relacionados a estudo. Para maiores informações, veja o README incluído nesta pasta.
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, emC++
eJS
.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.
plan9
: Codigos feitos atraves do uso do sistema Plan 9 from Bell Labs.avltree
: Arvore AVL totalmente programada usando o editor Acme, feita em C para Plan 9.
psp
: Aprendizado de desenvolvimento para PlayStation Portable.
Exercícios variados de livros e afins.
Link direto para o repositório de exercícios do livro Structure and Interpretation of Computer Programs, de Abelson e Sussman.
Link direto para o repositório de exercícios do livro Land of Lisp, de Conrad Barski, M.D.
Arquivos relacionados à leitura de material para aprendizado da linguagem APL, em especial na APL Wiki.
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.
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.ch10
: Submódulo para implementação do analisador sintático do compilador de Jack. Assim como no caso do Assembler e do VM Translator, o projeto não foi incluído por ser grande demais e demandar manutenção em outro lugar. Você pode acompanhar este estágio do projeto na tag v0.5 do repositório.custom-chips
: Chips extras construídos por curiosidade. A maioria envolve estudos avulsos a respeito de circuitos integrados.
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.
Relação de arquivos criados ao ler o livro Practical Common Lisp, de Peter Seibel.
Notas e códigos relacionados ao livro Theorem Proving in Lean, de Avigad, Moura e Kong (2019).
Notas e códigos relacionados ao website The Power of Prolog.
Notas e resolução comentada para o livro xchg rax,rax
de xorpd
.
Cursos variados de várias plataformas.
Notas do Curso de Desenvolvimento para PlayStation usando MIPS Assembly & C do Gustavo Pezzi.
As anotações desse curso são bem pessoais e foram documentadas de acordo com o meu gosto. É provável que você tenha dificuldades em acompanhá-las.
Notas do Curso de Algoritmos de MACHINE LEARNING da Udemy. Use só como referência para data science e Python, mesmo.
Cursos de Docker e Docker Swarm da Alura.
Cursos de Kubernetes: Pods, Services e ConfigMaps e Deployments, Volumes e Escalabilidade na Alura.
Curso AZ-900: Microsoft Azure Fundamentals Exam Prep 2023 na Udemy.
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.