Abstract

Our upper-division course in Signals and Systems at UC Berkeley comprises primarily sophomore and junior undergraduates, and assumes only a basic background in Electrical Engineering and Computer Science. We’ve introduced Jupyter Notebook Python labs to complement the theoretical material covered in more traditional lectures and homeworks. Courses at other institutions have created labs with a similar goal in mind. However, many have a hardware component or involve in-person lab sections that require teaching staff to monitor progress. This presents a significant barrier for deployment in larger courses. Virtual labs—in particular, pure software assignments using the Jupyter Notebook framework—recently emerged as a solution to this problem. Some courses use programming-only labs that lack the modularity and rich user interface of Jupyter Notebook’s cell-based design. Other labs based on the Jupyter Notebook have not yet tapped the full potential of its versatile features. Our labs (1) demonstrate real-life applications; (2) cultivate computational literacy; and (3) are structured to be self-contained. These design principles reduce overhead for teaching staff and give students relevant experience for research and industry.

Highlights

  • IntroductionSignals and Systems at UC Berkeley Undergraduates in our Electrical Engineering and Computer Sciences (EECS) Department at UC Berkeley take six lower-division courses: (1 and 2) Designing Information Devices and Systems I and II; (3) Discrete Mathematics and Probability Theory; (4) Structure and Interpretation of Computer Programs; (5) Data Structures; and (6) Machine Structures

  • Our course is a hub to the upper-division Engineering and Computer Sciences (EECS) curriculum, including more advanced courses, such as Digital Signal Processing and Feedback Control Systems

  • After the 2015 curriculum revision, students in our upper-division course in Signals and Systems continued to engage with the material primarily through written homework assignments and weekly discussion sections

Read more

Summary

Introduction

Signals and Systems at UC Berkeley Undergraduates in our Electrical Engineering and Computer Sciences (EECS) Department at UC Berkeley take six lower-division courses: (1 and 2) Designing Information Devices and Systems I and II; (3) Discrete Mathematics and Probability Theory; (4) Structure and Interpretation of Computer Programs; (5) Data Structures; and (6) Machine Structures. After the 2015 curriculum revision, students in our upper-division course in Signals and Systems continued to engage with the material primarily through written homework assignments and weekly discussion sections. Design Considerations Around the time our Department restructured its lower-division curriculum, the Jupyter Notebook (Kluyver et al, 2016) was published as a spin-off of the IPython suite (Pérez & Granger, 2007), providing an interactive platform for scientific computing (“Project Jupyter,” 2020). Even within our Department, many other courses, such as EE 123: Digital Signal Processing and EECS 126: Probability and Random Processes, use Jupyter Notebook assignments. Creating labs that satisfy these criteria has allowed us to cover the gamut from basic theory to state-of-the-art applications, and to limit logistical overhead

The Labs
Summary of Contributions
Case Study
Conclusions and Future Work
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.