Students will learn tools and techniques recently used in the real world software development projects.
Good selection of tools and techniques will make software development efficient and fun.
Students gain an understanding of the basic usage and suitable purpose of development tools.
Project, Software Development, Development Tool, Development Technique, Debugger
✔ Specialist skills | Intercultural skills | Communication skills | ✔ Critical thinking skills | ✔ Practical and/or problem-solving skills |
Lecture and work.
Course schedule | Required learning | |
---|---|---|
Class 1 | Collecting information | to know tools to collect information |
Class 2 | Collecting information | to use tools to collect information |
Class 3 | Debugging with GDB | to know how to use GDB |
Class 4 | Debugging with GDB | to debug with GDB |
Class 5 | Versioning with Git | to know concepts of Git |
Class 6 | Versioning with Git | to version something |
Class 7 | Bug tracking | to use a bug tracker |
Class 8 | GitHub & Pull Request | to know concepts of GitHub & PR |
Class 9 | GitHub & Pull Request | to send some PRs |
Class 10 | Unit test | to know concepts of unit test |
Class 11 | Unit test | to make some unit tests |
Class 12 | Continuous integration | to configure CI for a real project |
Class 13 | Deployment and idempotence | to know concepts of deployment and idempotence |
Class 14 | Communication | to know communication tools |
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
None (provide some handouts in each class)
To be specified in class
Assessment criteria is degree of understanding for development tools and techniques recently used.
Students must submit their software repository to which these topics have been applied.
Grade is determined by quality of a student's repository.
It is preferable to be able to use Linux terminal commands.