Semester by semester¶
~8 min
In short¶
This is one typical path through eight semesters of a computer science degree. Your college may order the subjects differently, and the projects here are not part of any syllabus. Each semester has one focus, the subjects that usually go with it, one project from the projects list, and one habit to build. The plan assumes about 1.5 to 2 hours of study per day, six days a week, with one rest day.
Semester 1: first programs¶
- Focus. Writing small programs that read input, use variables, and make decisions.
- Subjects. Programming fundamentals. An introduction to discrete maths if your course has it.
- Start with. Part 1 and Part 2 of the Python course.
- Project. Project 1, the command-line expense tracker.
- Habit. Use the terminal every day, even for a five-minute task.
Semester 2: functions and data¶
- Focus. Breaking a program into functions, reading and writing files, and choosing the right container for data.
- Subjects. Programming fundamentals in depth. An introduction to data structures and algorithms, such as lists, stacks, queues, and simple searching.
- Start with. Part 3 and Part 4 of the Python course.
- Project. Project 4, a file search tool that counts matches.
- Habit. Solve two small exercises a week without an assistant, and write one line on what was hard.
Semester 3: objects and structure¶
- Focus. Modelling a problem with classes, and keeping a growing program organised.
- Subjects. Data structures and algorithms in more depth. Introduction to computer architecture: how numbers and instructions are stored and run.
- Start with. Part 7 of the Python course.
- Project. Project 2, the text adventure with classes.
- Habit. Read the official documentation for one library or command each week, rather than a summary of it.
Semester 4: how the machine runs programs¶
- Focus. What the operating system does when your program runs: processes, memory, files, and scheduling.
- Subjects. Operating systems. Computer architecture in more depth.
- Project. Project 5, a small package with a test suite.
- Habit. Keep a lab notebook. Each time you learn how something works, write the question and the answer in your own words.
Semester 5: data and the web¶
- Focus. Storing data in a database and serving it over HTTP.
- Subjects. Databases, including SQL and transactions. Computer networks, starting with the layers and HTTP.
- Start with. Part 8 of the Python course, and the PostgreSQL pillar when you want more depth.
- Projects. Project 3, the REST notes API. Project 9, a small SQLite-backed store with timed queries.
- Habit. Write a short summary of each topic in your own words after you finish it.
Semester 6: depth and a first track choice¶
- Focus. Choosing a direction. Deepening one area while keeping the basics fresh.
- Subjects. Computer networks in more depth. Elective subjects offered by your college.
- Project. Project 6, a log analyser for a web server log.
- Habit. Review last semester's notes once a month. Notes you never reread are not useful.
- Choosing. Read choose a track before the end of this semester.
Semester 7: work on one track¶
- Focus. Going deeper on the track you chose, and building one project that shows how you work.
- Subjects. Electives matched to your track. A project course, if your college offers one.
- Project. Project 7, a key-value store on disk, or Project 8, a bank statement reconciler. Pick the one that fits your track.
- Habit. Keep a short project log with the date, what you did, and what broke.
Semester 8: finish and show your work¶
- Focus. Finishing a larger project, preparing for interviews or exams if your track needs them, and planning the next step.
- Subjects. Electives and your final project, if your college requires one.
- Project. Project 10, a small model that you train and evaluate honestly. It is optional if your track is not data or AI.
- Habit. Write a one-page summary of each project: what it does, how you tested it, and what you would change.
Notes on this plan¶
- Your college's syllabus, teachers, and exam calendar come first. Use this page to see how the pieces connect, not as a timetable.
- If your semester is shorter or your workload is heavier, keep the habit and drop the project. The habits matter more than the schedule.
- A semester can be spent on one project or two. Nothing here requires a fixed number of hours on a project.
Try this¶
Copy the list of eight semesters into a notes file. Next to each one, write the subjects your college lists for that semester. Mark the places where the two lists differ, and bring the list to your academic advisor or a senior student.
Sources¶
- Python course, parts and capstones (internal): Part 1, Part 3, Part 7, Part 8
- PostgreSQL documentation, the official reference for the database used in the systems pillar. https://www.postgresql.org/docs/
- Operating Systems: Three Easy Pieces, free online textbook. https://pages.cs.wisc.edu/~remzi/OSTEP/