Software Engineering part 2
Computer Graphics - focusing on the maths of graphics, matrcie transfomrations, transformation stacks, viewports, etc. ASsignments are in C(++) using openGL
Computer Communications - OSI network model, discussion of algorithms and protocols used on each level. Assignment is network simulation in CNet (a etwork simulator)
Human Computer Interfaces - GUI design concepts. I didn't take this unit, but the assignment is in Java, using Swing and Eclipse.
Database Systems - Everything database. Deliverables are performed on an Oracle DB

Third year
Artificial and Machine Intelligence - bayesian networks to search algorithms. Covers a lot of ground. Assignments in any language, must perform a variety of searches.
Programming Languages - Covers many historical languages, discussing improvements and implementations. Deliverables are in many languages (ada, fortran, scheme, ruby, etc. Approx 12 languages total). Assignments are to write compilers using Yacc and Lex and purely from scratch.
Design and Analysis of Algorithms - Analysis of famous algorithms, covers O, theta, omega, how to improve algorithms. Very mathematical unit, assignment can be performed with pure mathematics or through implementation.

Replies To: What does your Bsc CS cover?

Re: What does your Bsc CS cover?

Posted 14 October 2012 - 12:12 AM

Much to my annoyance a great deal of my College has been for "practical" usage and teaching programming rather than much of any theory whatsoever. This includes spending hours on .NET best practices, RPG, COBOL, VB, and various other such things.

Note that I'm a dual major (Business) so I don't specify a great many classes per year.

I'll split mine into years, each course I'll rank on a 10 scale of usefulness, 10 being high.

Year One

Information Systems(5) - Basics of computers, information systems and planning projects.
Programming I (2) - The most challenging thing in an entire semester was making arrays and reordering them.
Programming II (3) - Basics of Abstract Data types, some sorting, and other such things. You go from creating rectangle and tax calculations to this, and 70% of students fail.

Year Two

Networking (9) - Theory of networking including algorithms, math, and the works. One of the hardest classes with a high fail rate, but dang if I didn't learn my stuff in that class. You either knew it by heart or you failed.
Database I (1) - Annoying how a course called database didn't touch SQL until the last 3 weeks of the semester. It was mainly mapping data from text files to abstract data types.
RPG/COBOL (1) - I don't intend to dignify this one with a response.
Data Structures (2) - 90% of the class is covering sorting and massive boilerplate code, and which specific font should be used. If you're lucky they touch algorithms at the end of the class, and this is the only programming class which covers it.
Unix (10) - Same teacher as networking, same mentality. The teacher encouraged hacking of other students computers, stating that they should have done a better job patching things. Again, one of the most useful classes.

Year Three

Enterprise Networking (10) - A continuation of Unix, same teacher. Implementation of enterprise networks such as iptables, vlans, ssh, cisco, proxies, and other such things.
Information Systems II (8) - You're forced to play consultant and completely redesign a broken system. This includes all the planning, analysis, documentation, and everything up to but not after software specs.
Database II (9) - Continuation of ISII, you have to go out and build a large scale database driven program, and your contractor effectively has your grade in their hands.

Year Four

Operating Systems (9) - Same teacher as Unix, so same score to settle. Apparently this class is the reason people don't graduate on time. Mutex, threads, hardware, architectures, the entire thing.

I graduate effectively in 3.5 years, hence the short year 4.

The biggest weakness of this is that you're forced into C# and RPG/COBOL because local businesses are begging for those people. Since when does computer science mean catering to business directly? It certainly leaves a bad taste for those of us who want theory.

Discrete math and algorithms are effectively non-existent. I had to go out and teach myself everything. This has blown me out of more interviews than I care to admit, and the reason why I became so obsessive about learning them thereafter.

Effectively my college gimps the grads out of the starting gate, and makes it to where there only chance is with a local company in a dead-end job filled with mediocrity. It's a wonder some of us figure it out and start fixing the damage done.

Not to say there weren't useful classes, but I feel almost professionally crippled because of all that really was never taught or required. I've since taken responsibility into my own hands to fix this, and I read enough books to curate a decent sized technical library.

It's my opinion that practically oriented schools ruin people that may otherwise have a good chance.

Re: What does your Bsc CS cover?

Posted 14 October 2012 - 07:51 PM

My course specifically is called Computer Science - Scientific Applications and Software Concentration. They have an equivalent to CSIT which is an IT focused course. It was TTU. If a language was taught, it's listed.

Practical and Professional Issues in Computer Science - Business course basically. Speech, Technical writings, letters, business writings, report techniques, cost analysis for programming. How to be a computer scientist in the business world and relate it to the boss' concerns.
Computer Organization and Assembly Language Programming - Computer Orginization and Architecture, Assembler, Machine Language, Assembler Techniques.
Elective - You get to choose between AI, Programming Languages, Automata Theory or Algorithmic Analysis. I took AI because the department head taught it and I liked his courses. AI wasn't a bad topic either.

Year Four
Operating Systems - What it is
Database Management Systems - What it is
Computer Architecture - What it is
Software Engineering I and II - What it is. Overview: Agile, Deployment, testing, planning, overview, life cycles, etc.
Elective (2) - Same choices as before. Took Programming Languages and Algorithmic Analysis. Programming Languages was an overview of modern languages and language creation, structure, implementation and run-time behavior. Algorithmic Analysis was well what it is but a quick overview would be Search, Traversal, String, Graph, P, NP, NP Hard and NP Complete problems.