Dear School of Computing and Information Systems,
We're current and former postgraduate students of the UniMelb CS programs. The curriculum is in worse shape than most students or staff seem to realise. After comparing notes with peers from other universities, and going through technical interviews ourselves, the gaps are obvious, and they hurt the value of a UniMelb CS degree.
Missing fundamental courses
UniMelb has dropped core CS courses that are still standard everywhere else. The discontinued ones include:
- Programming Language Implementation (COMP90045) - Compilers and interpreters
- Program Analysis and Transformation (COMP90053) - Static analysis and optimization
- Constraint Programming (COMP90046) - Constraint satisfaction and reasoning
- Programming the Machine (COMP20006) - Low-level systems programming
The result: UniMelb now offers zero dedicated postgraduate courses in compilers, operating systems design, database implementation, or advanced systems programming. The only systems course, Computer Systems (COMP30023), is not available to MIT or MCS students. Those are the very programs aimed at career-changers, who need this foundation most.
Databases get the same shallow treatment. INFO20003 teaches students how to use databases. Nothing covers database implementation, storage engines, query optimisation, or concurrency control. That's what separates a computer scientist from someone who just runs SQL.
This isn't a minor curriculum tweak. It's an abandonment of core CS education. Students are graduating without understanding how programming languages work, how operating systems manage resources, how databases are implemented, or how to make code run fast.
The undergraduate program: breadth over depth
The undergraduate program has the same problem. The Computing and Software Systems major only requires 12 mandatory subjects. Here's the full list:
Mandatory undergraduate subjects 12 total
Mathematics
2- MAST10006 Calculus 2
- MAST10007 Linear Algebra
Programming basics
3- COMP10001 Foundations of Computing
- COMP10002 Foundations of Algorithms
- COMP20007 Design of Algorithms
Systems and databases
3- COMP30023 Computer Systems
- INFO20003 Database Systems
- SWEN20003 Object Oriented Software Development
Software engineering & theory
4- SWEN30006 Software Modelling and Design
- COMP30026 Models of Computation
- COMP30022 IT Project (Website Development)
- SCIE10005 Science subjects
This curriculum produces web developers, not computer scientists. The capstone (COMP30022) is website development, a task most coding bootcamp grads can do after a few months. Where are the compiler, OS, database engine, or systems programming projects that anchor a real CS degree?
The MIT and MCS postgraduate programs are broken
The MIT and MCS programs try to serve two audiences in the same classrooms: career-changers with no CS background, and CS graduates looking for advanced study. The compromise satisfies neither, and the courses end up watered down for everyone.
CS graduates aren't challenged
Students who did UniMelb CS as undergrads tell us the Master's courses are easier than their undergraduate subjects. Weaker testing, simpler content. More than one person we know has called the Master's "a cash grab" rather than advanced education.
Career-changers aren't prepared
Students without a CS background graduate with a Master's despite lacking knowledge that any undergraduate is expected to have. They go into the job market with limited programming experience and no systems background, holding a credential that doesn't match what they can actually do.
What this does to graduates
These aren't hypothetical complaints. Graduates regularly hit the same problems in interviews and on the job:
- Employers tell us UniMelb grads lack systems knowledge their peers from other universities have.
- People are failing technical interviews on operating systems, compilers, database internals, and low-level programming questions they were never taught.
- Graduates have to self-teach the core CS topics that should have been part of their degree.
- PhD applicants are at a disadvantage when applying to top programs because of missing foundational coursework.
- Master's grads with wildly different skill levels are competing for the same jobs, which devalues the degree for everyone.
The courses that remain have weakened too
It's not just what's missing. The subjects still on offer have themselves got weaker. Two examples:
Internet Technologies (COMP90007) is sold as a comprehensive networking course. The reality, according to students who've taken it:
- No programming tasks or workshops, in a course that's nominally part of a CS degree.
- Assessments limited to running things like the
pingcommand. - No coverage of modern protocols, network security, or distributed systems architecture.
- Content most other universities would treat as introductory.
Distributed Systems (COMP90015) has the same problem:
- The syllabus hasn't meaningfully changed in over a decade.
- The bulk of it is basic Java socket programming.
- No cloud computing, no microservices, no consensus algorithms. The things that define modern distributed systems are not in this course.
- Students who've taken it call it "Java Sockets 101", not a graduate distributed systems course.
UniMelb CS vs UNSW, ANU, and overseas peers
When you put UniMelb next to peer programs overseas, the gap shows immediately. Students who've gone on exchange come back saying the same thing: the academic rigour and breadth are on a different level.
At top international universities, a single-semester course can have you building a real operating system, implementing a production-quality compiler, or sending bug fixes to GCC and Clang. UniMelb students struggle to find a course that introduces these topics, let alone makes you build one.
A lot of students we know now treat exchange as the part of their degree where they actually learn computer science. That's a damning thing to say about the local program. It also creates a two-tier system, since only students with the money and visa eligibility to study abroad get adequate CS training.
Core CS course availability: UniMelb vs peer universities
| Fundamental Course Area | UniMelb | UNSW | ANU | ETH Zurich | TU Munich |
|---|---|---|---|---|---|
| Compilers & Language Implementation | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
| Operating Systems Design | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
| Computer Networks | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
| Computer Architecture | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
| Database Implementation | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
| Advanced Systems Programming | ✗ Not offered | ✓ Available | ✓ Available | ✓ Available | ✓ Available |
Legend: ✓ = Available | ✗ = Not offered · Course availability checked
What we're asking for
The University of Melbourne has a responsibility to teach computer science properly, in a way that prepares students for both industry and research. Concretely, we're asking for:
1. Restore the core CS curriculum
- Reinstate Programming Language Implementation (compilers and interpreters).
- Create a dedicated Operating Systems Design course covering kernel implementation.
- Develop a Database Implementation course covering storage engines, query optimisation, and concurrency control.
- Offer Advanced Systems Programming focused on performance and low-level work.
- Run a Computer Systems Architecture course that goes beyond the basics.
2. Modernise the existing courses
- Overhaul Internet Technologies to cover modern networking, security protocols, and distributed architectures.
- Update Distributed Systems to include cloud computing, microservices, consensus algorithms, and fault tolerance.
- Make sure every course reflects how the field actually works in 2026.
3. Restructure the postgraduate programs
- Separate the conversion programs (for career-changers) from the advanced CS programs (for CS graduates).
- Add prerequisites so Master's students arrive with the foundational knowledge the courses assume.
- Set up capstone projects that require building real systems, not just websites.
- Hold the assessments to a standard appropriate for postgraduate study.
4. Transparency and accountability
- A public curriculum review comparing UniMelb's offerings to peer institutions.
- Ongoing input from an industry and academic advisory board on curriculum design.
- A clear timeline for implementing these changes, with progress updates students can see.
- Graduate outcome tracking, so the curriculum can be measured against what it produces.
Every semester this stays the way it is, another cohort graduates ill-equipped for the job market they're being sold into. We don't think the school can keep ignoring this.
Sign this letter
If you've experienced any of this, sign with Google in 30 seconds, or open a pull request manually if you'd rather. Every signature helps make the scale of the problem visible.
A pull request is opened in your name for a maintainer to review. Your Google email isn't shown publicly.
How to sign (about 2 minutes)
Open the file
Copy and fill in the template
{
"name": "Your Full Name",
"program": "e.g., MCS 2024, PhD CS",
"status": "Current Student / Graduate",
"comment": "Your experience (optional)",
"date": "2026-04-29"
}
Submit
Scroll down and click "Propose changes", then "Create pull request".
Why GitHub signatures?
- Every signature is public, sitting in a version-controlled file anyone can audit.
- The git history is the record, so signatures can't be quietly deleted later.
- Nothing about you is collected beyond what you put in the file yourself.
- Anyone can propose changes; the letter isn't gatekept by one maintainer.
Why sign?
- Make the scale of concern visible.
- Make it harder for the school to dismiss this as a few loud voices.
Signatures are public on GitHub. Only add information you're comfortable sharing publicly.
Current signatures
Frequently asked questions
What courses has the University of Melbourne removed from its Computer Science program?
UniMelb has dropped Programming Language Implementation (COMP90045), Program Analysis and Transformation (COMP90053), Constraint Programming (COMP90046), and Programming the Machine (COMP20006). There's no postgraduate course on compilers, operating systems implementation, or database internals on offer right now.
Is the UniMelb Master of Computer Science (MCS) or Master of Information Technology (MIT) worth it?
The MCS and MIT put career-changers and experienced CS graduates through the same classes, and the result is content watered down for both. CS grads tell us the Master's is easier than their undergrad. Career-changers come out without the systems knowledge their credential implies.
How does UniMelb Computer Science compare to UNSW or ANU?
UniMelb has no dedicated postgraduate courses in compilers, operating systems design, computer networks, computer architecture, database implementation, or advanced systems programming. All of those are standard at UNSW, ANU, ETH Zurich, and TU Munich. See the comparison table above.
What was COMP90045 and why was it discontinued?
COMP90045 (Programming Language Implementation) was UniMelb's compilers course. It covered parsing, type checking, code generation, and runtime systems. It was discontinued without a replacement, and there is no postgraduate compilers course at UniMelb today.
Why does the UniMelb CS capstone build websites instead of systems?
The IT Project capstone (COMP30022) is web development, which is fine for a software engineering minor and ridiculous for a computer science capstone. Peer institutions require capstones involving operating system kernels, compilers, or database engines, where you have to demonstrate real CS competence to pass.
How can I support reform of the UniMelb CS curriculum?
Sign the letter via GitHub pull request using the steps above, share it with people in your cohort and alumni network, and drop into the Discord at the bottom of the page if you want to talk.