PCP Notebooks: A Preparation Course for Python with a Focus on Signal Processing

Meinard Müller, Sebastian Rosenzweig
2022 Journal of Open Source Education  
Due to the rapid developments in machine learning and the growing importance of opensource software, Python has become the predominant computer programming language for research and education in many scientific fields. While many engineering students on the Master's level have programming skills in different programming languages such as MATLAB, C/C++, or Java, they are often less experienced in using Python and the many associated software frameworks. The PCP notebooks contribute to closing
more » ... s gap by offering open-source educational material for a Preparation Course for Python (PCP) while using signal processing as a motivating and tangible application for practicing the programming concepts. Building upon the open-access Jupyter notebook framework (Kluyver et al., 2016) , the PCP notebooks consist of interactive documents that contain executable code, textbook-like explanations, mathematical formulas, plots, images, and sound examples. Assuming some general programming experience and basic knowledge in digital signal processing, the PCP notebooks are designed to serve several purposes. First of all, they introduce basic concepts of Python programming as required when participating in lab courses in a signal processing curriculum or when working with more advanced signalprocessing toolboxes. Furthermore, the notebooks recap central mathematical concepts needed in signal processing, including complex numbers, the exponential function, signals and sampling, and the discrete Fourier transform. Another goal of the course is to familiarize students with modern tools for software development and reproducible research. Providing interactive and well-structured material that may be used in a course or for self-study, we hope that the PCP notebooks make a valuable contribution in fostering education and research in multimedia engineering and beyond.
doi:10.21105/jose.00148 fatcat:3kl7gkqitrehpfjrenaryfg67a