Proyecto de CircuitVerse

En esta página, se incluyen 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
Redactor técnico:
dvls
Nombre del proyecto:
Mejoras y consolidación de libros interactivos 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 se puedan diseñar y simular circuitos con una interfaz gráfica de usuario basada en la Web. El simulador de lógica 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, un libro interactivo en línea guía al usuario en el aprendizaje del diseño de lógica digital. El libro permite al usuario probar circuitos directamente desde el libro para obtener una experiencia interactiva.

El libro se encuentra en un estado inicial de desarrollo y, en la actualidad, carece de algunas secciones relevantes. La estructura general es flexible en términos de un flujo que conecta las diferentes secciones y requiere contenido más detallado. Además, según la organización, no existen 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 se necesitan y con qué prioridad.

El objetivo de esta propuesta es colaborar con los mentores para crear lineamientos de contribución, elaborar un plan de desarrollo de temas, mejorar el contenido actual y crear contenido nuevo en función del plan de desarrollo.

2 El estado actual del libro interactivo

Desde el lanzamiento del proyecto en Google Summer of Code 2019, mostró un “crecimiento no administrado”, con la ayuda de la comunidad estudiantil. La organización del proyecto está formada principalmente por desarrolladores, por lo que participaron en GSoD para buscar ayuda externa para mejorar el libro interactivo. Los desarrolladores del proyecto identificaron que, en la actualidad, el libro requiere la reescritura de algunas secciones, la adición de contenido nuevo y que sea más detallado y completo. Además, el equipo espera tener, después de la GSoD, lineamientos para las contribuciones nuevas, así como un “plan maestro” general para el desarrollo del contenido.

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

Esta propuesta contribuirá con la cocreación de una primera versión de lineamientos de contribución, con el objetivo de garantizar un proceso de colaboración más armónico para los colaboradores, lo que generará un contenido más coherente. También se describirá un plan de desarrollo para los temas del libro. También se agregarán las incorporaciones y los cambios más urgentes según el nuevo plan de desarrollo.

4. Análisis de las alternativas disponibles

Varios proyectos maduros de código abierto que tienen características similares ya desarrollaron pautas de contribución para la documentación, como Wikibooks ([Help:Contributing], [Wikibooks:Policies andguidelines]), OpenStreetMap ([Organized Editing Lineamientos]) o el Proyecto de documentación de Linux ([LDP Author Guide]). Estos ejemplos se pueden usar para crear los lineamientos del proyecto en función de la experiencia de proyectos de código abierto exitosos.

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

[Ayuda:Cómo contribuir] https://en.wikibooks.org/wiki/Help:Contributing

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

[Lineamientos de edición organizada] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

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

[MIT Open Courseware] https://ocw.mit.edu/

[Lessons In Electric Circuits -- Volume 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 abarca desde aficionados a la electrónica y estudiantes de educación secundaria hasta estudiantes y profesionales de la educación superior que necesitan actualizar o fortalecer sus habilidades en circuitos de lógica digital.

Para abordar la heterogeneidad de los usuarios del libro, se propone una estructura “multicapa”, en la que cada capa corresponde a un 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 dimensión corresponde a la secuencia lógica o tradicional de temas en los sistemas de lógica digital, mientras que la segunda dimensión 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, intermedio y avanzado. Para cada nivel, se muestra el contenido relacionado 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 combinacionales:
    • Nivel básico: Símbolos, Puertas lógicas, Tablas de verdad
    • Nivel medio: Familias lógicas y puertas universales
    • Nivel avanzado: Comportamiento temporal (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 de MSI combinados:
    • Nivel básico: MUX, DEMUX, codificador, decodificador, sumador medio, sumador completo
    • Nivel medio: funciones basadas en MUX
    • Nivel avanzado: [no specific content]
  • Componentes LSI combinacionales:
    • Nivel básico: ROM y ALU
    • Nivel medio: PLD (PLA, PAL y GAL)
    • Nivel avanzado: [no specific content]
  • Componentes SSI secuenciales:
    • Nivel básico: cierres, chancletas, señales de reloj y diagramas de tiempo
    • Nivel medio: Comentarios sobre la memoria, sistemas síncronos, sistemas asíncronos
    • Nivel avanzado: [no specific content]
  • Componentes MSI secuenciales:
    • Nivel básico: Registros y contadores
    • Nivel medio: [sin contenido específico]
    • Nivel avanzado: [no specific content]
  • Diseño secuencial:

    • Nivel básico: [sin contenido específico]
    • Nivel medio: Síntesis secuencial, FSM (Mealy, Moore), diagramas de estado, minimización de estados, asignación de estados, 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 de lógica digital y cómo usarlos, sin necesidad de conocimientos de matemáticas superiores. Por lo tanto, podría ser adecuado para estudiantes aficionados y de educación secundaria. Si estos usuarios tienen las habilidades necesarias y quieren desarrollar una comprensión más profunda, pueden trabajar todo o parte del contenido del nivel intermedio.

    El nivel intermedio debe ser equivalente en contenido y requisitos a un curso introductorio de nivel de educación superior en sistemas de lógica digital.

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

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

    La estructura propuesta puede aprovechar la mayor parte del contenido actual de la documentación, si no todo, que se revisará y extenderá o corregirá en consecuencia, cuando sea necesario. Además, se escribirán secciones nuevas para el contenido que aún no se incluye en la documentación existente.

6 objetivos

  1. Crea un primer borrador de los lineamientos de contribución para el proyecto de libro interactivo.
  2. Describe el desarrollo de los temas del libro.
  3. Reescribir y reestructurar el contenido actual
  4. Crea contenido nuevo según el plan de desarrollo.

7 Cronograma

Semana 1: (del 14 al 20 de septiembre) Analiza y analiza con los mentores los mejores lineamientos basándote en los ejemplos de otros proyectos, así como en 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 del tema con los mentores. Semana 4: (Del 5 al 11 de octubre) Escribe el plan de desarrollo. Semanas 5 a 11: (del 12 de octubre al 29 de noviembre) Escribe las contribuciones, que consisten en contenido reestructurado y temas nuevos. Semana 12: (del 30 de noviembre al 5 de diciembre) Envío de informes de proyectos. Evaluación del proyecto: del 3 al 10 de diciembre: Envío de la evaluación del escritor técnico - Presentación de la evaluación de los mentores.

8 razones para usar el libro interactivo de CircuitVerse

Debido a la crisis global del COVID-19, comencé a buscar recursos en línea que ayudaran a mis estudiantes de un curso de pregrado sobre sistemas de lógica digital. He defendido las tecnologías de código abierto y libre durante varias décadas, por lo que 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, encontré su libro interactivo y, aunque el contenido aún no era suficiente como referencia principal para un curso completo sobre sistemas lógicos digitales, su contenido actual era correcto y fácil de entender, así que lo incluí en los recursos de aprendizaje.

Como estaba usando el simulador y el libro de forma intensiva, la organización se comunicó conmigo para brindarme información sobre el GSoD. Vi en esto una oportunidad para volver a contribuir al proyecto desde mi área de especialización.

9 referencias

  • [Ayuda de Wikibooks:Cómo contribuir],
  • [Wikibooks:Políticas y lineamientos]
  • [OpenStreetMap Organised Editing Guidelines]
  • [Guía para autores del Proyecto de documentación de Linux (LDP)]
  • [MIT Open Courseware Introductory Digital Systems Laboratory Syllabus]
  • [Lecciones sobre circuitos eléctricos, volumen IV: digital]
  • [Wikibooks: Digital Circuits]
  • [Wikibooks: Digital Electronics]
  • [Proyecto de folleto de Linux]

    [Ayuda de Wikibooks:Cómo contribuir] https://en.wikibooks.org/wiki/Help:Contributing

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

    [Lineamientos de edición organizada de OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

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

    [Plan de estudio introductorio de sistemas digitales del MIT Open Courseware] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introducing-digital-systems-laboratory-spring-2006/syllabus/

    [Lessons In Electric Circuits -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

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

    [The Linux Brochure Project] http://lbproject.sourceforge.net/