Python virtual labs implemented via the Jupyter Notebook developed for EE 120: Signals and Systems at UC Berkeley.
These labs were developed by the EE 120 course staff in the spring 2019, fall 2019, and spring 2020 semesters. The topics follow our course's content and are listed below. They're ideal for an entry-level upper division course with a focus in signal processing where the students have some prior programming exposure.
We presented these labs at the 2020 International Conference on Higher Education Advances. The paper is available here.
The relevant Jupyter Notebook (.ipynb) file that students complete for Lab N is at labN/labN.ipynb
. For example, the file for Lab 3 is named lab3.ipynb
, located in the lab3
folder. The folder labN
also contains all resources necessary for that lab to function as intended. Changing the directory structure provided in this repository may cause issues, since the labs expect certain fixed filepaths (e.g., when displaying images inside the notebook, loading data from provided files, or running test cases to provide students with sanity checks on their work).
The versions here are without solutions. If you're an educator at another institution and would like to use these in your course, contact Prof. Babak Ayazifar ([email protected]) about acquiring solutions.
Lab | Topics |
---|---|
Lab 0: Scientific Python Tutorial |
|
Lab 1: Intro to Python for Signals and Systems |
|
Lab 2: Applications of LTI Filtering |
|
Lab 3: Practical Fourier Analysis |
|
Lab 4: Heart Rate Monitoring |
|
Lab 5: Deconvolution and Imaging |
|
Lab 6: Control |
|
Lab 7: Communication |
|
Lab 8: Shazam |
|
Lab 9: Wavelets |
|