5. Semester-by-Semester Guide
The most important part: what to achieve each year. The goal is not to "pass courses" but to accumulate evidence of ability (code, projects, portfolio).
Year 1 β Build Foundationsβ
- Focus: get comfortable with programming, foundational math, and university life.
- Aim to complete:
- A GitHub profile + a few repos.
- 2β3 small mini-projects.
- Solid basics in C/C++ or Python.
- Avoid: studying only to pass without coding yourself; copying work you don't understand.
Year 2 β Learn How Systems Workβ
- Focus: DSA, OOP, computer architecture, databases.
- Aim to complete:
- A project with a database.
- Regular DSA practice.
- Teamwork using Git (branch, PR, review).
- Avoid: memorizing DSA; teamwork without using Git.
Year 3 β Pick a Directionβ
- Focus: Operating Systems, Networks, Software Engineering, direction-specific courses.
- Aim to complete:
- One large project in your chosen direction.
- A clear portfolio (tidy GitHub, good READMEs).
- Start thinking about internships (see Career Preparation).
- Avoid: chasing too many directions at once; abandoned projects with no demo.
Year 4+ β Build Evidenceβ
- Focus: internship, specialized project, capstone (graduation thesis).
- Aim to complete:
- A complete CV + LinkedIn + GitHub.
- A project demo + a technical report.
- Join a lab/competition if you're on a research track (Research, Lab & Competitions).
- Avoid: leaving the capstone to the last minute; not recording your process (commit history, reports).
See a real graduation project at ACLAB: VR Teleoperation of a Denso VS-6577 Robot Arm.