This workshop will introduce participants to general code debugging principles and practices for both interpreted (Python, R) and compiled (C/C++) languages. The course will introduce popular Integrated Development Environments (IDE) for each of these languages and include hands-on exercises for finding bugs in code snippets.
Following this introduction, the second part of the workshop will introduce DDT, an advanced debugger available on all of Princeton's research computing systems and that can be used to debug serial, parallel and GPU codes.
Workshop format: Lecture, demonstration, and hands-on exercises
Target audience: This workshop is geared toward computational researchers interested in learning debugging tools and best practices.
Knowledge prerequisites: Basic Linux and some programming experience in Python and/or R and/or C/C++.
Hardware/software prerequisites: Overarching requirements for all PICSciE virtual workshops are listed at https://researchcomputing.princeton.edu/education/training/virtual-works.... Participants should ensure they have met these requirements in advance, as there will be no technical troubleshooting during the workshop itself. In particular, participants should have an account on Adroit (the cluster we will use for demonstration purposes) and be able to SSH into that machine.
Learning objectives: Attendees will learn the best practices for debugging code and gain hands-on experience using the tools.