Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/electrostat-lab/future-minds-contributions

A contribution depot for the Future Minds Initiative provided by the Electrostat-Lab.
https://github.com/electrostat-lab/future-minds-contributions

cybernetics discrete-mathematics distributed-simulations electrostat-lab electrostatic-sandbox-sdk future-minds guidelines pure-mathematics safety-critical-systems scientific-initiation software-engineering theory-of-computation

Last synced: 5 days ago
JSON representation

A contribution depot for the Future Minds Initiative provided by the Electrostat-Lab.

Awesome Lists containing this project

README

        

# Future-Minds-Contributions

This repository provides a contribution depot for the **_Future Minds Initiative by [Dr. Hazem Ali](https://github.com/drhazemali)_** by picking up the fine grains from the Electrostat-Lab and the Electrostatic-Sandbox SDK project hosted and maintained by [Pavly G.](https://github.com/pavly-gerges).

> [!NOTE]
> **Disclaimer of knowledge**: Subjects covered here are some way unique topics that are rarely approached from the
> practical computer engineering perspective; therefore it's contemplated that this repository
> will attain a particular target of covering these topics in an applied theoretical environment (i.e., theoretical and practical);
> thus, software engineering and arithmetics basics in addition to knowing a programming language (preferably C/C++ or Java)
> are prerequisites to fully absorb the knowledge that will be presented here.

Essentially, the following will be the initial topics that the contribution depot will provide:
## Series Title: "An introduction to Applied Computation":
- [Guidelines: A curricular computational model derived from the ACM Guidelines for CS Education](https://github.com/Electrostat-Lab/Future-Minds-Contributions/blob/master/curricular-computational-model/cc-model.md)
- Mathematics: An approach to Discrete Mathematics and Software design paradigms.
- Theory of computation: Approaching the Theory of computation (i.e., Automata theory, Computational complexity theory, and Computability theory).
- Theory of computation: A practical approach to the theory of computation (a coding project on the Electrostatic-Sandbox SDK).
- Software Engineering: An approach to utilizing software design paradigms in designing data structures and algorithms analysis.
- Advanced Embedded Systems: Computer organization, Flip-flops (D-latches and JK-latches), and state-machines (?).
- Advanced Embedded Systems: A Deep dive into Low-level state-machines, and applied Computing methods (?).

## Series Title: "A workshop for basics of software engineering using the Electrostatic-Sandbox SDK":
- Guidelines: NASA and Google coding Guidelines for C/C++ and safety-critical systems.
- Mathematics: Using the Automata Models and the [System-Entity-Structure (SES) Framework by Pawletta et al.](https://dl.acm.org/doi/abs/10.5555/3108244.3108245), previously described, to model the software before coding it.
- Software Building: A live workshop for understanding the building and the production lifecycle of software using CMake, Bash, and GitHub packages.
- Software Engineering: Writing software C libraries on GNU/Linux, and writing unit tests (e.g., Automata framework, Entity-Component System Framework, Thread Models for thread controls, ...etc).

## Advanced Scientific and Engineering workshops: "Complex Systems Analysis, Cybernetics and Safety-critical systems":
- The Therac-25 Catastrophes.
- The Air France Flight 447 Catastrophic failure.
- The Deepwater Horizon Catastrophic failure.

## Appendices
### Appendix-A: Timetable:

| Months | Topics | Videos |
|--------|--------|--------|
| Jan. - Feb. | ACM Guidelines - Theory of Computation | **Pending** |
| Mar. - Apr. | Workshop on basics of sofware engineering | **Pending** |
| May. - Jun. | Advanced Embedded Systems? | **Pending** |

### Appendix-B: Resources:
* [The Electrostatic-Sandbox SDK for distributed simulation systems.](https://github.com/Electrostat-Lab/Electrostatic-Sandbox)
* [Embedded Cybernetics for some of the complex safety-critical systems that have failed a long time ago.](https://github.com/Electrostat-Lab/Embedded-Cybernetics)
* [Guidelines of undergraduate cirrculum for computing by the Association for Computing Machinery.](https://www.acm.org/education/curricula-recommendations)
* [NASA Coding Guidelines for safety-critical systems](https://swehb.nasa.gov/display/7150/SWE-134+-+Safety+Critical+Software+Requirements?desktop=true&macroName=div)
* [Google C/C++ Coding Guidelines.](https://google.github.io/styleguide/cppguide.html)
* [Software Engineering Design by Carlos Otero.](https://www.amazon.com/Software-Engineering-Design-Practice-Applied/dp/1439851689)
* [Introduction to the theory of computation by Michael Sipser.](https://www.amazon.com/Introduction-Theory-Computation-Sipser/dp/8131525295)
* [Discrete Mathematical Structures By Bernard Kolman and Rosen.](https://www.amazon.in/Discrete-Mathematical-Structures-Bernard-Kolman/dp/0132078457)
* [Switching and Finite Automata Theory By Niraj and Zvi.](https://www.amazon.com/Switching-Finite-Automata-Theory-Kohavi/dp/0521857481)
* [Guide to Discrete Mathematics, Springer](https://link.springer.com/book/10.1007/978-3-030-81588-2)
* [Body of Knowledge for Modeling and Simulation, Springer](https://link.springer.com/book/10.1007/978-3-031-11085-6)
* [IBM/ILE C/C++ Language Reference.](https://www.ibm.com/docs/en/i/7.3?topic=languages-c-c)
* [GNU/Linux GLibc documentation reference.](https://sourceware.org/glibc/manual/)
* [NASA Technical Report Server (NTRS)](https://ntrs.nasa.gov/)
* [IEEE Xplore.](https://ieeexplore.ieee.org/Xplore/home.jsp)
* [ACM Digital Library](https://dl.acm.org/)