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
Summary
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
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
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.