Advanced Embedded In Silico and In Materio Computing
Course Information:
| ![]() |
Description:
Imagine a biomolecular computer that monitors your cholesterol level, a bacterial computer that senses dangerous chemicals in the environment, a self-adapting and self-repairing massive-scale nanoelectronic sensor network on an unmanned spacecraft exposed to hard radiation, or a paintable computer on your wall that displays your friends' Twitter tweets. The current design and programming paradigms are often not appropriate for such emerging devices and applications. For example, it is an open question how one designs a reliable computer architecture based on unreliable non-silicon and non-Boolean computing components. How one programs, tests, and maintains a massive-scale embedded system that needs to be robust and reconfigurable. And how one computes with non-Boolean systems by exploiting the inherent complex dynamics a physical device provides. An understanding of these challenges will provide a basis for better, smarter, and more robust computing paradigms, architectures, devices, algorithms, languages, and systems.
This course introduces and develops the advanced hardware and software concepts and the design methodologies tomorrow’s engineers will need to master in order to design and program such emerging embedded in silico and in materio computing systems. The class aims to bridge the gap between abstract computing concepts, computer architecture, and the physics of novel computing substrates. Special emphasis will be given to the engineering and scientific aspects of distributed, (self-) adaptive, and intelligent information processing.
The course is designed to provide a solid overview on multiple emerging technologies and an understanding of the advantages, limitations, and trade-offs of each of them. Students will read relevant literature and explore concepts in hands-on mini-projects.
Structure and Topics:
The course consists of two 2h classes per week for 10 weeks (= 40h). The structure of the class is as outlined blow.
- Introduction, paper discussions, exercises: 4h
- Review of computing and automata theory, universal computation, algorithms: 4h
- Review of classical microprocessor and microcomputer architecture: 2h
- Physics of computation: 4h
- Spatial computing paradigms: 4h
- Novel computing paradigms, analog and optical computation, stochastic computation: 4h
- Self-assembly, morphogenetic paradigms, self-organization, learning and adaptation: 6h
- Molecular and nano-scale computation: 6h
- Non-conventional programming paradigms: 8h
- Guest lecture: 2h
Course Outcomes and Learning Goals:
- Learn how to use Matlab NEW
- Use nano simulators NEW
- Describe state automata, state machines, Turing machines.
- Describe the structure and the operation of classical microprocessor systems.
- Describe the operation of cellular computing systems.
- Describe the architecture and principles of spatial computing systems.
- Describe novel computing paradigms, such as analog, optical, and stochastic computation.
- Describe the principles of self-assembly, self-organization, and adaptation.
- Describe morphogenetic systems.
- Describe certain types of molecular and nano-scale computing architectures.
- Describe non-conventional programming paradigms.
- Write and test algorithms and Matlab programs for non-classical computing architectures.
- Describe the open challenges in the area of novel computing paradigms and machines.
Who Should Take This Class?
You should take this course if:
- You like to learn about emerging computing paradigms and technologies.
- You like to learn about unconventional concepts.
- You like to learn about molecular and nano-scale computation.
- You like to earn about what may come after the silicon era.
- You like to participate actively.
- You like to read cutting-edge science papers.
- You like to solve problems, to think creatively, and to think out of the box.
- You like to learn new things.
- You like to be ready for tomorrow’s new technologies
- You like how to use Matlab NEW
You should not take this course if:
- You look for an easy class.
- You do not like to program.
- You do not like to read.
- You are unable and unwilling to attend this class regularly.
- You do not like to be challenged.
Got Questions?
Contact me or come and see me!



Teaching


Tweet me!