I'm doing a Bachelor of Science majoring in computer science and maths (via the conncurrent mathematical sciences diploma.) I'm in the first year. For a computer science major you need to do Informatics 1 and 2 in first year, and two subjects of maths, the actual subjects depending on whether you did specialist maths. Informatics 1 and 2 are taught by both the department of computer science and software engineering and the department of information systems, so its not just pure computer science. Informatics is about 30% basic programming skills. You also do basic IT stuff such as multimedia and basic encoding, visulisation, data representation, networks and html, handeling csv data in programming languages. Theres also a brief introduction to algorithms and a few lectures on debugging. Informatics 2 extends on informatics one, about a third of the course is on XML and xhtml, a bit on cgi and html forms, indexing, making scripts to use cookies, good program design also a brief introduction to simple search algorithms and binary search trees. Recursion and the Limits of Computation are also touched on. Informatics 1 and 2 are fairly practical, with a large project taking up about half of your mark. Theres also quite a lot of stuff that isn't assessed directly in the exams due to its practical nature, but is required to do the project properly.
In second year you have to do Programming the Machine followed by Algorithms and Data Structures, which is the main computer science second year sequence, but you also have to pick one computer science elective out of 3. Programming the Machine is on using low level system and assembly languages, such as C. Algorithms and Data Structures is when the fun starts, the "real" computer science. The three electives are Informatics 3, which isn't really computer science, just practical IT stuff like databases, Object Oriented Software development, which is basically about making large software projects with many parts that need to work together, and Discrete Structures (the one I'm doing
)That teaches you the foundations of theoretical computer science and the areas of maths required for further study in Theoretical Computer Science. Third year you have to do a subject on Networks and Operating Systems, a Computer Science project (basically just covering Artificial Intelligence, Distributed Systems and other loose ends in Computer Science) and you get to choose 2 subjects out of about 7 i think. Half of which require object oriented software in the second year, and are more focused on software engineering, such as the testing and modelling of software. Out of the others, theres Theoretical Computer Science (mainly theory of computation), Graphics, Text(I think stuff like natural language processing, data mining and web crawling), and programming styles.