This course will introduce students to the field of programming by taking a problem-based approach. This would involve understanding a given research problem that would require coding solution, and systematically implementing the logic behind solving the problem by use of a programming language of choice. The programming languages that will be used in this course would be mostly Python and occasionally Shell scripting. The course will provide students with opportunities to engage in problem solving, group discussions, collaborative work, and critical thinking. In addition, the students will also get an opportunity to apply the skills gained to their own research needs. This course will help prepare the students by giving them a foundation to futher explore the rapidly evolving field of programming.