Student Research Projects

Student Thesis and Research Projects

  • These project proposals are aimed for both graduate and undergraduate students who are interested to be involved in research.
  • Some of these projects are quite general and non-specific. They will be refined with the student and depending on his/her interests.
  • Most of these projects require significant knowledge and background in a specific area.
  • You can get credits for research projects. See Q33 in the FAQs.
  • If you have any other cool idea you would like to work on, please don’t hesitate to contact Christof Teuscher.
  • Please check the FAQs before you contact me.
  • This list will be gradually extended, so please check back on a regular basis.


Active projects:


Title: Developmental mechanisms for massive-scale computing assemblies
Project number: 501
Keywords: development, growth, fault-tolerance, self-replication, computer architecture
Description: Nature has evolved multiple adaptation techniques on multiple time-scales, which help organisms to be resilient against changes in the environment. One of the basic mechanisms behind the resilience of biological organisms is cellular division, i.e., the ability of the cells to self-replicate. Self-replication in computing machines has been explore first by John von Neumann in the 1950s, with more recent research in the 1980s by Chris Langton.
The goal of this project is to propose developmental mechanisms that can be applied to future and emerging nano-scale electronics. The research is motivated by the need to make nano-scale electronics more resilient against faults and by the observation that systems increasingly change and evolve over time. The student will propose novel architectural and organizational paradigms that allow to gradually build, use, and program a system as it grows more and more complex.
To probe further:



Title: Adaptive programming of nano-scale architectures
Project number: 503
Keywords: nano electronics, programming, genetic algorithms, simulated annealing, adaptation
Description: Programming self-assembled electronics made up from massive numbers of unreliable and heterogeneous components is a definite grand challenge. The goal of this project is to explore multiple techniques, such as for example (co-) evolution and simulated annealing, to program novel computing substrates in a decentralized and robust manner. We will use different models for the computing substrates.
To probe further:



Title: Rent’s rule for bottom-up self-assembled electronics
Project number: 504
Keywords: Rent’s rule, self-assembly, nanowire
Description: The goal of this project is to have better formalisms to explore the design space of novel interconnects and to have better estimates for the wire length and the wire length distribution. We will first explore Rent’s rule for multiple bottom-up self-assembled nanowire assemblies by means of computer models and simulations. In a second step, we will use spatial random Boolean networks with various interconnect topologies to obtain similar laws. The final (and non-trivial) step will consist in linking Rent’s rule to the k parameter, which indicates the number of incoming links per node, of random Boolean networks.
To probe further: Rent’s rule (Wikipedia)



Title: Computation and learning in memristor networks
Project number: 506
Keywords: memristor, learning, computation
Description: The memristor is a passive two-terminal element similar to a variable resistance. The goal of this project is to implement networks of memristors, to analyze their dynamics, and to use them for performing computations. We will draw inspiration from Nanocells and other randomly assembled computers. Ideally, the student should have basic knowledge of optimization algorithms.
To probe further: Memristor (Wikipedia)



Title: Nanowire growth models
Project number: 509
Keywords: self-assembly, nanowire, carbon nanotubes
Description: Self-assembly is the process of organizing a disordered ensemble of components into an organized structure or pattern without external direction. The goal of this project is to explore, implement, and test simple but realistic models for the self-assembly of novel 2D and 3D computing architectures. The student will implement simple models for the self-assembly of nanowires (or carbon nanotubes) into complex interconnect structures. We will use cellular and agent-based models in the first phase. The expected outcome of the project is a simulation framework and initial results.
Requirements: Expertise in Matlab
To probe further:



Title: Assessing Digital Automata Architectures
Project number: 510
Keywords: cellular systems, nanotechnology, cellular automata, random Boolean networks, performance evaluation
Description: The student will assess integrated digital cellular architectures by means of Matlab and VHDL/Verilog models. We will implement both a cellular automata and a random Boolean network model in hardware and evaluate its performance, reliability, power, and area as a function of various configuration parameters.
Requirements: Expertise in Matlab, VHDL or Verilog
To probe further:



Title: Memristive computing architecture via material implication
Project number: 511
Keywords: memristor, implication logic, architecture
Description: Memristors are a nonlinear dymamical memory devices that can perform logic operations as well. It has been shown that they can execute material implication (IMP), which is equivalent to (NOT p) OR q. The goal of this project is to propose a computing architecture based on material implication circuits.
Requirements: Expertise with SPICE and MATLAB is an advantage.
To probe further: ‘Memristive’ switches enable ‘stateful’ logic operations via material implication



Title: Stochastic logic circuits
Project number: 513
Keywords: stochastic logic, architecture, computing
Description: Randomness is omnipresent in natural systems. As we further scale down electronic devices, noise and probabilistic behavior become more and more of an issue. The goal of this project is to study, implement, and evaluate stochastic logic circuits self-assembled nanoscale electronics.
Requirements: Expertise in MATLAB is an advantage.
To probe further:



Title: Evolving complex network topologies
Project number: 515
Keywords: complex network, topology, evolutionary algorithm
Description: Complex networks are networks with non-trivial features as not commonly seen in regular or random graphs. The interconnect topology of such networks (or graphs) plays and important role for the network’s properties, such as the robustness against random failures of links or nodes and the transport characteristics. We will use evolutionary algorithms to evolve complex networks which satisfy pre-defined properties. We will then analyze and study the resulting networks.
Requirements: Be familiar with evolutionary algorithms, MATLAB, an C++
To probe further: Complex networks (Wikipedia)



Title: Investigating network-on-chip architectures for massive scale systems
Project number: 517
Keywords: network-on-chip, complex network
Description: We will study novel network-on-chip (NoC) architectures for massive scale systems, involving thousands and possibly millions of cores. A complex network perspective will be used to look at the problem of propagating information efficiently with minimal resources.
To probe further:



Title: Spatial computing paradigm
Project number: 518
Keywords: spatial computing, novel computing paradigms
Description: Spatial computing is a computing system where position of the computing elements (or nodes or cells) matters for its performance and its functionality. The amorphous computing model is an example of a spatial computer. In such an assembly, the copmuting elements are simple, irregularly located in space, communicate locally and by broadcast only, and are unreliable.
Most programming languages and computing models do not adequately deal with spatial issues, if at all. The goal of this project is to find alternative ways to design spatial computing solutions.
To probe further:



Title: Random discrete networks as nano-scale computing models
Project number: 519
Keywords: random networks, computing model, nano electronics
Description: Random descrete networks, such as random Boolean or random threshold networks, can be used as computing models for self-assembled nano-scale electrinics. The student will explore and evaluate such models by performing simulations using Matlab or C/C++. We will further develop new approaches and models that more closely represent the underlying device physics.
To probe further:



Title: Routing algorithms for non-classical networks-on-chip
Project number: 520
Keywords: routing, networks-on-chip, self-assembly
Description: The student will investigate and develop novel routing algorithms for non-classical networks-on-chip, such as interconnect networks with an irregular topology. We are interested in routing algorithms that scale up well and which do not use any global information about the system.
To probe further:



Title: Modeling random nano-scale network assemblies with SPICE
Project number: 521
Keywords: random network, SPICE, Matlab
Description: The student will model randomly interconnected networks of various electronic components with SPICE. In a second step, we will model specific nanowire assembles modeled after real experiments. To goal is to better understand the limits and opportunities of such networks for the purpose of computation.
To probe further:



Title: Computing with Biomolecules: From Network Motifs to Complex and Adaptive Systems
Project number: 522
Keywords: biomolecular computing, DNA, enzymes
Description: Can molecules be organized, or even self-organize, to perform complex tasks? This question seemingly should have an answer in the affirmative, because all the world around us, and especially the living things in it, is a mass of molecules. Yet the complexity of molecular systems, or networks, that chemistry has achieved to date pales in comparison with electronics and computers. A team of chemists, engineers, and computer scientists join forces to explore how molecules can be harnessed to achieve complex behaviors, including simple forms of computation, adaptation, and learning. They will work to discover the engineering principles needed to make large and useful molecular circuits. They will start by building networks of DNA enzymes, where actions of one enzyme stimulate another, just as protein enzymes stimulate one another in a living cell. They will build networks that can detect patterns of change in the environment; for example, the strength and the frequency of a periodic stimulation. Ultimately, they will build large networks that embody the ability to learn (memorize and generalize) patterns of past stimulation, and respond to new conditions in the environment accordingly.
The project will develop biocompatible, DNA molecular sensors and actuators that will be of immediate use in pathogen detection, non-invasive diagnostics, and intelligent therapeutics. As the project progresses, these will be combined with ever more capable biomolecular learning machines we will develop, but they can also be used independently by other researchers or medical doctors.
The project will reach out to underserved communities in Oregon, New Mexico, and inner-city New York, providing high-school students and undergraduates an opportunity to engage in interdisciplinary scientific research.
To probe further: This is currently an NSF-funded research project.



Title: Inference at the Nanoscale
Project number: 523
Keywords: nonlinear circuit, inference, probabilistic computing, memristor, evolution
Description: The goal of this project is to develop a new inference-based information processing structure that performs probabilistic computing using radically new nanoscale devices.  Our approach exploits the analog, time-dependent properties of such devices, and their massive parallelism.  By doing so, such a computing structure will be more efficient and scalable than by using more traditional digital hardware.  This approach is the first that we are aware of to include time-dependent circuit elements to build analog associative memories that approximate Bayesian inference, and which are, in turn, assembled into complex networks that capture higher order structure in streams of data.  Our ultimate goal is to use these circuits to develop hybrid CMOS / molecular scale implementations of a Field Adaptable Bayesian Array (FABA), which, we believe, has the potential to be a key component for Cyber-Enabled discovery.
Two key developments then are a design exploration methodology for such devices, and a massively parallel architecture for data capture and inference.  In this work we explore a new paradigm for using nanoscale electronics for emerging applications by starting with the “top-down” system requirements rather than by finding applications for new device concepts (“bottom-up”).
We address Cyber-Enabled discovery in two ways.  The first concerns the design of analog circuits based on complex nano and molecular scale devices with time-varying properties. Designing analog nano-electronic circuits that perform inference through space and time and which consist of dynamic components (such as mem-resistance and mem-capacitance) is extraordinarily difficult. This is particularly true when one considers the wide range of complex devices that are being developed in laboratories around the world for nano and molecular scale electronics.  For this effort we have defined an Exploration Methodology that combines multiple levels of abstraction and evolvable computation.
As the semiconductor industry struggles with where to go next, the work proposed here may provide insight into radical new approaches to architecture, circuits and devices.  This research will ultimately benefit society by enhancing human cognition and generating new knowledge from the wealth of heterogeneous digital data society has to deal with.
To probe further: This is currently an NSF-funded research project.



Title: Optimization of Hierarchical and Heterogeneous Network-on-Chip (NoC) Architectures
Project number: 524
Keywords: network-on-chip, complex network, topology, evolutionary algorithm
Description: The goal of this project is to optimize hierarchical and heterogeneous NoC architectures with long-range links. This will allow to find non-classical interconnect architectures for multi-core chips by drawing inspiration from natural complex networks that minimize resource consumption while optimizing relevant performance metrics, such as latency, throughput, power and area overhead. We apply metaheuristic algorithms to find optimal solutions.
Requirements: Be familiar with evolutionary algorithms, MATLAB, an C++
To probe further:



Title: Robustness and Damage Spreading in Self-Organized Nanoscale Electronics
Project number: 525
Keywords: network-on-chip, complex network, topology, evolutionary algorithm
Description: We propose to study and model the robustness and damage spreading in self-organized nanoscale electronics. Molecular and nanoscale electronics seeks to build devices to implement computation by using collections of molecules. It is generally expected that such emerging computing devices will be self-assembled in a bottom-up and hierarchical way from vast numbers of simple, densely arranged components that exhibit high failure rates, are relatively slow, and connected in a disordered way. We will pursue an interdisciplinary approach by building realistic models and exploring key design trade-offs. In particular, we will model networks of randomly assembled nanowires and carbon nanotubes and study how local damage affects the overall system robustness and performance. The models and simulations will be compared with both models and data from gene regulatory networks with the goal to unveil underlying design principles that lead to robust systems. The research will advance the state of the art by drawing inspiration from natural complex systems. The outcomes will lay the foundations for a new research effort in understanding and designing man-made complex, emerging information processing devices. From a broader perspective, our work contributes to the question of how to engineer a system we don’t fully understand.
Requirements: Be familiar with evolutionary algorithms, MATLAB, an C++
To probe further:



Title: GPU-acceleration of simulations codes
Project number: 526
Keywords: GPU, CUDA, blades, simulation, C, C++
Description: The lab has several simulation toolboxes that would benefit greatly from GPU or multi-core acceleration. The student will first learn how to program GPUs and/or use MPI.  Next, we will then optimize a simulation framework to improve the simulation speed significantly. The project will include detailed performance analysis by modern tools.
Requirements: Be familiar with C, C++, CUDA, and GPUs
To probe further:



Removed projects:

Title: Future and emerging computing architectures
Project number: 500
Keywords: computer architecture, interconnect
Description: Since the beginning of modern computer science some sixty years ago, we are building computers in more or less the same way. Silicon electronics serves as a physical substrate, the von Neumann architecture provides a computer design model, while the abstract Turing machine concept supports the theoretical foundations. That is changing: in recent years, unimagined computing substrates have seen the light because of advances in synthetic biology, nanotechnology, material science, and neurobiology. A grand challenge consists in developing computer architectures, computing paradigms, design methodologies, formal frameworks, and tools that allow to reliably compute and efficiently solve problems with such alternative devices.
The student will explore, simulate, and design non-classical computing architectures for devices that are self-assembled in a mainly bottom-up way. As a result of this fabrication technique, one has to deal with high degrees of irregularity and unreliability. We will particularly focus on addressing the challenges of interconnecting components in 2D and 3D space, and how we can reliable and efficiently compute with massive numbers of unreliable components that are interconnected in irregular ways.
To probe further:
Note: This is a broad and overarching project. Many of the other projects are pieces or subsets of this project.



Title: Optimization Framwork for Nanostructured Materials Networks
Project number: 507
Keywords: molecular dynamics, LAMMPS, networks, Matlab
Description: Nanostructured devices show considerable promise for both energy conversion (e.g., solar cells, fuel cells and batteries) and information processing (future and emerging computing machines). The ultimate goal is to construct devices from self-assembled complex materials made from simple building blocks. We are interested in obtaining the particle interaction graph of a given material, which will tell us something about the fundamental physical limits of information processing in such a device, provided we could use all these interactions.
The student will implement an optimization framework based on evolutionary algorithms with the goal to discover nanostructured materials. We will use LAMMPS, a powerful molecular dynamics simulator to simulate the nanostructured materials.
Some knowledge of evolutionary algorithms is an advantage for this project.
To probe further: LAMMPS



Title: Noxim
Project number: 512
Keywords: network-on-chip, NoC, topology, SystemC
Description: Noxim is a network-on-chip simulator developed at the University of Catania (Italy). The cycle-accurate simulator is based on SystemC, a system description language based on C++. The current simulator allows to only simulate regular mesh-based interconnect architectures. The goal of this project is to use Noxim to simulate irregular and non-classical network topologies and to optimize them according to performance and resource constraints. For that purpose, we will modify and extend Noxim.
Requirements: Expertise in MATLAB, SystemC, and C++ is an advantage.
To probe further: Noxim



Title: Matlab random Boolean network toolbox
Project number: 516
Keywords: Matlab, random Boolean network
Description: The student will extend an existing Matlab toolbox for random Boolean networks (RBNs) with new functions. The first step will consist getting familir with both RBNs and the toolbox. The second step will consist in the implementation new functions. Last but not least, the student will run experiments with his new Matlab functions in order to test and validate them.
To probe further: RBN toolbox



Title: The disappearing designer
Project number: 502
Keywords: design automation, programming paradigm, bio-inspiration
Description: A number of major factors is rapidly changing the computing landscape, which require us to rethink the way we build and program information processing devices and how we interact with them.  By using chemical self-assembly and self-organizing principles at the cellular, molecular, or atomic scale, it is nowadays relatively straightforward to “build” functional assemblies in a bottom-up way that involve massive numbers (e.g., peta- or exa-scale) of interconnected or interacting components. However, current design methodologies—which already struggle to exploit the resources available today—are clearly ill-suited to the scale of complexity complexity of these novel technologies.
The goal of this project is to investigate and propose novel automated design methodologies for emerging computing architectures, which leave the human designer as much as possible out of the design loop. We will draw inspiration from Nature and from complex adaptive system’s theory to propose methodologies that scale up better.
To probe further:



Title: Modeling nanostructured materials networks for computation
Project number: 514
Keywords: molecular dynamics, LAMMPS, networks, Matlab
Description: Nanostructured devices show considerable promise for both energy conversion (e.g., solar cells, fuel cells and batteries) and information processing (future and emerging computing machines). The ultimate goal is to construct devices from self-assembled complex materials made from simple building blocks. We are interested in obtaining the particle interaction graph of a given material, which will tell us something about the fundamental physical limits of information processing in such a device, provided we could use all these interactions. The student will first learn how to use LAMMPS, a powerful molecular dynamics simulator. The LAMMPS data is pre-processed and analyzed in Matlab. The will write new Matlab functions and perform simulations.
To probe further: LAMMPS



Title: Energy dissipation of networks-on-chip
Project number: 505
Keywords: Networks-on-chip, energy dissipation
Description: The goal of this project is to implement a energy dissipation evaluation framework for networks-on-chip (NoC). On the behavioral level, we will use a Matlab simulator. The NoC will then be implemented as an RTL-level design. Synopsys Prime Power will be used to evaluate the energy dissipation at the gate-level. The student should be familiar with the Synopis tools and VHLD or Verilog.
To probe further:

Next Generation Computing Models and Architectures