💻 01 Lógica de Programação

Navegação Rápida

Visão Geral da Disciplina

Disciplina introdutória e estruturante do núcleo de Computação e Telecomunicações. Estabelece os fundamentos teóricos e a prática de engenharia para a tradução de fenômenos físicos contínuos e problemas da Engenharia Elétrica em estruturas discretas de dados e algoritmos determinísticos. Adota a linguagem Python 3 sob a ótica da arquitetura de computadores de Von Neumann e do modelo de execução CPython. Abrange o ciclo completo de desenvolvimento de software: formalismo de algoritmos e critérios de Knuth, representação binária e padrão IEEE 754 de ponto flutuante, álgebra bitwise para telemetria de subestações, estruturas de controle condicional com avaliação de curto-circuito, métricas de confiabilidade de software via Complexidade Ciclomática de McCabe, laços iterativos e métodos numéricos de convergência quadrática (Newton-Raphson e True RMS), modularização funcional com registros de ativação e regras de escopo LEGB, culminando no domínio de coleções de dados (listas, tuplas, conjuntos e tabelas hash SipHash) aplicadas à formação da Matriz de Admitância Nodal ().


📌 Sumário do MOC

  1. 🎯 Matriz de Competências e Habilidades de Engenharia
  2. ⚡ Prontuário de Fórmulas e Modelos Matemáticos
  3. 🖼️ Galeria Técnica de Diagramas Esquemáticos (Catppuccin Mocha)
  4. 🎓 Grade de Aulas Padronizadas da Disciplina
  5. 📚 Acervo de Materiais Didáticos e Materiais Teóricos de Referência
  6. 🔗 Integração Interdisciplinar
  7. 📚 Bibliografia e Normas Técnicas

🎯 Matriz de Competências e Habilidades de Engenharia

Domínio de CompetênciaHabilidades Técnicas Desenvolvidas
Modelagem AlgorítmicaFormalização matemática de procedimentos técnicos sob os 5 postulados de Knuth; elaboração de fluxogramas normatizados pela norma ANSI X3.5; projeto de algoritmos com prova de invariantes de laço.
Arquitetura de ComputadoresCompreensão do ciclo de busca-decodificação-execução da CPU; cálculo da largura de banda do barramento e mitigação do gargalo de Von Neumann; operação interna do compilador e da máquina virtual CPython.
Aritmética Digital e Ponto FlutuanteAnálise de precisão numérica no padrão IEEE 754; prevenção de cancelamento catastrófico e dízimas periódicas binárias; manipulação de fasores no plano complexo e álgebra bitwise em registradores industriais.
Engenharia de Software e TestesCálculo da Complexidade Ciclomática de McCabe; planejamento de suítes de testes unitários para cobertura completa de caminhos básicos (branch coverage); eliminação de acoplamentos globais via modularização.
Computação Aplicada ao Setor ElétricoImplementação de solvers de convergência não-linear (Newton-Raphson); cálculo de valores eficazes True RMS e THD em sinais harmônicos; montagem de Matrizes de Admitância Nodal esparsas com tabelas hash.

⚡ Prontuário de Fórmulas e Modelos Matemáticos

Arquitetura de Barramento e Capacidade de Transferência

  • Largura de Banda Teórica de Barramento Síncrono: Onde é a frequência de clock do barramento e é a largura em bytes.

  • Ciclos de Espera da CPU (Wait States / Stalls):


Aritmética de Ponto Flutuante IEEE 754 e Tolerância de Erro

  • Valor Decimal Normalizado em Dupla Precisão (64 bits):

  • Épsilon da Máquina ():

  • Critério Normativo de Comparação Numérica Segura (PEP 485):


Complexidade Ciclomática e Grafo de Fluxo de Controle

  • Fórmula Fundamental de Thomas McCabe: Para uma função ou algoritmo conexo único (): Onde é o número de arestas de transição, é o número de blocos básicos (nós) e é a quantidade total de predicados condicionais binários simples.

Métodos Numéricos Iterativos e Medição de Sinais Discretos

  • Equação de Recorrência de Newton-Raphson:

  • Taxa de Convergência Quadrática do Erro:

  • Valor Eficaz Verdadeiro Discreto (True RMS com Amostras):

  • Potência Ativa Média Discreta:


Modelagem Eletroenergética Matricial ()

  • Sistema Nodal de Kirchhoff:

  • Auto-admitância da Barra (Diagonal Principal):

  • Admitância Mútua entre Barras e (Fora da Diagonal):


🖼️ Galeria Técnica de Diagramas Esquemáticos (Catppuccin Mocha)

A disciplina conta com 6 diagramas esquemáticos de padrão industrial, auditados com de conformidade em legibilidade e tipografia sem colisões de texto:

1. Arquitetura de Von Neumann e Fluxo de Execução do CPython 3

Subsistemas de CPU (UC, ULA, registradores), gargalo de barramento com a memória RAM e pipeline de compilação em bytecode (.pyc) e avaliação pela máquina virtual.


2. Tipos de Dados, Operadores Bitwise e Ponto Flutuante IEEE 754

Mapeamento de 64 bits do padrão IEEE 754 (sinal, expoente com viés e mantissa), causas da dízima periódica em base 2 e manipulação de máscaras bitwise em registradores de telemetria.


3. Estruturas Condicionais, Avaliação de Curto-Circuito e Complexidade de McCabe

Dinâmica de bifurcação de fluxo com curto-circuito lógico, grafo de fluxo de controle com cálculo de complexidade ciclomática () e casamento de padrões match-case.


4. Laços de Repetição, Invariantes e Métodos Numéricos de Convergência

Paradigmas iterativos (for vs while), método axiomático de prova de corretude por invariantes de laço e geometria de convergência quadrática de Newton-Raphson.


5. Pilha de Chamadas (Call Stack), Escopo LEGB e Recursão

Alocação de registros de ativação no Heap/Stack, dinâmica LIFO, resolução concêntrica de escopo LEGB e otimização de funções recursivas com memoização.


6. Estruturas de Dados: Listas, Tabelas Hash e Matriz de Admitância

Vetores dinâmicos contíguos de ponteiros, arquitetura compacta de dicionários com dispersão SipHash e formação esparsa da Matriz de Admitância Nodal em sistemas de potência.


🎓 Grade de Aulas Padronizadas da Disciplina

Aula 01 - Algoritmos, Representação e Estrutura Básica de Programas em Python

  • Tópicos: Definição formal de algoritmos e critérios de Knuth (Finitude, Definição, Entradas, Saídas, Efetividade), modelo físico de Von Neumann, ciclo de instrução da CPU, hierarquia piramidal de memória, fluxogramas normatizados ANSI X3.5, pipeline de compilação CPython (tokens, AST, bytecode .pyc, PVM baseada em pilha ceval.c), convenções PEP 8 e gerenciamento de memória por contagem de referências.
  • Artefato SVG Integrado: logica_aula01_arquitetura_von_neumann_fluxo_execucao_python.svg
  • Banco de Concursos: Questões analíticas sobre latência e determinismo temporal (C compilado vs CPython em relés de sobrecorrente ANSI 50), vazão de dados em concentradores de unidades fasoriais (PMU) e ciclo de vida de objetos com sys.getrefcount().

Aula 02 - Tipos Primitivos, Operadores Aritméticos, Relacionais e Lógicos

  • Tópicos: Sistema de tipagem dinâmica forte do Python, representação em ponto flutuante IEEE 754 de 64 bits (binary64), expoente com viés de 1023, mantissa de 52 bits, épsilon da máquina (), dízimas periódicas binárias e função math.isclose(), números complexos nativos (complex) aplicados a circuitos CA e fasores, e operadores bitwise (&, |, ^, ~, <<, >>) para manipulação de registradores Modbus.
  • Artefato SVG Integrado: logica_aula02_tipos_dados_bitwise_precisao_flutuante.svg
  • Banco de Concursos: Questões resolvidas sobre limites de precisão IEEE 754 e cancelamento catastrófico em matrizes de admitância, manipulação de palavras de status de disjuntores e semântica de divisão inteira com piso (//) e módulo (%) para números negativos.

Aula 03 - Estruturas de Decisão Condicional e Controle de Fluxo

  • Tópicos: Desvios condicionais if, elif e else, álgebra de predicados booleanos, dinâmica e prova de segurança da avaliação de curto-circuito (short-circuit evaluation), proteção contra divisão por zero e referências nulas, métrica de Complexidade Ciclomática de Thomas McCabe (), planejamento de suítes de teste de caminhos básicos, e casamento de padrões estrutural (Structural Pattern Matching via match-case - PEP 634).
  • Artefato SVG Integrado: logica_aula03_estruturas_decisao_tabelas_verdade_complexidade.svg
  • Banco de Concursos: Cálculo de complexidade ciclomática em relés direcionais de sobrecorrente (ANSI 67), otimização de predicados lógicos em sistemas SCADA e simplificação de expressões booleanas via Leis de De Morgan.

Aula 04 - Estruturas de Repetição, Laços Determinados e Indeterminados

  • Tópicos: Laços determinados for e protocolo de iteração (__iter__, __next__, StopIteration), gerador aritmético de memória constante range(), laço condicional while, comandos break e continue, semântica da cláusula else em laços de varredura, prova formal de programas através da teoria da Invariante de Laço (Inicialização, Manutenção, Terminação), algoritmo de Newton-Raphson com dedução de convergência quadrática, e cálculo digital de valor eficaz True RMS e THD.
  • Artefato SVG Integrado: logica_aula04_lacos_repeticao_invariantes_convergencia_numerica.svg
  • Banco de Concursos: Análise de convergência de Newton-Raphson em barras de carga PQ, prova formal de invariante em rastreadores de máxima potência MPPT fotovoltaicos e armadilhas da cláusula else em laços de proteção.

Aula 05 - Modularização, Funções, Parâmetros e Escopo de Variáveis

  • Tópicos: Arquitetura de software modular, funções como cidadãos de primeira classe, Type Hints (PEP 484), parâmetros posicionais, nomeados e valores padrão, armadilha clássica do default mutável (lista=None), registros de ativação e mecânica da pilha de chamadas (Call Stack), hierarquia de escopo LEGB (Local, Enclosing, Global, Built-in), palavras-chave global e nonlocal, passagem por atribuição de objeto (Call-by-Object-Reference), e recursão com memoização (@lru_cache).
  • Artefato SVG Integrado: logica_aula05_pilha_chamadas_escopo_legb_recursao.svg
  • Banco de Concursos: Efeitos colaterais por mutabilidade de listas em simulações elétricas, variáveis nonlocal em closures de filtros integradores digitais e análise de profundidade máxima de pilha versus programação dinâmica.

Aula 06 - Estruturas de Dados Homogêneas e Heterogêneas (Listas, Tuplas e Dicionários)

  • Tópicos: Vetores dinâmicos contíguos de ponteiros (list), sobrealocação geométrica e custo amortizado de append(), tuplas imutáveis e hashability, tabelas de dispersão compactas (dict), função criptográfica SipHash com semente aleatória (PEP 456), resolução de colisões por endereçamento aberto perturbado, teoria de conjuntos (set) para detecção de ilhamento elétrico, e modelagem da Matriz de Admitância Nodal () esparsa com redução de mais de no consumo de memória.
  • Artefato SVG Integrado: logica_aula06_estruturas_dados_tabelas_hash_matriz_admitancia.svg
  • Banco de Concursos: Amortização Big-O em vetores dinâmicos de amostras de transitórios, ataques de negação de serviço por colisão de hash em sistemas SCADA e dimensionamento esparso de topologia de redes elétricas de grande porte.

📚 Acervo de Materiais Didáticos e Materiais Teóricos de Referência

A disciplina conta com 12 arquivos originais de referência arquivados no repositório local:

  • Base Computacional (Apostila 01 - Fundamentos de Arquitetura e Representação de Dados)
  • Estrutura básica de um programa em Python (Apostila 02 - Sintaxe, Variáveis e Operadores)
  • Estruturas de decisão e de repetição em Python (Apostila 03 - Controle de Fluxo e Laços)
  • Modularização e uso de bibliotecas do Python (Apostila 04 - Funções, Escopo e Módulos)
  • Estruturas de dados básicas do Python (Apostila 05 - Listas, Tuplas, Dicionários e Tabelas Hash)
  • Aula 01 lógica de programação (Slides 01 - Introdução aos Algoritmos e Python)
  • Aula 02 lógica de programação (Slides 02 - Variáveis e Operações Matemáticas)
  • Aula 03 lógica de programação (Slides 03 - Tomada de Decisão e Condicionais)
  • Aula 04 Lógica de programação (Slides 04 - Estruturas de Repetição: For e While)
  • Aula 05 Lógica de programação (Slides 05 - Modularização com Funções)
  • Aula 06 Lógica de programação (Slides 06 - Vetores e Matrizes para Sistemas Elétricos)
  • Aula 07 Lógica de programação (Slides 07 - Aplicações Práticas e Projeto Integrador)

🔗 Integração Interdisciplinar

graph TD
    A["01 Lógica de Programação"] --> B["02 Pensamento Computacional"]
    A --> C["03 Programação Aplicada a Sistemas Elétricos"]
    A --> D["05 Microprocessadores"]
    A --> E["06 Projetos e Códigos Arduino"]
    A --> F["07 Planejamento e Análise de Sistemas de Energia Elétrica"]

    B -.->|"Abstração, decomposição, grafos e algoritmos"| A
    C -.->|"Linguagem C, microcontroladores, ponteiros e registradores"| A
    D -.->|"Assembly, pipeline RISC, interrupções e conversor A/D"| A
    E -.->|"Firmware C++, IHM, sensores industriais e pontes H"| A
    F -.->|"Matrizes Ybus, fluxo de potência Newton-Raphson e contingências"| A

📚 Bibliografia e Normas Técnicas

  1. KNUTH, Donald E. The Art of Computer Programming, Volume 1: Fundamental Algorithms. 3. ed. Boston: Addison-Wesley, 1997.
  2. CORMEN, Thomas H. et al. Algoritmos: Teoria e Prática. 3. ed. Rio de Janeiro: Elsevier, 2012.
  3. TANENBAUM, Andrew S.; AUSTIN, Todd. Organização Estruturada de Computadores. 6. ed. São Paulo: Pearson, 2013.
  4. LUTZ, Mark. Learning Python: Powerful Object-Oriented Programming. 5. ed. Sebastopol: O’Reilly Media, 2013.
  5. ABNT NBR 5410:2004 (Versão Corrigida 2008): Instalações Elétricas de Baixa Tensão. Rio de Janeiro: ABNT, 2008.
  6. IEEE Std 754-2008: IEEE Standard for Floating-Point Arithmetic. New York: IEEE Computer Society, 2008.
  7. IEEE Std 1459-2010: IEEE Standard Definitions for the Measurement of Electric Power Quantities. New York: IEEE, 2010.
  8. GRAINGER, John J.; STEVENSON, William D. Power System Analysis. New York: McGraw-Hill, 1994.