# Introduction to Collaborative Coding ## Description This 2-day DISCnet event, given by Coleman Krawczyk (Portsmouth) will provide and introduction to good coding practices, writing code in a group, and test driven development. ## Aims The amis of this course are to have the students attending the workshop to learn how to write maintainable code in a collaborative setting. The course will aim to introduce students to the the main ideas behind writing easy to read code, what makes code maintainable, and how to write good tests. ## Learning Objectives The attendees should understand how to effectively use GitHub in a collaboration, write a python package, and set up CI to automatically check coding style and run tests. ## Prerequisites - A working knowledge of writing python code - Python 3.10 installed on their system - The ability to install new packages into your python environment - Practical use of UNIX command line - Most commands used in this workshop should work on Windows (Anaconda python with powershell terminal should work), the course runner does not have much experience debugging configuration issues on Windows - A GitHub account - A basic knowledge of Git - Git installed on their system - A working internet connecting (e.g. working WiFi) ## Important Information This course is aimed at students in Year 2 or higher of their PhD. The course may also be suitable for students in earlier years, depending on their programming experience. Attendees will need a laptop computer with 1 GB of free disk space. The code being used for the workshop along side the notes are all hosted on GitHub at [https://github.com/CKrawczyk/DISCnet_workshop](https://github.com/CKrawczyk/DISCnet_workshop)