Show your Mastery
These are the topics that you should master during the course. I break this down into a list of topics that have a general structure and order but you can feel free to jump around the topics but you should cover each at a basic level and at least half of them at a deeper level (your choice).
Ideally you will be writing a blog post about each topic in which you can include text, images, videos or whatever helps for you to explore that area of software engineering. While putting together your content, feel free to include (or embed even) the work of others but while giving proper credit of course.
This list is by no means complete and you can dive down deeper in any area that interests you most. This course is in many ways a wide course with a shallow depth, we will look at many areas of software engineering but none at a deep level since this is the first in a series of courses on software engineering.
Core #TC1019 Topics
You should be looking at concepts (theory, opinions) as well as tools and practice.
No implied order here (waves to Floreth)
- What is software engineering? Is it a craft or an engineering discipline? Neither? Both?
- History of software engineering
- Ethics in software engineering
- Software lifecycle
- Software Development Processes
- Agile software development
- Waterfall method
- Functional and non functional requirements
- Software requirements elicitation and specification
- Unified Modeling Language (UML)
- What is software design?
- What is software architecture?
- Software design patterns
- Software testing – what kinds of testing?
- Software implementation – again, tools and support included.
- Open source software
- Software maintenance
- User interface design
- Software verification and validation
- Find at least one other topic that interests you not already covered
Mastery Topics by Ken Bauer is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.