Share with your friends
This course is designed for novice programmers learning C++ and focuses on the practical treatment of this language: scientific computing. Many courses are available on the C++ language, varying across a wide range of spectrum but very few have a particular emphasis on scientific computing. This course provides an excursion to C++ programming in scientific computing. In contrast to other courses, features of the language are demonstrated mainly using illustrations drawn from scientific computing. We start with what is referred as “procedural programming in C++” covering variables, the flow of control, input and output, pointers (including dynamic allocation of memory), functions, and reference variables. Armed with the basic knowledge of C++, we then introduce classes and the main features of object-oriented programming.
In the next step, we discuss the advanced features of C++ such as templates (generic programming) and exceptions. Having covered the features of C++ required for scientific computing, the rest of the course focuses on the application of these features. We showcase how to develop a collection of classes for linear algebra applications. Further development of these classes is left as an exercise for the students.
You will be also learning the basics of parallel computing using MPI. Finally, we demonstrate the development of an object-oriented library for solving second-order differential equations. We stress the importance of a clear programming style to improve code readability and minimize the introduction of errors in the code throughout the course.
- Course Instructor: Mr. Nishant Soni. He has a master’s degree in engineering [M.S. (Engg.)] focused on high-performance computing (HPC) from the Jawaharlal Nehru Centre for Advanced Scientific Research (JNCASR), Bangalore. He has worked as an Applications Engineer (CFD and Heat Transfer) at COMSOL Multiphysics, Bangalore in India. Prior to joining COMSOL, he worked in the field of software development, specializing in HPC simulation solutions. He has also worked on several research projects involving high-speed unsteady aerodynamics and reduced-order modeling.
- Course content: 12 Modules- 40+ Lessons (60+videos) along with quizzes and challenges/assignments
- Doubt clearance: Live video call meetings (Zoom doubt clearing sessions: bi-weekly) and Email support.
- Discussion forum: A discussion forum to discuss any topics with fellow students and the instructor
- Total access period: 6 Months from the day of enrolling
- Computer requirement: Minimum 4 GB RAM and i3 processor
- Software: GNU C++ Compiler (g++) for Linux preferred. You can also use Windows.
- Access to the course: Once you make the payment, your login ID and password will be sent automatically via email.
- Learn and master C++ programming for scientific computing applications
- Implement academic projects in C++ for your M.S. / Ph.D. thesis and also for any industrial projects.
- Write your own solver/modify the source code for OpenFOAM
- To be competent in the highly demanding field of scientific computing across various disciplines in academia and industry.
- Science and Engineering students pursuing B.Sc., B.E./B.Tech, M.Sc., MS/M.Tech, Ph.D. for their academic projects and to enhance their skills.
- Any computing enthusiasts.
- Professors/Lecturers/Teaching Assistants who want to teach or guide their students in scientific computing projects.
- Researchers, Scientists, or Engineers who want to shift from FORTRAN, MATLAB, or Python to C++ for HPC applications.
- Professionals already working in the industry but want to improve their C++ fundamentals
- Do I get a certificate?
Yes, based on your attendance and completion of tutorials, you will be given the certificate.
- Will I get placed?
The best students will be given internship opportunities and we will forward your resumes to companies that contact us for good students. Please note that we don’t give any false promises that you will be placed. Surely we will help the best students.
- Do I need a powerful workstation/computer to learn this course?
No, a normal laptop with 4 or 8GB RAM and a decent processor (i3) is good enough for this course.
- What if I don’t understand some portion or need to clarify some doubts?
We will support you through emails and zoom meetings/discussion sessions to clear all doubts and questions
- Should I know the programming or any other CFD software to learn this course?
Programming knowledge is not a prerequisite
for this course. You will learn C++ from scratch.
- Is there any prerequisite?
The course is aimed at programmers of all levels of expertise who wish to write scientific computing applications in C++. Basic familiarity with computer hardware and software, where files can be kept and edited is expected. Basic knowledge of mathematics, such as operations between vectors and matrices, and the Newton-Raphson method for finding the roots of non-linear equations would be an advantage.