Students will acquire a comprehensive understanding of advanced programming concepts, specifically in C++ and Python. They will become familiar with object-oriented and generic programming paradigms, as well as proficient in utilizing common data structures, algorithms, and relevant libraries and frameworks for scientific computing. Furthermore, students will be introduced to fundamental software development tools in a Linux environment, encompassing essential aspects like software documentation, version control, testing, and project management.