Hi guys and gals,
I’m a bit interested in knowing how different faculties around the world structure their bachelor CS degrees and what do they teach.
For me, here in Italy, it was/is a 3-year degree with compulsory and choice subjects. The degree also includes a mandatory internship (either in university or in a private company) and a thesis (usually on the work done during the internship).
The compulsory subjects I had were:
1st year:
- Computer architecture and assembly
- Algorithms and data structures
- Algebra
- English (I think it’s a B2 level)
- Java programming and OOP base concepts
- Math analysis
- 1st year project (based both in java and assembly language)
2nd year:
- Relational database systems
- Operating systems and processes/threads
- Distributed and parallel programming
- Software design (more on OOP, best practices, design patterns, GUIs with Swing and UML documentation)
- Shannon’s Information theory and coding + probability theory
- 2nd year project (client-server application with GUI and UML documentation)
3rd year:
- Web development
- Telecommunications networks
- Automata theory
Also during the 2nd and the 3rd year we need to chose 6 subjects (2 + 4) to add to the compulsory ones from a pool of other subjects:
What my university offered was:
- Mathematical logic
- Computer graphics
- Image processing
- Microcontrollers
- Fundamentals of programming languages
- Functional programming
- Software project management
- Mobile development (Android)
- Non relational database management systems
- Advanced algorithms and data structures
- Fundamentals of security
- Information systems (ICTs)
- History of automata and Computer Science
- Social network analysis (and graph theory)
What about you?