2 Replies - 1511 Views - Last Post: 14 October 2012 - 07:51 PM

#1 G0rman   User is offline

  • New D.I.C Head
  • member icon

Reputation: 7
  • View blog
  • Posts: 46
  • Joined: 16-October 11

What does your Bsc CS cover?

Posted 13 October 2012 - 10:54 PM

Where I study we do 4 units a semester, each unit has a practical and theoretical component. Here is the layout for Bsc CS where I study

First year
Mathematics - calc, trig, matrices, vectors
Statistics - basics analysis, regression
Software Technology - basically an introduction to computers and coding concepts in OO, functional and structured paradigms. Assignments and deliverables are coded in Java
Science Communications - how to write reports, thesis, studies, etc

Elective - people usually select a second/third year unit
Software Technology part 2
Hardware Fundamentals - from bits and logic gates, to ASM and MIPS processors.
Introduction to Operating Systems- how an OS works, processor scheduling, memory management, disk formats, shell scripting

Second year
Software Engineering - UML, patterns, OO, design processes (agile, etc), lifetime modelseee.
Introduction to Programming Environments - cant remember what was covered here, but assignments were in C
Foundations of computer science - boolean logic, mathematical proving of computation models, etc
Elective - people usually pick a third year unit

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.

Operating Systems - more in depth, covering semaphors, scheduling, etc.
Project Design and Management - Software metrics,
Theoretical Foundations of Computer Science - from finite automa to pushdowns and turing machines, regular language, CFL, CNF, etc. Covers a lot of proofs and problems, halting, traveling salesman, church-turing thesis, P=NP, etc.

Our university has a reputation for being more practical than others, which is evident by most units having practical components.

What does your university cover?

Is This A Good Question/Topic? 0
  • +

Replies To: What does your Bsc CS cover?

#2 Lemur   User is offline

  • Pragmatism over Dogma
  • member icon

Reputation: 1439
  • View blog
  • Posts: 3,609
  • Joined: 28-November 09

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.
Was This Post Helpful? 0
  • +
  • -

#3 ccubed   User is offline

  • It's That Guy
  • member icon

Reputation: 164
  • View blog
  • Posts: 1,416
  • Joined: 13-June 08

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.

Year One

First Year Connections - Basically introduction to programming and control flow. (C++)
Discrete Structures - Logic Math, Logic Statements
Introduction to Problem Solving - Algorithms and implementing them. Not creation, simply use of pre-existing ones.
Data Structures and Algorithms - Data Structures (Queue, Stack, List, Dequeue [The most underused Data Structure of them all]) and algorithms applying to them.

Year Two

Object Oriented Programming and Design - Exactly what it sounds like.
Design of Algorithms - What it sounds like.
Unix Lab - introduction to Operating Systems programming, techniques and concepts.
Foundations of Computer Science - The Big overview of everything important to us. Logic in Theoretical computations, Design and Testing of Algorithms, Automata, Concepts of language theory.

Year Three

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.

Listed Separately.

Math: Probability and Statistics, Matrix Algebra, Calc I and Calc II
Other: Writing I II III, 2 Science electives, 2 humanities electives, 2 Social/behavioral science electives

So I rather liked it. It was entirely theory. Languages were used, but they stuck to mainly C++, occasionally java. The point wasn't programming but theory.
Was This Post Helpful? 1
  • +
  • -

Page 1 of 1