Search result: Catalogue data in Autumn Semester 2023

Electrical Engineering and Information Technology Bachelor Information
Laboratory Courses, Projects, Seminars
A minimum of 15 cp must be achieved in the category "Laboratory Courses, Projects, Seminars
Projects & Seminars
Enrolment is only possible for students in the BSc Electrical Engineering and Information Technology from Friday before the start of the semester.
Places are allocated using the P&S application tool (https://psapp.ee.ethz.ch/).
Please only enrol for P&S for which you apply via the tool.
NumberTitleTypeECTSHoursLecturers
227-0085-25LP&S: Magnetic Resonance: From Spectrum to Image Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W1 credit1P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveThe phenomenon of nuclear magnetic resonance (NMR) and its application for spectroscopy and imaging are introduced. The course starts with a general introduction to NMR, followed by measurements on a clinical MRI scanner. The NMR experiments will be developed and programmed by the students. Starting from a simple spectroscopic experiment, the basics of imaging will be acquired step-by-step. Finally, sectional images of test objects will be obtained.

The course will be conducted only if at least 2 participants show up.
In case in-classroom teaching is not allowed, the course must be cancelled.
227-0085-26LP&S: Biosignal Acquisition and Processing for IoT Wearable Devices Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveBiosignal acquisition and processing – Wearable sensor node design and analysis for bio-impedance sensor using an Arm Cortex-M (Nordic nrf52838) Microcontroller
Wearable smart sensor electronics has the potential to revolutionize the medical field. Various body conformal flexible sensors have been used to monitor motion and physiological electrical signals such as electrocardiography (ECG), electroencephalography (EEG) and body composition analysis via body bio-impedance measurements. Smart sensor nodes not only provide accurate and continuous data in time but also automate the process of maintaining medical records, thereby lowering the workload oft he health worker or clinician. This course offers an avenue for the students to understand the interdisciplinary principles that make it possible to interpret human physiology by utilizing discreet electronic components. Most importantly, participants will get a chance to do hands-on system design specific to electronically tracking a particular physiological phenomenon. In particular, the focus will be laid on programming of micro controllers, interfacing with sensors, acquisition of data and utilizing discreet analog elements for bio-signal processing. The programming will be performed in C.


The course will be taught in English and by the ITET center for project based learning.
227-0085-27LP&S: Android Application Development (AAD) Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W4 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveAndroid Applications – Programming and development of Application - Android Studio – Smart Phone Sensors – GPS and Google Maps.

Although the App-Industry is dominated by the giant Apps right now, it is still crucial that one knows how those Apps function and how those Apps are communicating with their hardware. This course offers the opportunity for the participants to understand the development of application using Android Studio. Most importantly, participants will get a chance to do hands-on software design specific to Android smartphone and the data acquisition from sensors, GPS, google maps and other internal devices. The main goal of the course if providing the students with the basic principle and software programming for build up every android application. The course include 4-5 weeks project were the students alone or in group will build up a working demo of a target application. The course will conclude with the presentation of the students work. Previous experience in C/Java or other languages is preferable but not mandatory. The students will program their own Android Smartphone.

The course will be taught in English by the new Project-based learning centre.
227-0085-28LP&S: iCEBreaker FPGA For IoT Sensing Systems Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PM. Magno, C. Vogt
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveUltra Low Lattice FPGA – High Level Programming – Peripehrals Interfacing using an Lattice FPGA

Field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing , so they are also "field-programmable". The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). However more and more nowdays producers and open source community are providing higher level toolls to program them similary than processors. On the other side still it is important know the hardware architectures. This course will give to the students the opportunity to program FPGA in a high level way and use them to connect with external peripherals such as display, sensors, etc. In particular, the course will use the iCEBreaker FPGA boards that is specifically designed for students and engineers . They work out of the box with the latest open source FPGA development tools and next-generation open CPU architectures. The course will also iCEBreaker can be expandable through its Pmod connectors, so the students can make use of a large selection of third-party modules. The course will include a project where the students will learn how to build a full working system for the next generation of Internet of Things intelligent smart sensing.

The course will be taught in English by the new D-ITET center for Project-based learning.
227-0085-29LP&S: Embedded Deep Learning with Huawei Atlas 200 AI Dev Kit Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveDeep Learning Intro - Python - Accelerated Embedded Computing

Deep neural networks (DNNs) have become the leading method for a wide range of data analytics tasks, after a series of major victories at the ImageNet Large Scale Visual Recognition Challenge (ILSVRC). For ILSVRC, the task was to classify images into 1000 different classes, many of which are difficult to distinguish (e.g. many classes are different breeds of dogs). All that was given were 1.2 million labelled images. Meanwhile, this recipe for success has taken over many more areas, from image-based tasks like segmenting objects in images, detecting objects, enhancing images using super-resolution and compression artifact reduction, to robotics and reinforcement learning, and a wide range of industrial applications.
DNNs and their subtype convolutional neural networks (CNNs) have not been new in the 2013 when the wave of success has started, but they got this huge boost through the new availability of large-scale dataset and—at least as importantly—the availability of the necessary compute resources by using GPUs to perform the computations required during training.
While GPUs were then also used to stem the high computation effort of DNNs during inference (e.g. classifying images directly using a trained DNN rather than training the DNN itself). The high demand, the need for cost efficiency, and the goal of deploying DNNs not just in data centers but pervasively in everyday devices, wearables, and low-latency industrial or interactive applications, has triggered the development of various application-specific processors which are much faster, vastly more energy efficient, and cheaper at the same time—such as the Google TPU, Graphcore, …, and Huawei’s Ascend/Atlas platforms.

In this course, you will learn:
1) the basics of deep neural networks, how they work, and what challenges there are for inference,
2) how platforms with specialized hardware accelerators, specifically the Huawei Atlas 200, can be used for running DNN inference and getting a practical application running, and
3) work on your own project using DNNs and hardware accelerators based on your own ideas or on some of our proposals.

The course will be taught in English by the new D-ITET center for Project-Based Learning and a special guest lecturer from Huawei. Individual interactions/help can also be in (Swiss) German.
Most sessions will be around 1 hour of lecture and 2 hours of practical computer exercises. We will start an introduction and then you will have ca. 8 weeks to work on your project, which will concluded with a final presentation of your results.
227-0085-31LP&S: Vision Goes Vegas Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W2 credits2PL. Van Gool, F. Yu
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveComputer Vision beschäftigt sich unter anderem damit, Maschinen zu befähigen ihre Umwelt zu sehen und das wahrgenommene Bild zu verstehen. In unserem Projekt soll ein System entwickelt werden, das Spielkarten erkennen kann und, einer guten Strategie folgend, erfolgreich Black-Jack spielen kann. Die Teilnehmer des Projektes werden kleine Teams bilden und gemeinsam mit einem Assistenten die Aufgabe erarbeiten und eine Implementierung erstellen. Am Ende des Semesters sollen die Programme im öffentlichen Wettstreit gegeneinander antreten!

Ziel des Projektes ist es, aktuelle Methoden der Computer Vision kennen zu lernen. Spielkarten, die von einer Digitalkamera in beliebiger Orientierung aufgenommen werden, müssen registriert und erkannt werden. Ein Strategiemodul kontrolliert dann die Spieltaktik aufgrund allgemeiner Regeln und dem Wissen über schon gefallene Karten. Da sehr viele verschiedene Möglichkeiten bestehen, solch ein System zu realisieren, sind der Phantasie der Teilnehmer keine Grenzen gesetzt.

Als Voraussetzungen sollte Interesse an Computer Vision mitgebracht werden und die Bereitschaft, sich in einem Team von Mitstudierenden einzubringen. Kenntnisse in C++ sind notwendig.

Der Kurs wird von Prof. Fisher Yu mitbegutachtet.

Dieses P&S wird in englischer Sprache durchgeführt.
227-0085-32LP&S: Magnetic Fields in Our Daily Life Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PJ. Leuthold
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMagnetic fields can be found everywhere but are rarely directly perceptible. This also leads to sometimes irrational fears, such as of electrosmog. The power supply with direct current, 16.67 Hz and 50 Hz alternating current is indispensable today. Wherever electricity flows, magnetic fields are generated. That is why magnetic fields are omnipresent. But where do particularly high fields occur? How high can these fields be before they cause damage to health? Many studies have already dealt with this question and country-specific guidelines have been defined on this basis. But are these actually adhered to? Where are the legal limits exceeded? What are the consequences? The P&S will deal with this topic and an invited guest will speak.

The participants of the P&S will pursue small research projects of their own. To do this, they will be equipped with mobile measuring devices that can be connected to a smartphone to search for and characterise various magnetic field sources. How strong are the magnetic fields in our environment really? Can they pose a danger? How can they be shielded? These questions will be systematically investigated.

At the end of the P&S, the individual groups present the findings
227-0085-33LP&S: Accelerating Genome Analysis with FPGAs, GPUs, and New Execution Paradigms Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PC. Firtina
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveGenome analysis is a cornerstone for groundbreaking scientific and medical advancements, including personalized healthcare. However, the field faces significant computational challenges, such as algorithmic bottlenecks and the handling of large datasets. This course aims to provide a comprehensive understanding of these computational facets, spanning across the computing stack from algorithms, software & tools, to microarchitecture & hardware accelerators.

The course will cover how advanced hardware solutions like FPGAs and GPUs can expedite genome analysis by reducing computational time and energy consumption. In parallel, it will delve into the use and development of heuristic algorithms & tools for accelerating genome analysis across various computational platforms. These algorithms, for example, can offer tradeoffs between computational intensity and accuracy. Students will engage in hands-on projects focused on optimizing existing methods or innovating new solutions for genome analysis. The curriculum’s dual emphasis on hardware solutions and versatile algorithmic strategies offers students a holistic view of the current challenges and potential resolutions within the realm of genome analysis.

The course is conducted in English.

Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=bioinformatics
ContentThe students carry out a hands-on project under the supervision of their mentors. We also offer the following lectures that the students are encouraged to follow to make impactful progress on their projects.

Lecture 1a: P&S Course Introduction & Scope
Lecture 1b: Project Overview and Q&A

Lecture 2: Introduction to Genome Analysis

Lecture 3: From Molecules to Data: An Overview of DNA Sequencing Technologies

Lecture 4a: Fundamentals of Sequence Alignment: Algorithms and Applications
Lecture 4b: Optimizing Sequence Search: Hashing, Indexing, and Filtering Techniques

Lecture 5a: Building the Blueprint of Life: Genome Assembly
Lecture 5b: Generating Insights from Genome Analysis: Variant Calling and Functional Genomics

Lecture 6a: GateKeeper
Lecture 6b: SneakySnake
Lecture 6c: GRIM-Filter

Lecture 7a: GenASM
Lecture 7b: Scrooge

Lecture 8: SeGraM

Lecture 9: GenStore

Lecture 10a: GenPIP
Lecture 10b: TargetCall

Lecture 11a: BLEND
Lecture 11b: AirLift

Lecture 12a: Raw Nanopore Signal Analysis & RawHash
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/doku.php?id=bioinformatics
LiteratureLearning Materials
===============

1. Overview paper on co-designing hardware and software for genome analysis: https://people.inf.ethz.ch/omutlu/pub/AcceleratingGenomeAnalysis_dac23.pdf

2. Survey on the main steps in the genome analysis pipeline and their bottlenecks: https://people.inf.ethz.ch/omutlu/pub/IntelligentGenomeAnalysis_csbj22.pdf

3. Survey on accelerating genome analysis: https://people.inf.ethz.ch/omutlu/pub/AcceleratingGenomeAnalysis_ieeemicro20.pdf

4. Detailed survey on state-of-the-art algorithms for sequencing data: Link

5. Example of accelerating genomic sequence matching with FPGAs or GPUs: Link

6. Example using different computing paradigms for read mapping and alignment, improving energy consumption: https://arxiv.org/pdf/1711.01177.pdf, https://arxiv.org/pdf/2208.01243.pdf

7. Examples of software/hardware co-design for genomic sequence matching:
- Link
- Link
- https://people.inf.ethz.ch/omutlu/pub/GenStore_asplos22-arxiv.pdf
- https://arxiv.org/pdf/2209.08600.pdf

8. Example on analyzing raw nanopore signals: https://arxiv.org/pdf/2301.09200.pdf
Prerequisites / Notice- No prior knowledge in bioinformatics or genome analysis is required.
- An interest in optimizing efficiency and solving complex problems is essential.
- Basic to good knowledge in C or C++ programming language is required.
- Previous coursework in Digital Design and Computer Architecture, or an equivalent course, is desirable.
- Experience in either FPGA implementation, GPU programming, or algorithm design is highly beneficial but not mandatory.
CompetenciesCompetencies
Concepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Decision-makingfostered
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Leadership and Responsibilityfostered
Personal CompetenciesAdaptability and Flexibilityassessed
Creative Thinkingfostered
Critical Thinkingfostered
Integrity and Work Ethicsfostered
Self-awareness and Self-reflection fostered
Self-direction and Self-management assessed
227-0085-34LP&S: Exploration of Emerging Memory Systems Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PO. Mutlu
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveDRAM is predominantly used to build the main memory systems of modern computing devices. Emerging memory technologies (RRAM, PCM, STT-MRAM, FeRAM) provide an exciting opportunity to replace or complement DRAM. Simulation-based experimental studies are key for understanding the complex interactions between DRAM, emerging memory technologies, and modern applications. Ramulator is an extensible main memory simulator providing cycle-accurate performance models for a variety of commercial DRAM standards (e.g., DDR3/4, LPDDR3/4, GDDR5, HBM), emerging memory technologies, and academic proposals. Ramulator has a modular design that enables easy integration of additional standards, technologies and mechanisms. Ramulator is written in C++11 and can be easily integrated to full-system simulators such as gem5.

In this P&S, you will design new memory and memory controller mechanisms for improving overall system performance, energy consumption, reliability, security, scalability and cost. You will extend Ramulator with these new designs and evaluate their performance, energy consumption, and reliability using modern applications.
This will be the right P&S for you if you would like to learn about the state-of-the-art and future memory and memory controllerdesigns and their interaction with modern applications.

This P&S will also enable you to hands-on simulate and understand the memory system behavior of modern workloads such as machine learning, graph analytics, genome analysis.

The course is conducted in English.

Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=ramulator
Lecture notesSee https://safari.ethz.ch/projects_and_seminars/doku.php?id=ramulator
LiteratureLearning Materials
===============

An old version of Ramulator:
https://github.com/CMU-SAFARI/ramulator

Original Ramulator paper:
https://people.inf.ethz.ch/omutlu/pub/ramulator_dram_simulator-ieee-cal15.pdf

An example study of modern workloads and DRAM architectures using Ramulator:
Link

An example recent study of a new DRAM architecture using Ramulator:
Link

An example recent study of a new virtual memory system architecture using Ramulator:
https://people.inf.ethz.ch/omutlu/pub/VBI-virtual-block-interface_isca20.pdf

Several examples of new ideas enabled by Ramulator based evaluation
https://people.inf.ethz.ch/omutlu/pub/rowclone_micro13.pdf
https://people.inf.ethz.ch/omutlu/pub/salp-dram_isca12.pdf
https://people.inf.ethz.ch/omutlu/pub/raidr-dram-refresh_isca12.pdf
https://people.inf.ethz.ch/omutlu/pub/DR_STRANGE_EndtoEnd-DRAM-TRNG_hpca22.pdf
Prerequisites / NoticePrerequisites of the course:
Digital Circuits AND Computer Engineering
A good knowledge in C/C++ programming language.
Interest in making things efficient and solving problems.
Interest in understanding software development and hardware design, and their interactions.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Leadership and Responsibilityassessed
Personal CompetenciesAdaptability and Flexibilityassessed
Critical Thinkingassessed
Self-direction and Self-management assessed
227-0085-35LP&S: FPGA-based Exploration of DRAM and RowHammer Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PO. Mutlu
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveDRAM is predominantly used to build the main memory systems of modern computing devices. To improve the performance, reliability, and security of DRAM, it is critical to perform experimental characterization and analysis of existing cutting-edge DRAM chips.

SoftMC is an FPGA-based DRAM testing infrastructure that enables the programmer to perform all low-level DRAM operations (i.e., DDR commands) in a cycle-accurate manner. SoftMC provides a simple and intuitive high-level programming interface (in C++) that completely hides the low-level details of the FPGA from programmers. Programmers implement test routines in C++, and the test routines automatically get translated into the low-level SoftMC memory controller operations in the FPGA. SoftMC developers write low-level hardware description language code to enable new and faster studies.

In this P&S, you will have the chance to learn how DRAM is organized and operates in a low-level and gain practical experience in using SoftMC while developing SoftMC programs for new DRAM characterization studies related to performance, reliability, and security. You may also improve the SoftMC infrastructure itself to enable new studies. And, who knows, you might discover new security vulnerabilities like RowHammer.
This will be the right P&S for you if you are interested in DRAM technology and would like to learn more about it as well as FPGA technology and how it can be used for practical purposes such as understanding and mitigating RowHammer attacks, generating true random numbers, reducing memory latency, fingerprinting and identifying devices, and improving reliability.

Prerequisites of the course:
- Digital Circuits AND Computer Engineering (or equivalent courses)
- Familiarity with FPGA programming
- Interest in low-level system exploration and memory
- Interest in discovering why things do or do not work and solving problems

The course is conducted in English.
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/doku.php?id=softmc
LiteratureLearning Materials:
===================

- An old version of SoftMC is here: https://github.com/CMU-SAFARI/SoftMC
- SoftMC description: https://people.inf.ethz.ch/omutlu/pub/softMC_hpca17.pdf
- SoftMC lecture: https://www.youtube.com/watch?v=tnSPEP3t-Ys
- Example RowHammer study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/Revisiting-RowHammer_isca20.pdf
- Example security attack study using SoftMC: Link
- Example neural network acceleration study using SoftMC: Link
- Example random number generation study using SoftMC: Link
- Example physical unclonable function study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/dram-latency-puf_hpca18.pdf
- The original RowHammer study using SoftMC: https://people.inf.ethz.ch/omutlu/pub/dram-row-hammer_isca14.pdf
- PiDRAM: A Holistic End-to-end FPGA-based Framework for Processing-in-DRAM: https://arxiv.org/abs/2111.00082
- PiDRAM Source Code: https://github.com/CMU-SAFARI/PiDRAM
- DRAM Bender: An Extensible and Versatile FPGA-based Infrastructure to Easily Test State-of-the-art DRAM Chips: https://arxiv.org/pdf/2211.05838.pdf
- DRAM Bender Source Code: https://github.com/CMU-SAFARI/DRAM-Bender
Prerequisites / NoticePrerequisites of the course:
- Digital Circuits AND Computer Engineering
- Familiarity with FPGA programming
- Interest in low-level system exploration and memory
- Interest in discovering why things do or do not work and solving problems
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Personal CompetenciesCritical Thinkingassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed
227-0085-36LP&S: Genome Sequencing on Mobile Devices Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3PC. Firtina
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveGenome analysis is the foundation of many scientific and medical discoveries, and serves as a key enabler of personalized medicine. This analysis is currently limited by the inability of existing technologies to read an organism’s complete genome. Instead, a dedicated machine (called sequencer) extracts a large number of shorter random fragments of an organism’s DNA sequence, known as reads. Small, handheld sequencers such as ONT MinION and Flongle make it possible to sequence bacterial and viral genomes in the field, thus facilitating disease outbreak analyses such as COVID-19, Ebola, and Zika. However, large, capable computers are still needed to perform genome assembly, which tries to reassemble read fragments back into an entire genome sequence. This limits the benefits of mobile sequencing and may pose problems in rapid diagnosis of infectious diseases, tracking outbreaks, and near-patient testing. The problem is exacerbated in developing countries and during crises where access to the internet network, cloud services, or data centers is even more limited.

In this course, we will cover the basics of genome analysis to understand the speed-accuracy tradeoff in using computationally-lightweight heuristics versus accurate computationally-expensive algorithms. Such heuristic algorithms typically operate on a smaller dataset that can fit in the memory of today’s mobile device. Students will experimentally evaluate different heuristic algorithms and observe their effect on the end results. This evaluation will give the students the chance to carry out a hands-on project to implement one or more of these heuristic algorithms in their smartphones and help the society by enabling on-site analysis of genomic data.

The course is conducted in English.

Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=genome_seq_mobile
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/doku.php?id=genome_seq_mobile
LiteratureLearning Materials
===============

1. A survey on accelerating genome analysis: https://arxiv.org/pdf/2008.00961

2. A detailed survey on the state-of-the-art algorithms for sequencing data: https://arxiv.org/pdf/2003.00110

3. An example of how to accelerate genomic sequence matching by two orders of magnitude with the help of FPGAs or GPUs: https://arxiv.org/abs/1910.09020

4. An example of how to accelerate read mapping step by an order of magnitude and without using hardware acceleration: https://arxiv.org/pdf/1912.08735

5. An example of using a different computing paradigm for accelerating read mapping step and improving its energy consumption: https://arxiv.org/pdf/1708.04329

6. Two examples on using software/hardware co-design to accelerate genomic sequence matching by two orders of magnitude: https://arxiv.org/abs/1604.01789 https://arxiv.org/abs/1809.07858

7. An example of a purely software method for fast genome sequence analysis: http://www.biomedcentral.com/content/pdf/1471-2164-14-S1-S13.pdf

8. From Molecules to Genomic Variations: Accelerating Genome Analysis via Intelligent Algorithms and Architectures: https://arxiv.org/abs/2205.07957

9. Accelerating Genome Analysis, Invited Talk BSC, Onur Mutlu: https://www.youtube.com/watch?v=tVpg0XqU_c4
Prerequisites / NoticePrerequisites of the course:
- No prior knowledge in bioinformatics or genome analysis is required.
- A good knowledge in C programming language and programming is required.
- Interest in making things efficient and solving problems
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Leadership and Responsibilityassessed
Personal CompetenciesAdaptability and Flexibilityassessed
Critical Thinkingassessed
Self-direction and Self-management assessed
227-0085-37LP&S: Data-Centric Architectures: Fundamentally Improving Performance and Energy Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveData movement between the memory units and the compute units of current computing systems is a major performance and energy bottleneck. From large-scale servers to mobile devices, data movement costs dominate computation costs in terms of both performance and energy consumption. For example, data movement between the main memory and the processing cores accounts for 62% of the total system energy in consumer applications. As a result, the data movement bottleneck is a huge burden that greatly limits the energy efficiency and performance of modern computing systems. This phenomenon is an undesired effect of the dichotomy between memory and the processor, which leads to the data movement bottleneck.

Many modern and important workloads such as machine learning, computational biology, graph processing, databases, video analytics, and real-time data analytics suffer greatly from the data movement bottleneck. These workloads are exemplified by irregular memory accesses, relatively low data reuse, low cache line utilization, low arithmetic intensity (i.e., ratio of operations per accessed byte), and large datasets that greatly exceed the main memory size. The computation in these workloads cannot usually compensate for the data movement costs. In order to alleviate this data movement bottleneck, we need a paradigm shift from the traditional processor-centric design, where all computation takes place in the compute units, to a more data-centric design where processing elements are placed closer to or inside where the data resides. This paradigm of computing is known as Processing-in-Memory (PIM).

This is your perfect P&S if you want to become familiar with the main PIM technologies, which represent "the next big thing" in Computer Architecture. You will work hands-on with the first real-world PIM architecture, will explore different PIM architecture designs for important workloads, and will develop tools to enable research of future PIM systems. Projects in this course span software and hardware as well as the software/hardware interface. You can potentially work on developing and optimizing new workloads for the first real-world PIM hardware or explore new PIM designs in simulators, or do something else that can forward our understanding of the PIM paradigm.

Prerequisites of the course:
- Digital Circuits AND Computer Engineering (or equivalent courses)
- Familiarity with C/C++ programming.
- Interest in future computer architectures and computing paradigms.
- Interest in discovering why things do or do not work and solving problems
- Interest in making systems efficient and usable

The course is conducted in English.
The course has two main parts:
1. Weekly lectures on processing-in-memory.
2. Hands-on project: Each student develops his/her own project.
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/
LiteratureLearning materials
============

Summary papers about recent research in PIM.
- Link
- Link
- Link

An analysis of a real-world processing in memory architecture.
Link
Repository: https://github.com/CMU-SAFARI/prim-benchmarks

PIM Simulators.
Ramulator-PIM: A version of Ramulator simulator for PIM.
https://github.com/CMU-SAFARI/ramulator-pim
DAMOV simulator.
https://github.com/CMU-SAFARI/DAMOV

UPMEM SDK documentation: The first real-world PIM architecture.
https://sdk.upmem.com/2023.1.0/

An example recent study of 3D-stacked PIM for consumer workloads.
Link

An example recent study of lightweight PIM functionality on 3D-stacked memory:
Link

An example recent study of a PIM accelerator for graph processing.
Link

An example recent study of a Processing-using-Memory system.
https://people.inf.ethz.ch/omutlu/pub/ambit-bulk-bitwise-dram_micro17.pdf
https://people.inf.ethz.ch/omutlu/pub/SIMDRAM_asplos21.pdf
Prerequisites / NoticePrerequisites of the course:
- Digital Circuits AND Computer Engineering (or equivalent courses).
- Familiarity with C/C++ programming.
- Interest in future computer architectures and computing paradigms.
- Interest in discovering why things do or do not work and solving problems
- Interest in making systems efficient and usable
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Leadership and Responsibilityassessed
Personal CompetenciesCritical Thinkingassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed
227-0085-38LP&S: Controlling Biological Neuronal Networks Using Machine Learning Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W4 credits5PJ. Vörös
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveThe way memory and learning is achieved in the brain is an unsolved problem. Due to its relative simplicity, in-vitro neuroscience can help us discover the fundamentals of information processing in the brain. For this we can simulate a small number of biological neurons on top of an array of microelectrodes. Such an approach allows us to simulate the electrical activity of the neurons when they get stimulated.

Following this approach, we can investigate biological neural networks, that have about 5-50 neurons and a controlled network architecture. Still, their behavior remains highly unpredictable. Therefore, it is not yet clear how such networks need to be stimulated electrically in order to control their behavior. However, we can use machine learning to find a mapping between a stimulus and a desired response. More specifically, we can use reinforcement learning, since finding the right stimulation pattern is an instance of the so called multi-armed bandit problem.

This P&S consists of two parts. In the first part we will introduce you to the way neurons can be simulated. You will learn how neurons work and how they communicate. The second part will be about machine learning. We will discuss the basics of both artificial neural networks (ANN) and reinforcement learning. As homework exercises you will implement a reward function for a provided reinforcement learner, which will control your biological networks. In addition you will
implement an ANN, that replaces unsatisfactorily performing stimulation patterns with new patterns, that this network evaluates to perform better.

If the current situation will allow, the developed ANNs will be tested on real neurons in our laboratory.

This P&S will be given in English. In total, the P&S takes 8 afternoons and about 50 hours of homework (ANN implementation).
227-0085-39LP&S: Python for Science & Machine Learning Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveThis beginner course to programming with Python - with a focus on applications in science and technology - is an ideal starting point for later courses. We will start with an introduction to the dev environment and tools for effective development to get you started. Then we will learn the basics of Python with exercises, and discover popular modules for data processing and visualisation that will be useful for your later studies and career. We conclude with an introduction to popular machine learning techniques and some time for you to implement your own small free-style projects.

By the end of the semester, you will
- be familiar with your PC’s command-line interface and know how to use available dev environments effectively.
- have learned the basics of Python and be able to write basic programs that do what you want (most of the time) with the help of modules.
- be able to process, visualize and analyze numerical data, e.g. lab measurements, images, etc.
- have first experience with machine learning techniques
- maintain your first git repository and know how to collaborate with others on coding projects.

Language: English / German (if necessary)
227-0085-44LP&S: Understanding and Designing Modern SSDs (Solid-State Drives) Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveNAND flash memory is the de facto standard in architecting a storage device in modern computing systems. As modern computing systems process a large amount of data at an unprecedented scale, a storage device needs to meet high requirements on storage capacity and I/O performance. A NAND flash-based SSD can provide an order(s) of magnitude higher I/O performance compared to traditional hard-disk drives (HDDs), with a much lower cost-per-bit value over any other SSDs based on emerging non-volatile memory (NVM) technologies.

NAND flash memory has several unique characteristics, such as the erase-before write property (i.e., a flash cell needs to be first erased before programming it), limited lifetime (i.e., a cell can reliably store data for a certain number of program/erase cycles), and large operation units (e.g., a NAND flash chip reads/writes data in a page (e.g., 16 KiB) granularity). To achieve high performance and large capacity of the storage system while hiding the unique characteristics of NAND flash memory, it is critical to design efficient SSD firmware, commonly called Flash-Translation Layer (FTL). An FTL is responsible for many critical management tasks, such as address translation, garbage collection, wear-leveling, and I/O scheduling, that significantly affect the performance, reliability, and lifetime of the SSD.

In this P&S, we will cover how a modern NAND flash-based SSD is organized and operates, from the basics of underlying NAND flash devices and various SSD-management tasks at the FTL-level. You will build a practical SSD simulator by refactoring MQSim, a state-of-the-art simulator for high-end SSDs, to support advanced features of modern NAND flash chips and essential SSD-management tasks. This will allow you to have the chance to obtain a comprehensive background of modern storage systems and research experience on system optimization with rigorous evaluation.

Prerequisites of the course:
• No prior knowledge in NAND flash-based storage systems is required.
• Digital Circuits AND Computer Engineering (or equivalent courses)
• Good knowledge in C/C++ programming language is required.
• Interest in system optimizations

The course is conducted in English.
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/
LiteratureLearning Materials
============

Inside NAND Flash Memories: https://search.library.ethz.ch/permalink/f/823s1o/ELENDING603606

Inside Solid State Drives (SSDs):
https://search.library.ethz.ch/permalink/f/823s1o/ELENDING1030264

MQSim, an open-source multi-queue SSD simulator

Source code: https://github.com/CMU-SAFARI/MQSim

Paper: https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf

An example of how to improve SSD performance by optimizing the I/O scheduling policy of the FTL: Link

Examples of how to improve SSD reliability by exploiting physical characteristics of modern NAND flash memory:
Link
Link
https://arxiv.org/pdf/1706.08642.pdf

Examples of how to improve the security and privacy of stored data in SSDs: Link
Link
Prerequisites / NoticePrerequisites of the course:
- No prior knowledge of NAND flash-based storage systems is required.
- Digital Circuits AND Computer Engineering (or equivalent courses).
- Good knowledge of C/C++ programming language is required.
- Interest in system optimizations
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkassessed
Personal CompetenciesCritical Thinkingassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed
227-0085-45LP&S: Robotic Maze Solving with a TI-RSLK Robot (RMaze) Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMicrocontroller programming (C) – Peripherals Interfacing using a MSP433 MCU – Control of a Robot in a maze

The course will focus on teaching how to build and program a Texas Instrument robotic system learning kit (TI-RSLK). It is a robot kit, which includes a 2 wheeled robot, a line sensor to determine lines on the floor as well as sensors to recognize walls. The robot is driven by a MSP432 state of the art ARM Cortex M4 processor.

This course will give the students the opportunity to learn how to program the microcontroller of this robot to navigate in a small maze. For this, the students will learn how to control the motors and, consequently the movement of the robot with the peripherals of the microcontroller. Next to the movement, also the control and readout of the attached sensors will be part of the P&S course.

Once the students are able to read sensor values and control the motors of the robot, this course will conclude with a 4-week project. Within this project the students will design their own algorithm, such that the robot can navigate autonomously within a maze. A small competition at the end of the P&S will find the fastest robot of the group.

The course will be taught in English by the new D-ITET center for Project-based learning, the programming toolchain will be installed on the student’s own laptop. Experience with microcontroller programming (C) is an advantage, however not required. A short introduction will be given during the course.

This course will be taught in English or in German if necessary.
227-0085-46LP&S: Embedded Systems With Drones Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W4 credits4P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMicrocontrollers - Programming in C – Drones – Autonomous Drones – Embedded System – Sensors.


Drones can be fun to use but understanding the hardware and software and building and programming them to be intelligent and autonomous is even better. This course gives the basis of the embedded systems having the drones as the primary target. The course will introduce embedded systems and, in particular, the microcontroller ARM Cortex-M, focusing on all the crucial blocks such as Interrupts, GPIO, ADC's, Timers, and Serial communication protocols. Apart from the core topics, real-time and power-efficient algorithms for attitude and motor control are also discussed, making the drone efficient. Finally, exciting drone exercises are supported in the course to experiment with the development kit. The course will end with a 4-5 weeks project where the students will make the drone fly with some specific goal. It is not required any previous knowledge except C language.
The course will be taught in English and organized by the new Project-Based Learning center.
227-0085-47LP&S: Machine Learning on Smart Phone Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W3 credits3P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMachine Learning with Smart Phone Sensors –Programming Android Phones – Neural Networks – Keras/Tensor Flow- Projects and App on smartphones

Smartphones have several sensors that can acquire much useful information, for instance where we are, what we are doing, with whom we are together, what is our constitution, what are our needs. Based on this information our 'smartphone' offers us the appropriate computational power to process them in loco without sending the sensor data to the cloud. This course focus on giving the bases of machine learning and embedded systems. The student will learn the tools to implement a machine learning algorithm, such as Tensor Flow and others in their android phones to have an advanced smartphone. The course will end with 4 weeks project where the students can target a specific application scenario. It is not required any previous experience In machine learning. Phyton is a plus but the basis of phyton will be given in the course to be able to complete the project.
The course will be taught in English and organized by the new Project-based Learning center.
227-0085-48LP&S: Introduction to Program Nao Robots for Robocup Competition Restricted registration - show details
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W3 credits3PM. Magno, L. Pascarella
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveProgramming Robots – Sensors- Humanoid Robot.

NAO robots from Softbank are the leading humanoid robot being used in research and education worldwide. Robotics is the fastest growing and most advanced technology used in education and research. The main goal of this course is to introduce and allowing the students to learn how to program an NAO humanoid robot to make him walk, talking, watching objects understanding the human, and reacting to external input. The Nao Robots used in this course are equipped with many sensors: Tactile Sensors, Ultrasonic sensors, A Gyro, An Accelerometer, Force Sensors, Infrared sensors, 2 HD Cameras, 4 Microphones, and high accuracy digital encoders on each joint. It has two processors on board: an Intel Atom 1.6Ghz (The main computer includes SSD drive, WiFi, Bluetooth, and wired network) and an additional ARM-9 processor in its chest.
The course will introduce the software package and the full SDK and API. The students will learn how to program ( mainly in C and Phyton) the robot to access the full functionality. To improve the hands-on skills of students the course will end with a 5 weeks project where the students in the group will compete in a small soccer game where the robots will play the game following and kicking a red ball. It is not requested any previous knowledge but programming skills are a plus.
The course will be taught in English and organized by the new Project-based Learning center.
227-0085-49LP&S: Smart Patch Projects Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
W4 credits4P
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveWearable devices, PCB Design, Firmware developing, multi-sensors, Communication.

The Smart Patch project will design autonomous, low power and mesh enabled multi-sensor wearable smart patches. They will be based on the always-on smart sensing paradigm to continuously acquire process and stream physiological data in real-time. They can be trained to autonomously detect illness symptoms or other physical conditions, such as stress. The students will work in a team to design a sub-block of the smart patch. According to the students' background, they will be associated swith designing the hardware or the firmware. Together in a team, they will learn how to structure problems and identify solutions, system analysis, and simulation, as well as presentation and documentation techniques. They will get access to D-ITET labs and state-of-the-art engineering tools (Matlab, Simulink, Firmware development IDE, PCB Design, etc.)

The projects will be done under the Smart Patches: a flagship project for D-ITET students. (pbl.ee.ethz.ch)
  • First page Previous page Page  2  of  3 Next page Last page     All