Proyecto de CircuitVerse

Esta página contiene los detalles de un proyecto de redacción técnica aceptado para la temporada de Documentos de Google.

Resumen del proyecto

Organización de código abierto:
CircuitVerse
Escritor técnico:
dvls
Nombre del proyecto:
Consolidación y mejoras de las carteras interactivas de CircuitVerse
Duración del proyecto:
Duración estándar (3 meses)

Project description

1 resumen

CircuitVerse es un proyecto de código abierto que tiene como objetivo proporcionar una plataforma en la que los circuitos se puedan diseñar y simular con una interfaz gráfica de usuario basada en la Web. El simulador lógico se puede usar para diseñar hasta implementaciones de CPU completas, aunque está diseñado principalmente para uso educativo. Además de la documentación técnica del software, hay un libro interactivo en línea que guía al usuario en el aprendizaje del diseño lógico digital. El libro permite que el usuario pruebe circuitos directamente desde él para obtener una experiencia interactiva.

El libro se encuentra en una etapa temprana de desarrollo y actualmente carece de algunas secciones relevantes. La estructura general está amplia en términos de un flujo que conecta las diferentes secciones y requiere un contenido más detallado. Además, según la organización, no hay lineamientos para ayudar a los colaboradores a colaborar en el proyecto ni un plan o una hoja de ruta para guiar las contribuciones sobre qué contenidos son necesarios y con qué prioridad.

Los objetivos de esta propuesta son colaborar con los mentores para crear pautas de contribución, producir un plan de desarrollo de temas y contribuir a mejorar el contenido actual, así como crear nuevo contenido de acuerdo con el plan de desarrollo.

2 El estado actual del libro interactivo

Desde que se inició el proyecto en Google Summer of Code 2019, se presentó un "crecimiento no administrado", con la ayuda de la comunidad de estudiantes. La organización del proyecto está formada principalmente por desarrolladores, por lo que formaron parte de GSoD en busca de ayuda externa para mejorar el libro interactivo. Los desarrolladores del proyecto identificaron que, actualmente, el libro requiere la reescritura de algunas secciones, la adición de contenido nuevo y la posibilidad de hacerlo más detallado y completo. Además, el equipo espera tener, después de GSoD, lineamientos para las nuevas contribuciones, así como un "plan maestro" general para el desarrollo de contenido.

3 ¿Cuál es la contribución de esta propuesta?

Esta propuesta contribuirá a la creación conjunta de una primera versión de los lineamientos para contribuciones, con el objetivo de garantizar un proceso de colaboración más armónico para los colaboradores y, de esta forma, generar contenidos más coherentes. También se describirá un plan de desarrollo para los temas del libro. También se contribuirán las adiciones y los cambios más urgentes de acuerdo con el nuevo plan de desarrollo.

4 Análisis de las alternativas disponibles

Varios proyectos antiguos de código abierto con características similares ya desarrollaron lineamientos de contribución para la documentación, como Wikibooks ([Help:Contributing], [Wikibooks:Policies andguidelines]), OpenStreetMap ([Lineamientos de edición organizados]) o el proyecto de documentación de Linux ([Guía del autor de LDAP]). Estos ejemplos se pueden usar para compilar los lineamientos del proyecto según la experiencia de proyectos exitosos de código abierto.

Para el plan de desarrollo del tema, es posible comparar planes de estudios abiertos (p.ej., [MIT Open Courseware]) y libros de referencia sobre circuitos de lógica digital, incluidos libros abiertos como [Lessons In Electric Circuits -- Volume IV -Digital], [Wikibooks: Digital Circuits] y [Wikibooks: Digital Electronics].

[Help:Contributing] https://es.wikibooks.org/wiki/Help:Contributing

[Wikibooks:Políticas y lineamientos] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[Pautas de edición organizadas] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

[Guía del autor del LDAP] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[Software de cursos abiertos del MIT] https://ocw.mit.edu/

[Lecciones de circuitos eléctricos -- Volumen IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

[Wikibooks: Circuitos digitales] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: electrónica digital] https://en.wikibooks.org/wiki/Digital_Electronics

5 Estructura de la documentación propuesta

El libro interactivo tiene el potencial de ser útil para un público amplio que va desde estudiantes aficionados de la electrónica y estudiantes de educación secundaria hasta estudiantes de educación terciaria y profesionales que necesitan actualizar o fortalecer sus habilidades en los circuitos de lógica digital.

Para abordar la heterogeneidad en los usuarios del libro, se propone una estructura de "varias capas", en la que cada capa corresponde al nivel creciente de complejidad y profundidad teórica del contenido.

Por lo tanto, la estructura de la documentación crece en dos dimensiones: la primera corresponde a la secuencia lógica o tradicional de los temas en los sistemas lógicos digitales, mientras que la segunda representa el nivel.

En la siguiente lista estructurada, se representa la estructura bidimensional propuesta. La secuencia de temas estándar se presenta en el nivel superior. Para simplificar, solo se definen tres capas de complejidad para cada tema, que corresponden a los niveles básico, medio y avanzado. Para cada nivel, se enumeran los contenidos relacionados con el tema general específico.

  • Representación con números binarios:
    • Nivel básico: Números binarios, cantidades negativas, otras bases, codificación.
    • Nivel medio: [sin contenido específico]
    • Nivel avanzado: módulos y anillos
  • Operaciones matemáticas con números binarios:
    • Nivel básico: suma, resta, multiplicación y división
    • Nivel medio: álgebra booleana, funciones booleanas
    • Nivel avanzado: Otros álgebras, descomposición de Shannon
  • Componentes de SSI combinados:
    • Nivel básico: símbolos, puertas lógicas, tablas de verdad
    • Nivel medio: familias lógicas, puertas universales
    • Nivel avanzado: Comportamiento en el tiempo (modelos de tiempo, peligros)
  • Diseño de lógica combinacional:
    • Nivel básico: descripción funcional, implementación
    • Nivel medio: funciones canónicas, k-Maps
    • Nivel avanzado: variables ingresadas en el mapa, Quine McCluskey, representación de cubos binarios
  • Componentes combinados de MSI:
    • Nivel básico: MUX, DEMUX, codificador, decodificador, medio sumador, agregador completo
    • Nivel medio: funciones basadas en MUX
    • Nivel avanzado: [sin contenido específico]
  • Componentes combinados de LSI:
    • Nivel básico: ROM, ALU
    • Nivel medio: PLD (PLA, PAL, GAL)
    • Nivel avanzado: [sin contenido específico]
  • Componentes secuenciales de SSI:
    • Nivel básico: trabas, sandalias, señales de reloj, diagramas de tiempo
    • Nivel medio: Comentarios sobre la memoria, sistemas síncronos, sistemas asíncronos
    • Nivel avanzado: [sin contenido específico]
  • Componentes secuenciales de MSI:
    • Nivel básico: registros, contadores
    • Nivel medio: [sin contenido específico]
    • Nivel avanzado: [sin contenido específico]
  • Diseño secuencial:

    • Nivel básico: [sin contenido específico]
    • Nivel medio: síntesis secuencial, FSM (Mealy y Moore), diagramas de estado, minimización de estado, asignación de estado, condiciones de carrera
    • Nivel avanzado: diseño basado en MSI, diseño basado en LSI, diagramas de flujo, diagramas de MDS

    El nivel básico debe permitir que los usuarios comprendan cómo funcionan los circuitos lógicos digitales y cómo usarlos, sin necesidad de tener conocimientos de matemáticas superiores. Por lo tanto, podría ser adecuado para aficionados aficionados y estudiantes de educación secundaria. Si estos usuarios tienen las habilidades necesarias y quieren desarrollar una comprensión más profunda, pueden trabajar algunos o todos los contenidos del nivel medio.

    El nivel medio debe ser equivalente en contenido y requisitos a un curso introductorio de nivel de educación terciaria sobre el sistema de lógica digital.

    Por último, el nivel avanzado incluye contenidos que, por lo general, se pueden encontrar en cursos avanzados opcionales u opcionales de sistemas digitales en las universidades.

    Esta estructura propuesta se analizará con los mentores en la fase inicial del proyecto (semana 3), y luego se utilizará como entrada para definir un plan de desarrollo de temas a largo plazo.

    La estructura propuesta puede usar la mayoría, si no todo, el contenido actual de la documentación, que se revisará y ampliará o corregirá en consecuencia cuando sea necesario. Además, se escribirán secciones nuevas para los contenidos que aún no están cubiertos por la documentación existente.

6 objetivos

  1. Produce un primer borrador de lineamientos de contribución para el proyecto de Interactive Book.
  2. Describe un desarrollo para los temas del libro.
  3. Reescribe y reestructura el contenido actual.
  4. Crea contenido nuevo según el plan de desarrollo.

7 Rutas

Semana 1 (del 14 al 20 de septiembre) Analiza y analiza con los mentores las mejores pautas según los ejemplos de otros proyectos y la experiencia obtenida hasta el momento en el proyecto. Semana 2: (del 21 al 27 de septiembre) Escribe el borrador de los lineamientos Semana 3: (del 28 de septiembre al 4 de octubre) Analiza el borrador del plan de desarrollo de temas con los mentores. Semana 4: (del 5 al 11 de oct) Escribe el plan de desarrollo. Semanas del 5 al 11 (del 12 de octubre al 29 de nov). Escribe las contribuciones, que incluyan contenido reestructurado y temas nuevos. Semana 12: (del 30 de noviembre al 5 de diciembre) Presentación del informe del proyecto. Evaluación del proyecto (del 3 al 10 de diciembre) - Presentación de la evaluación del escritor técnico. - Presentación de la evaluación de los mentores

8 ¿Por qué el libro interactivo de CircuitVerse?

Debido a la crisis mundial del COVID-19, comencé a buscar recursos en línea que ayudaran a mis estudiantes de un curso universitario sobre sistemas de lógica digital. He sido defensor de las tecnologías de código abierto Free-Libre durante varias décadas, por lo que le doy prioridad a este tipo de proyectos. Encontré el simulador de CircuitVerse y decidí que era una gran herramienta para complementar la falta de actividades de laboratorio debido a las medidas de contención del COVID-19 de nuestra universidad. Mientras probaba el simulador, también encontré el libro interactivo. Aunque el contenido aún no era suficiente como referencia para un curso completo sobre sistemas lógicos digitales, su contenido actual era correcto y fácil de entender, por lo que lo incluí en los recursos de aprendizaje.

Como estaba usando su simulador y una reserva intensiva, la organización se comunicó conmigo para contarme sobre el GSoD. Vi que esto era una oportunidad para contribuir al proyecto directamente desde mi área de especialización.

9 referencias

  • [Ayuda de Wikibooks: Colaboraciones]:
  • [Wikibooks:políticas y lineamientos]
  • [Pautas de edición organizada de OpenStreetMap]
  • [Guía del autor del Proyecto de documentación de Linux (LDP)]
  • [Plan de estudios de Laboratorio de Sistemas Digitales introductorios de MIT Open Courseware]
  • [Lecciones de circuitos eléctricos: Volumen IV - Digital]
  • [Wikibooks: circuitos digitales]
  • [Wikibooks: electrónica digital]
  • [El proyecto de folleto de Linux]

    [Ayuda de Wikibooks:Contributing] https://en.wikibooks.org/wiki/Help:Contributing

    [Wikibooks:Políticas y lineamientos] https://es.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [Pautas de edición organizada de OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

    [Guía del autor del Proyecto de documentación de Linux (LDP)] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [Plan de estudios introductorio del Laboratorio de Sistemas Digitales de MIT Open Courseware] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111- introduction-digital-systems-laboratory-spring-2006/syllabus/

    [Lecciones de circuitos eléctricos -- Volumen IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: Circuitos digitales] https://en.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: electrónica digital] https://en.wikibooks.org/wiki/Digital_Electronics

    [El proyecto de folleto de Linux] http://lbproject.sourceforge.net/