Univ. Cote d’Azur (Nice) Prof. P. Martinez | Data processing: Astronomical Software Engineering (S3, elective, 6 ECTS) – offered from A.Y. 2024/2025 |
Learning Outcomes: | This course provides students with the background and techniques necessary for software development in astronomy. It serves a bridge between the branch of astronomy that imparts theoretical, practical, and instrumental observing skills and the field of computer science, which instructs students on developing reliable and user-friendly numerical modelling codes or software systems. |
Knowledge and Understanding: | It provides students with the fundamentals necessary to learn software engineering from scratch, covering concepts, requirements, and specifications, as well as design, implementation, and testing. Students will gain knowledge in applying a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software or numerical code. |
Applying Knowledge and Understanding: | Hands-on experience with experimental systems and software will be provided, enabling students to implement their software designs and apply the created software systems to real-life problems in astronomy. |
Prerequisites | Natural interest in numerical modelling, practices, and astronomical instrumentation is expected. Basic programming experience is wised. |
Program | Students will acquire knowledge in (1) terminology from computational and astrophysical sciences, (2) key concepts ranging from software requirements analysis and specification to design and analysis (including software design strategies, development life-cycle models, and graphical user interface developments – GUI), (3) data and analysis software (FITS format, data reduction software, image display tools), (4) implementation and testing methodology (such as the choice of languages, coding, testing, debugging), and considerations for software scalability, maintenance, and reliability models. Students will also learn how to conduct a literature search and navigate the software design and implementation phases, which involve reviewing documents. Additionally, students will be introduced to telescope and instrument control systems (covering field rotation, active optics, and adaptive optics), as well as data reduction problems and applications. They will develop the skills necessary to implement their software designs tailored to real-life needs in astronomy. |
Description of how the course is conducted | The course encompasses various elements, including lectures, article-reading exercises, and a practical hands-on project. The program is structured into 4 modules: (1) data and data analysis, (2) software design, (3) implementation and testing, (4) telescope and instrument control systems, and (5) student projects. The project component involves a re-use analysis phase, where students assess existing solutions and determine if their software’s intended problem has already been addressed. Students conduct a literature search using web-based tools. Given that each project involves multiple design and implementation phases requiring document review, students learn the necessary processes for requirements definition, conceptual design, functional decomposition, and final design. Student projects leverage real data or lab data from the SPEED facility (Segmented Pupil Experiment for Exoplanet Detection) at the Lagrange Laboratory, or they utilize available data from on-sky instruments such as NASA/JWST and ESO-VLT/SPHERE, or data from lab. facilities. |
Description of the didactic methods | The course includes a variety of instructional methods, such as lectures, exercises, reading articles and documents, and visits to lab facilities. In addition to traditional lectures, the course incorporates: (i) Focus lectures that provide in-depth coverage of a single specific topic (e.g., class diagrams, graphical user interface design process). (ii) Computer practicum sessions involving numerical practical work (e.g., image and data reduction quality, Strehl ratio, and image quality metrics, App designer, conceptual diagram, etc.). (iii) Lab hands-on sessions for practical work in a lab environment (e.g., camera control software, deformable mirror control software, etc.). (iv) Reading assignments that promote active learning through scientific articles. (v) A mini project involving immersive work on software development, chosen from a provided list or proposed by students (subject to validation). |
Description of the evaluation methods | Students will undergo various forms of assessment, including written, oral, and report evaluations. Reading assignments may involve written or oral questions, while homework assignments may include oral presentations. The numerical project (mini project) will be coached and facilitated, requiring a report and/or an oral presentation. The final exam will consist of a conceptual essay and/or questions, along with quantitative problems. |
Adopted Textbooks | none |
Recommended readings | none |