A => .gitignore +2 -0
@@ 1,2 @@
+result
+src/**/*.pdf
A => flake.lock +43 -0
@@ 1,43 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "locked": {
+ "lastModified": 1648297722,
+ "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1648390671,
+ "narHash": "sha256-u69opCeHUx3CsdIerD0wVSR+DjfDQjnztObqfk9Trqc=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
A => flake.nix +66 -0
@@ 1,66 @@
+{
+ description = "Notas de aula no BSI em 2022/1";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ flake-utils.url = "github:numtide/flake-utils";
+ };
+
+ outputs = { self, nixpkgs, flake-utils }:
+ let
+ name = "notas-2022-1";
+ overlay = final: prev:
+ {
+ ${name} = final.stdenv.mkDerivation {
+ inherit name;
+ src = ./.;
+ buildInputs = with final; [ pandoc texlive.combined.scheme-small ];
+ buildPhase = ''
+ # Build markdowns into pdf
+ for source in src/*.md; do
+ pandoc "$source" -o "''${source%.*}.pdf"
+ done
+ '';
+ installPhase = ''
+ mkdir -p $out
+ cp -r src/*.pdf $out
+ '';
+ };
+ };
+ overlays = [ overlay ];
+ in
+ {
+ inherit overlay overlays;
+ } //
+ (flake-utils.lib.eachDefaultSystem
+ (system:
+ let
+ pkgs = import nixpkgs { inherit system overlays; };
+ watchdoc = pkgs.writeShellScriptBin "watchdoc" ''
+ watch_file() {
+ while true; do
+ pandoc "$1" -o "$2"
+ inotifywait -e modify "$1" &> /dev/null
+ done
+ }
+
+ for source in src/*.md; do
+ watch_file "$source" "''${source%.*}.pdf" &
+ done
+
+ wait
+ '';
+ in
+ rec {
+ # nix build
+ packages.${name} = pkgs.${name};
+ defaultPackage = packages.${name};
+
+ # nix develop
+ devShell =
+ pkgs.mkShell {
+ inputsFrom = [ defaultPackage ];
+ buildInputs = [ watchdoc ];
+ };
+ }));
+}
A => src/ia.md +41 -0
@@ 1,41 @@
+# SSC0530 - Inteligência Artificial (2022/1)
+## Aula 1 - 22/03
+
+### Objetivos da disciplina
+- Prover entedimento de conceitos de auto nível envolvidos em programação declarativa (prolog)
+- Conceitos de aquisição e representação de conhecimento
+- Técnicas de desenvolvimento de algoritmos de busca cega e heurística
+- Técnicas básicas simbólicas e conexionistas de IA
+
+### Prolog
+Baseada em fatos e regras. Declarações.
+
+#### Fatos
+```prolog
+mulher(maria).
+filho(joao, maria).
+```
+
+#### Regras
+```prolog
+mae(x, y) :- mulher(x), filho(y, x).
+```
+
+#### Queries
+```prolog
+?- mae(maria, x).
+```
+## Aula 2
+Tópicos:
+- IA no dia a dia
+- O que é IA
+- História da IA
+- Inteligência e Aprendizazdo
+- Engenharia de COnhecimento e SBC
+- Aprendizazdo de Máquina
+- Dado, Informação e Conheciento
+
+Palavras chaves que lembro da aula:
+- n-gram
+- tokenização
+- recente: deep learning
A => src/lab-bd.md +16 -0
@@ 1,16 @@
+# SSC0541 - Laboratório de Bases de Dados (2022/1)
+
+## Aula 1 - 30/03
+
+### Classificação dos Modelos de Dados
+- Modelos Conceituais:
+ - São empregados antes dos demais, durante o desenvolvimento de um sistema,
+ pois destinam-se ao projeto sistema. São usados para produzir o Projeto
+ Conceitual.
+ - Modelo Entidade Relacionamento
+- Modelos Físicos:
+ - São concebidos para efetivamente executar as operações de acesso e
+ manipulação de dados em um Sistema de Gerenciamento de Bases de Dados, e
+ para que sobre eles possam ser implementadas as aplicações.
+ - São usados para produzir o Projeto Lógico e o Projeto Físico
+
A => src/redes.md +17 -0
@@ 1,17 @@
+# SSC0540 - Redes de Computadores (2022/1)
+
+## Aula 1 - 22/03
+
+### Objetivos da Disciplina
+- Conceitos de redes de computadores, incluindo:
+ - Protocolos de aplicação, transporte, rede e enlace
+ - Software e hardware de redes de computadores
+ - Exercícios e laboratórios de redes
+ - Fundamentos de redes de computadores:
+ - Camada de aplicação
+ - Camada de transporte
+ - Camada de rede
+ - Camada de enlace
+ - O que é uma rede de computadores?
+ - Como é que funciona a internet?
+ - Qual é a estrutura da internet?
A => src/seminarios-i.md +13 -0
@@ 1,13 @@
+# SSC576 - Seminários em Computação I (2022/1)
+## Aula 1 - 23/03
+
+### Objetivos
+- Apresentção de conteúdos de computação por meio de seminários.
+- Despertar interesse dos alunos nas mais diversas áreas de atuação profissional
+- Desenvolver capacidade de investigação de aprendizado de temas mais sofisticados
+- Promover iniciativas para encaminhamento em atividades extra-curriculares
+
+### Critérios de avaliação
+- Artigo em formato científico
+ - Formato IEEE, no máximo 10 páginas.
+ - Tema escholido a partir de um ou mais seminários apresentado
A => src/teste-e-validacao.md +87 -0
@@ 1,87 @@
+# SSC0959 - Teste e Inspeção de Software
+
+## Teste de Software: Conceitos básicos
+
+### Conceitos básicos
+- Verificação, Validação, Teste Software, Inspeção de Software
+- Oráculo de Teste
+- Técnica de Teste e critério de Teste
+- Engano, defeito, bug, erro, falha
+- Teste de unidade e de integração
+- Teste de sistemas (maior que integração) e de aceitação
+- Teste de regreção
+- Correção coincidente
+
+
+### Teste de software
+- Atividade dinamica
+- Verifica se o software apresenta o comportamento esperado
+- Intenção de revelar defeitos novos
+
+> "Teste é o processo de executar um programa ou sistema com a intenção de
+> encontrar erros" (Myers, 1979)
+
+### Verificação e Validação
+- Validação
+ - Estamos construindo o sistema correto?
+
+ > "Processo de avaliar o software ao final do seu processo de
+ > desenvolvimento para garantir que está de acordo com o pretendido"
+
+- Verificação
+ - Estamos construindo corretamente o sistema?
+
+ > "Processo para determinar se os produtos de uma determinada fase de
+ > desenvolvimento satisfazem os requisitos estabelecidos na fase anterior"
+
+### Fases do Teste de Software: O que testar?
+`Diagrama de desenvolvimento V aqui`
+
+### Teste de Software: Como medir o progresso?
+- **Técnicas** e **critérios** de teste sistematizam a atividade de teste
+ - Ajudam a decidir - *quando parar de testar*
+ - Oferecem uma **medida** de atividade
+
+- Critérios de teste
+ - Vinculados a uma determinada técnica de teste
+ - Sistematizam a forma como os **requisitos de teste** devem ser produzidos
+ a partir da fonte de informação
+ - Ajudam a decidir quando parar os testes
+
+- Técnicas de teste
+ - Definida pelo tipo de informação utilizada para realizar o teste
+ - Ex: Caixa-preta e Caixa-branca
+
+- Técnicas e critérios de teste são complementares!
+ - Utilizar mais de um para garantir maior abrangência do teste
+
+### Limitações da atividade de teste
+- Corretitude de programas
+ - Nescessidade de um **oráculo** de teste
+- Equivalência de programas
+- Executabilidade
+- Correção coincidente
+
+### O que é um caso de teste?
+- Par ordenado `(d; S(d))` no qual `d` é um elemento pertencente ao domínio de entrada de `D` e `S(d)` corresponde a sua respectiva saída esperada
+- Ordem de execução é definida no projeto de casos de teste:
+ - Casos de teste em cascata (especialmente casos de sistema)
+ - Casos de teste independentes
+
+### Terminologia
+- Defeito X Erro X Falha
+ - **Engano** -> introduz **Defeito** -> produz **Erro** -> propaga **Erro** e **Falha** (nem sempre)
+
+- Defeito: Passo, processo ou definição de dados incorreto, incompleto, ausente, ou extra que, ao ser executado, **pode produzir um erro no programa**.
+ - Defeito de omissão
+ - Exemplo: Esquecer um comando
+ - Defeito de comissão
+ - Exemplo: Um comando que utiliza valor incorreto
+
+- Erro: Ocorre quando um **defeito é executado** e um *estado incorreto* é atingido.
+ - Qualquer estado na execução do programa que seja inconsistente com o esperado
+ - Erro computacional
+ - Erro de domínio
+- Falha: Evento *notável* em que o sistema viola a sua especificação
+ - Produção de uma *saída incorreta* em relação à especificação
+ - Importante: **nem todo erro leva a uma falha**