Home
Goal of This Course¶
This course is where you stop studying software engineering as theory and start practicing it as work. Imagine joining a small company on your first day: you know Python scripts from Programming Basics, you’ve wrestled with Java classes in Object-Oriented Programming, and you’ve seen bits of project workflows in Software Development Processes. That knowledge gets you in the door — but now you’re expected to deliver.
You won’t be working alone. Just like in a real workplace, you’ll be assigned to a team of five or six, with roles already laid out. One person might coordinate, another might focus on testing, another on documentation. Together you will build something concrete: maybe a data-processing tool, maybe a small desktop application, maybe just a set of modules that fit into something bigger. Whatever the form, the point is the same — you must learn to deliver value as a group.
To do that, you will use the actual tools of the trade. Git is not an abstract topic here; it is how you keep your work alive without trampling over each other. GitLab is not a demo in a lecture; it is the office where your planning, tasks, and deadlines live. Testing with pytest
, reviewing each other’s code, fixing bugs, and automating builds — these are not “nice extras” but the daily bread that keeps the company running. If you skip them, the whole project falters.
Sessions are run like consultations, not lectures. Think of them as weekly check-ins with your boss and customer: you arrive, show what your team has achieved, and discuss what’s next. If you come empty-handed, the conversation is short and uncomfortable. Progress is measured week by week, not just at the end. In a business, nobody cares about a last-minute flood of half-finished work; here it is the same.
How Grading Works¶
Your grade is earned the same way a company earns money: through a mix of salary and sales price. Salary is steady and predictable — complete the assigned project tasks and you’re paid at a fixed rate. Price, on the other hand, comes from delivering features your customer (the tutor) actually finds valuable. Some features will be worth more, some less, and you’ll need to decide as a team whether the effort is worth the return.
Points go first to the team, like company revenue. Then they are shared out among team members, but with limits: nobody can claim an outsized share while others coast. If someone leaves the company, their share can be redistributed, but still within those limits. Bigger teams have more people to share the workload, but also higher targets to hit. Just like in a real business, success is collective.
And just as in real business, scraping by with only the bare minimum is not enough. Delivering the minimum viable product proves you can keep the lights on, but quality work is what convinces customers to come back and pay more. The stronger the foundation you lay early, the easier it is to build the next floor.
What You Will Learn (Sometimes the Hard Way)¶
In a company, nobody survives by guessing. If you don’t understand your tools, your code, or your role, you ask, you test, you read — otherwise the project breaks, and so does trust. Here, too, you are expected to work with intent, not by throwing random fixes at the wall.
Mistakes will happen. Every professional makes them. What separates a professional from an amateur is what comes next: taking responsibility, fixing the issue, and learning to avoid it the next time. Hiding problems, hoping someone else picks up the slack, or blaming the tools will only stall your team and lower your grade.
You’ll also see the value of preparation. Weekly sessions are not lectures where knowledge is handed out; they are like staff meetings. If you haven’t done your part before walking into the room, you waste everyone’s time. Teams that come prepared get meaningful feedback, new ideas, and often finish stronger and faster. Teams that don’t end up stumbling at the finish line.
Finally, remember that software engineering is collaborative. Lone-wolf heroes rarely succeed in real companies, and they won’t succeed here either. The course is built on the idea that learning how to coordinate, compromise, and communicate is just as important as writing clever code.
What This Course Is Not¶
This is not an endless lecture series, not free points for attendance, and not a playground where individual stars shine while others coast. It is a simulation of professional life: a place where showing steady progress matters more than big promises, where unfinished work has no value, and where asking questions is a sign of strength, not weakness.
Above all, it is not about never making mistakes. Everyone will make them. What matters is whether you face them, fix them, and move forward with more skill than before. That is how you grow into a professional — and that is what this course is designed to teach.
Info
Some links are for tutors' eyes only like this one: Tutor's link.