Nesse repositório irei detalhar alguns temas e matérias que estudei no curso de ciências da computação, que graças a Deus hoje já me formei, afim de te ajudar com temas complexos e considerados difíceis desde a base de tudo como matemática e cálculos a algoritmos e estrutura de dados em teoria, linguagens formais e autômatos, conceitos de Segurança da Informação e hacking 😉
Ciência da computação, o estudo decomputadores e computação, incluindo seus fundamentos teóricos e algorítmicos, hardware e software, e seus usos para processamento de informações. A disciplina de ciência da computação inclui o estudo de algoritmos e estruturas de dados, design de computadores e redes, modelagem de dados e processos de informação e inteligência artificial. A ciência da computação extrai alguns de seus fundamentos da matemática e da engenharia e, portanto, incorpora técnicas de áreas como teoria de filas, probabilidade e estatística e eletrônica. Projeto de circuito. A ciência da computação também faz uso intenso de testes de hipóteses e experimentação durante a conceituação, projeto, medição e refinamento de novos algoritmos, estruturas de informação e arquiteturas de computador. A ciência da computação é considerada como parte de uma família de cinco disciplinas separadas, mas inter-relacionadas: engenharia da computação, ciência da computação, sistemas de informação, tecnologia da informação e engenharia de software.
A ciência da computação surgiu como uma disciplina independente no início da década de 1960, embora acomputador digital que é objeto de seu estudo foi inventado cerca de duas décadas antes. As raízes da ciência da computação estão principalmente nos campos relacionados da matemática , engenharia elétrica, física e sistemas de informações gerenciais.
Intimamente relacionado a este campo está o projeto e análise de sistemas que interagem diretamente com usuários que estão realizando diversas tarefas computacionais. Esses sistemas passaram a ser amplamente utilizados durante as décadas de 1980 e 1990, quando as interações editadas por linha com os usuários foram substituídas porinterfaces gráficas de usuário (GUIs). O design de GUI, que foi iniciado pela Xerox e mais tarde adotado pela Apple (Macintosh) e finalmente pela Microsoft ( Windows ), é importante porque constitui o que as pessoas veem e fazem quando interagem com um dispositivo de computação. O design de interfaces de usuário apropriadas para todos os tipos de usuários evoluiu para o campo da ciência da computação conhecido como interação humano-computador (HCI).
O campo da arquitetura e organização de computadores também evoluiu dramaticamente desde que os primeiros computadores com programas armazenados foram desenvolvidos na década de 1950. Os chamados sistemas de compartilhamento de tempo surgiram na década de 1960 para permitir que vários usuários executassem programas ao mesmo tempo a partir de diferentes terminais conectados ao computador. A década de 1970 viu o desenvolvimento da primeira grande árearedes de computadores (WANs ) e protocolos para transferência de informações em alta velocidade entre computadores separados por grandes distâncias. À medida que essas atividades evoluíram, elas se fundiram no campo da ciência da computação chamado redes e comunicações. Uma grande conquista deste campo foi o desenvolvimento doInternet.
A ideia de que instruções, assim como dados, poderiam ser armazenados na memória de um computador foi fundamental para descobertas fundamentais sobre o comportamento teórico dealgoritmos . Ou seja, perguntas como: “O que pode/não pode ser computado?” foram formalmente abordados usando essas idéias abstratas. Essas descobertas foram a origem do campo da ciência da computação conhecido como algoritmos e complexidade.
Uma parte fundamental deste campo é o estudo e aplicação de estruturas de dados apropriadas para diferentes aplicações.As estruturas de dados , juntamente com o desenvolvimento de algoritmos ideais para inserir, excluir e localizar dados em tais estruturas, são uma grande preocupação dos cientistas da computação porque são muito usadas em software de computador, principalmente em compiladores, sistemas operacionais, sistemas de arquivos, e motores de busca .
Na década de 1960, a invenção doo armazenamento em disco magnético forneceu acesso rápido a dados localizados em um local arbitrário no disco. Esta invenção levou não apenas a sistemas de arquivos projetados de forma mais inteligente, mas também ao desenvolvimento de sistemas de banco de dados e de recuperação de informações, que mais tarde se tornaram essenciais para armazenar, recuperar e transmitir grandes quantidades e amplas variedades de dados pela Internet. Este campo da ciência da computação é conhecido como gestão da informação.
Outro objetivo de longo prazo da pesquisa em ciência da computação é a criação de máquinas de computação e dispositivos robóticos que possam realizar tarefas que normalmente são consideradas como exigindo inteligência humana . Tais tarefas incluem mover, ver, ouvir, falar, entender a linguagem natural, pensar e até mesmo exibir emoções humanas . O campo da ciência da computação de sistemas inteligentes, originalmente conhecido comointeligência artificial (IA), na verdade antecede os primeiros computadores eletrônicos na década de 1940, embora o termo inteligência artificial não tenha sido cunhado até 1956.
Três desenvolvimentos na computação no início do século XXI: computação móvel,Computação cliente-servidor e hacking de computadores — contribuíram para o surgimento de três novos campos na ciência da computação: desenvolvimento baseado em plataforma, computação paralela e distribuída e segurança e garantia da informação . O desenvolvimento baseado em plataforma é o estudo das necessidades especiais de dispositivos móveis, seus sistemas operacionais e seus aplicativos. A computação paralela e distribuída diz respeito ao desenvolvimento de arquiteturas e linguagens de programação que suportam o desenvolvimento de algoritmos cujos componentes podem ser executados simultaneamente e de forma assíncrona (em vez de sequencialmente), a fim de fazer melhor uso do tempo e do espaço. A segurança e a garantia da informação lidam com o design de sistemas de computação e software que protegem a integridade e a segurança dos dados, bem como a privacidade dos indivíduos que são caracterizados por esses dados.
- CS50 PT-BR - Harvard University
- CS50 EN-US - Harvard University
- CS50's Introduction to Computer Science - 2024
- Computer Science 101 - Stanford School of Engineering
- Introduction to Internet of Things - Stanford
- Databases: Relational Databases and SQL - Stanford
- Cryptography I - Stanford
- Introduction to Statistics - Stanford
- Machine Learning Specialization - Stanford
- GIT
- Sistemas Operacionais
- Linux - Windows e Mac
- HTML, CSS e JavaScript
- Algoritmos Basicos
- POO
- Cálculo
- Álgebra
- Álgebra linear
- Matemática e Estatística
- Teoria dos Grafos
- Matemática estocástica
- Fisica
- Cálculo tensorial
- The Mythical Man-Month
- The Art of Computer Programming
- Computer Networks - Tenenbaum
- Introduction to Algorithms by Thomas H. Cormen
- The Pragmatic Programmer
- Compilers: Principles, Techniques, and Tools
- Extreme Programming Explained
- Java: How To Program, Early Objects
- Computer Organization and Architecture
- Algorithms to Live By: The Computer Science of Human Decisions
- Clean Code
- Engineering a Compiler
- Machine Learning Pocket Reference: Working with Structured Data in Python
- Pentest
- Cybersecurity by IBM
- What is cybersecurity?
- How to create a computer virus in Python
- Make a Self-Replicating Virus in Python | For Education Purposes Only
- Python bcrypt
- How to boot, shut down, and suspend your system
- Python 3 "Black Hat Python" Source Code
- MBConf v1 - Introdução ao hardware hacking
- Manifesto para Desenvolvimento Ágil de Software
- Esqueça Metodologias "Ágeis" | [Rated R] por Fabio Akita do canal @FabioAkita no youtube
- Git Stash
- Entendendo GIT | (não é um tutorial!) - Video
- Usando Git Direito | Limpando seus Commits! - Video
- 13 Advanced (but useful) Git Techniques and Shortcuts
- Advanced Git
- git-rebase
- Computing Machinery and Intelligence
- The ‘Obfuscated C Code’ Competition Returns
- Entendendo algoritmo RSA
- Hash: o que são e como funcionam
- Como comprar/vender BTC no P2P com privacidade usando a BISQ
- Spectre
| Categoria | Item | Descrição resumida |
|---|---|---|
| Alta Disponibilidade & Resiliência | Balanceamento de carga | Distribuição de requisições entre múltiplos servidores. |
| Sistema de alta disponibilidade | Arquiteturas que evitam indisponibilidade. | |
| Tolerância a falhas | Capacidade de continuar operando após falhas. | |
| Tolerância a falhas em Hardware | Redundância de componentes físicos. | |
| Tolerância a falhas em Software | Mecanismos de fallback e recuperação. | |
| Degradação graciosa | Manter funções básicas em caso de falha parcial. | |
| Cluster | Conjunto de máquinas atuando como um único sistema. | |
| Uptime | Tempo de atividade contínua de um sistema. | |
| Hot swapping | Troca de componentes sem desligar o sistema. | |
| Redundância modular tripla | Uso de três sistemas para tolerar falha de um. | |
| Alimentação ininterrupta (UPS) | Fonte alternativa de energia. | |
| Torre de servidores | Infraestrutura física de servidores. | |
| Replicação de dados | Cópia redundante de informações. | |
| Mirror (computação) | Espelhamento de discos ou sistemas. | |
| Cópia instantânea de volume | Snapshots para recuperação rápida. | |
| DNS Round-robin | Balanceamento simples via DNS. | |
| Multiple Spanning Tree Protocol | Resiliência em redes. | |
| Spanning Tree Protocol | Evita loops em redes Ethernet. | |
| Processamento de transação | Garante consistência em sistemas críticos. | |
| Consenso distribuído | Algoritmos de coordenação (Paxos, Raft, Zab). | |
| Autoestabilização | Capacidade de recuperação sem intervenção. | |
| Sistema com paragem segura | Interrupção segura em falhas críticas. | |
| Sistema de falha segura | Projetado para falhar de forma não catastrófica. | |
| Sistema com avaria silenciosa | Erros não perceptíveis que comprometem confiabilidade. | |
| Ponto de verificação de aplicativo | Checkpoints para retomar operações. | |
| Ponto único de falha | Elemento crítico cuja falha afeta todo o sistema. | |
| Recuperação de desastres | Estratégias para restaurar serviços após incidentes. | |
| Chaos Engineering | Testes intencionais de falhas em produção. | |
| Site Reliability Engineering (SRE) | Disciplina de confiabilidade operacional (Google). | |
| Arquitetura antifrágil | Sistemas que se fortalecem sob falhas. | |
| Eventual Consistency | Modelo de consistência em sistemas distribuídos. | |
| CAP Theorem | Trade-off entre consistência, disponibilidade e tolerância à partição. | |
| Falhas e Erros Computacionais | Falha (tecnologia) | Interrupção inesperada de funcionamento. |
| Bug F00F do Pentium | Erro de CPU que travava o processador. | |
| Travamento | Estado em que o sistema não responde. | |
| Defeito de ponto flutuante | Erro em cálculos de precisão. | |
| Estouro de pilha | Overflow causado por excesso de chamadas recursivas. | |
| Divisão por zero | Operação inválida em aritmética. | |
| Problema do ano 2000 | Bug relacionado à representação de datas. | |
| Problema do ano 2038 | Overflow de datas em sistemas 32 bits. | |
| Falha de segmentação | Acesso inválido à memória. | |
| Heap overflow | Estouro de memória dinâmica. | |
| Kernel panic | Falha crítica do sistema operacional. | |
| Tela azul da morte | Erro fatal do Windows. | |
| Tela vermelha da morte | Erro crítico exibido em algumas plataformas. | |
| Glitch Art | Uso estético de erros em mídia digital. | |
| MissingNo. | Bug famoso no jogo Pokémon. | |
| Problema do clique | Fenômeno de falhas de disco rígido. | |
| Race Condition | Erros por concorrência em sistemas paralelos. | |
| Deadlock | Estado em que processos esperam indefinidamente. | |
| Livelock | Processos ativos mas sem progresso. | |
| Bit rot | Degradação de dados em mídias físicas. | |
| Heisenbug | Bug que desaparece ao ser depurado. | |
| Bohrbug | Bug estável e previsível. | |
| Mandelbug | Bug caótico e imprevisível. | |
| Vulnerabilidades & Segurança | Heartbleed | Vulnerabilidade no OpenSSL. |
| HTTP 403 | Acesso proibido. | |
| HTTP 404 | Recurso não encontrado. | |
| Criptografia baseada em Hash | Segurança via funções hash. | |
| OCSP (Online Certificate Status Protocol) | Verificação de certificados em tempo real. | |
| ICAP (Internet Content Adaptation Protocol) | Filtragem e modificação de conteúdo HTTP. | |
| Engenharia de segurança | Planejamento de segurança em sistemas. | |
| Ataques side-channel | Exploram vazamentos físicos (energia, tempo). | |
| Homomorphic Encryption | Criptografia que permite cálculos sobre dados cifrados. | |
| Zero-Knowledge Proofs | Autenticação sem revelar informação. | |
| Secure Enclave / TPM | Hardware seguro para criptografia. | |
| Supply Chain Attack | Comprometimento de bibliotecas ou dependências. | |
| Engenharia social | Ataques baseados em manipulação humana. | |
| Segurança em IoT | Fragilidades de dispositivos conectados. | |
| Códigos de Detecção e Correção de Erros | Detecção e correção de erros | Técnicas para garantir integridade de dados. |
| Código alternante | Forma simples de detecção. | |
| Código binário de Golay | Código corretor de erros. | |
| Código de correção de erro | Família de métodos para correção. | |
| Código Reed–Solomon | Usado em CDs, DVDs, QR Codes. | |
| Go-Back-N ARQ | Protocolo de retransmissão. | |
| Longitudinal Redundancy Check | Detecção de erros em blocos. | |
| Paridade (telecomunicações) | Bit de verificação simples. | |
| Procedimento de Chien | Algoritmo de correção de códigos Reed-Solomon. | |
| Soma de verificação | Método de validação de integridade. | |
| Hamming Code | Correção de erro em transmissões digitais. | |
| LDPC Codes | Códigos modernos de alta eficiência. | |
| Turbo Codes | Usados em comunicações de satélite e 4G. | |
| Protocolos de Rede | Protocolos da Internet | Conjunto de padrões fundamentais. |
| Password authentication protocol (PAP) | Autenticação simples em redes. | |
| Path MTU Discovery | Descobre o tamanho máximo de pacote. | |
| Pfsync | Sincronização de estados de firewall. | |
| Pichat | Protocolo experimental de chat. | |
| Picture Transfer Protocol (PTP) | Transferência de imagens digitais. | |
| Porta (redes de computadores) | Identificação de serviços em TCP/UDP. | |
| Power Over Ethernet (PoE) | Alimentação elétrica via cabo de rede. | |
| Precision Time Protocol (PTP) | Sincronização de relógios em rede. | |
| Protocolo binário SiRF | Comunicação GPS. | |
| Protocolo de mapeamento de portas NAT | Tradução de endereços e portas. | |
| Protocolo de recuperação de informações privadas | Segurança e privacidade em redes. | |
| Protocolo sem estado | Protocolos que não guardam contexto. | |
| Protocolo Stellar | Voltado para pagamentos distribuídos. | |
| QUIC | Protocolo da Google para reduzir latência. | |
| gRPC | RPC eficiente sobre HTTP/2. | |
| BGP | Roteamento entre sistemas autônomos. | |
| OSPF | Roteamento interno em redes grandes. | |
| VXLAN | Rede virtual sobrepostas em datacenters. | |
| MQTT | Protocolo leve para IoT. | |
| Incidentes Históricos | Incidente do alarme de mísseis falso (1983) | Erro de detecção que quase gerou conflito nuclear. |
| Stuxnet (2010) | Malware direcionado a sistemas industriais. | |
| Blackout da AWS (2017) | Interrupção global causada por erro humano. | |
| NotPetya (2017) | Ransomware destrutivo. | |
| Cloudflare Global Outage (2020) | Falha em sistema de roteamento. | |
| Colonial Pipeline Attack (2021) | Ataque de ransomware afetando infraestrutura crítica. |



