This repository provides a contribution depot for the Future Minds Initiative by Dr. Hazem Ali by picking up the fine grains from the Electrostat-Lab and the Electrostatic-Sandbox SDK project hosted and maintained by Pavly G..
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:
- Guidelines: An introduction to the ACM Guidelines of Computing.
- 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 (?).
- 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., 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.
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 |
- The Electrostatic-Sandbox SDK for distributed simulation systems.
- Embedded Cybernetics for some of the complex safety-critical systems that have failed a long time ago.
- Guidelines of undergraduate cirrculum for computing by the Association for Computing Machinery.
- NASA Coding Guidelines for safety-critical systems
- Google C/C++ Coding Guidelines.
- Software Engineering Design by Carlos Otero.
- Introduction to the theory of computation by Michael Sipser.
- Discrete Mathematical Structures By Bernard Kolman and Rosen.
- Switching and Finite Automata Theory By Niraj and Zvi.
- Guide to Discrete Mathematics, Springer
- Body of Knowledge for Modeling and Simulation, Springer
- IBM/ILE C/C++ Language Reference.
- GNU/Linux GLibc documentation reference.
- NASA Technical Report Server (NTRS)
- IEEE Xplore.
- ACM Digital Library