Home > Computational Thinking > Software Craftsmanship
Topic: Software Craftsmanship
- Lesson: Clean code practices - Part 1
- Lesson: Clean code practices - Part 2
- Lesson: SOLID design principles - Part 1
- Lesson: SOLID design principles - Part 2
- Lesson: Exception handling
- Assessment: Assessment
Lesson 1
Clean code practices - Part 1
- Self Learning Duration
- 0 mins
- Lecture Duration
- 120 mins
- Lab Tutorial Duration
- 0 mins
Self learning content
None
Lecture content
- Discuss the main concepts from: https://www.icta.lk/icta-assets/uploads/2018/12/Final-Online-Book.pdf
Lab and tutorials
None
Lesson 2
Clean code practices - Part 2
- Self Learning Duration
- 0 mins
- Lecture Duration
- 120 mins
- Lab Tutorial Duration
- 120 mins
Self learning content
None
Lecture content
- Discuss different static code analyzers
- IDE based
- Server based (SonarCube etc.)
- Discuss the code review process in the industry and associated tool that can be used.
Lab and tutorials
Select a open source code repository and run code quality analysis tools and write a report (4-5 page) on the code quality of that repository code.
Lesson 3
SOLID design principles - Part 1
- Self Learning Duration
- 30 mins
- Lecture Duration
- 120 mins
- Lab Tutorial Duration
- 180 mins
Self learning content
Watch and try to understand the SOLID principles with this video:
https://www.youtube.com/watch?v=GtZtQ2VFweA
Lecture content
- What are SOLID Design principles and why are they important.
- With examples, discuss the purpose of:
- Single-responsibility Principle.
- Open-closed Principle.
Lab and tutorials
Write code snippets to demonstrate the use of at least 1 of the above SOLID practices using any language. Use those code snippets in a blog post which introduces SOLID principles.
Lesson 4
SOLID design principles - Part 2
- Self Learning Duration
- 0 mins
- Lecture Duration
- 120 mins
- Lab Tutorial Duration
- 180 mins
Self learning content
None
Lecture content
- With examples, discuss the purpose of:
- Liskov substitution principle.
- Interface segregation principle.
- Dependency Inversion principle.
Lab and tutorials
Write code snippets to demonstrate the use of at least 3 of the SOLID practices using any language. Use those code snippets in a blog post which introduces SOLID principles.
Lesson 5
Exception handling
- Self Learning Duration
- 0 mins
- Lecture Duration
- 90 mins
- Lab Tutorial Duration
- 180 mins
Self learning content
None
Lecture content
- Discuss the need for exception handling.
- Demonstrate Exception handling best practices in coding.
- Discuss how different programming languages handle exceptions differently.
Lab and tutorials
Demonstrate exception handling on below 3 programming languages through simple code bases.
Assessment 1
Software craftsmanship
MCQ assessment (~20 Questions) verifying the understanding of the students in best practices of software craftsmanship. Preferably use a gamified assessment tool such as Kahoot.