PDA

View Full Version : Thoughts on this degree course sylabus?




Cromulent
Oct 5, 2009, 09:50 PM
Hi guys,

After nearly going to University a couple of years ago but having to postpone it due to various reasons I have finally got to the stage where I feel I could do a Comp Sci degree. I was wondering what you thought about this course and the modules that it offers?

Do you think it is worthwhile? Any opinions?

Thanks in advance.

http://www3.open.ac.uk/study/undergraduate/qualification/b14.htm



lee1210
Oct 5, 2009, 10:27 PM
This is definitely a different program than what I did (probably a bit more advanced, Bachelor's in the UK seem to be a bit more involved than in the US), especially the math component. I looked at a bunch of the courses, and then decided not to focus on the math things as I really won't have anything to add.

As for the CS courses... some of the early ones will definitely bore you based on the amount of programming you have already done and the concepts you already know. Here are my thoughts on some of the later courses:
M263 - This seems like a good way to break people in to programming, though probably a lot of things you already know.
M255 - I prefer starting with lower level languages and working to OO, but this program starts with OO, which is a fine approach to modern programming. This course uses BlueJ. I do not like BlueJ. Otherwise it seems like a pretty standard intro to programming course.
M257 - Interesting approach to exploring the versatility of Java, and programming in general, targeting different devices, etc.
M362 - Concurrency is where it's at from now on. You should definitely take this course. Even if a lot of the building blocks are being made easier to use, knowing how everything works, semaphores, critical sections of code, etc. is still important.
M363 - This is an important course that I didn't take when I was in school, and I regret it. There's more to software projects than banging out code.
M364 - While it's probably best to have someone on a team that's devoted to designing the UI and user experience, having an insight into this is a good idea for everyone. Often programmer-designed interfaces are abysmal.
M366 - AI is very interesting. The course I took on it was not at all. I am honestly more interested in the ethical discussions about AI than it's implementation, and really liked by computer ethics course more than my AI course. This course sounds a lot different than the one I took, so it may be more worthwhile. The items discussed seem more advanced, though there is a big focus on the history and current approaches to AI. It doesn't seem like you'll write a lot of code yourself, but I could be mistaken.
M359 - You may already know a lot about relational databases already, but if not this course is critical. RDBMS's are the backing store for current software. A solid understanding is critical.


Some holes in this program, in my opinion, are:
Advanced Hardware. M150 mentions hardware, but it seems very basic. The course I took on hardware/software interaction, instruction sets, assembly, etc. was one of the best I had.
Operating Systems. They define how the vast majority of developers interact with a computer (unless you're writing ASM directly for some embedded device, or writing an OS yourself), and the direction they take, how the drive/abstract hardware, and the APIs the present is extremely important.
Compilers. Again, one of the most rewarding courses I took was compilers. Turning high level code to machine code (or Bytecode, which is machine code for a virtual machine) makes programming large systems possible for a much wider group. Without them designing and implementing large systems would be much more difficult. Without great compilers we couldn't take advantage of advances in CPUs without learning the nitty-gritty ourselves and writing by hand. I think an understanding and appreciation of compilers and runtimes is critical.

This is all, of course, biased by my own experiences as a student in an undergraduate computer science program from ~2002-2004 in Texas in the US. I'm sure the things that stand out the most in my mind are the things that were later in the program, and the intro courses shouldn't be discounted, but I just don't remember them making as big of an impact looking back.

A word of warning: you know much more about programming and have a lot more experience than a number of your peers will. You may have to sit through some classes that you don't get a lot out of if you can't test out of them. Just take it in stride, and spend time when you can with your professors discussing the material with them to get a deeper understanding. Don't express to them constantly that you don't need to be there, or be overzealous about showing your superior knowledge of the subject matter in early courses. It's unbecoming and will make professors hate you. You do not want your professors to hate you. Based on the way you present yourself here, i doubt seriously that you'd do that, but being stuck in courses on subjects you've mastered can be frustrating. Just take it in stride.

Good luck if you decide to pursue this. Enjoy it. The camaraderie and access to people that are knowledgeable, excited, and engaged about the subject matter in your peers and professors will likely be unmatched for the rest of your life.

-Lee

Cromulent
Oct 6, 2009, 03:04 AM
Thanks Lee. A few comments:

This is definitely a different program than what I did (probably a bit more advanced, Bachelor's in the UK seem to be a bit more involved than in the US), especially the math component. I looked at a bunch of the courses, and then decided not to focus on the math things as I really won't have anything to add.

They do offer a "pure" Computing course which I assume is the same as Computer Science but I am concerned that people will see Computing on my CV and just skip it without actually knowing the course content where as Computing and Mathematical Sciences sounds a bit better to me. I guess it is a small thing really but I only have one chance at this so I need to make sure I get the most career wise out of it as possible.

As for the CS courses... some of the early ones will definitely bore you based on the amount of programming you have already done and the concepts you already know.

While this is true I think it will actually do me some good to be taught what I already know in a structured manner. Having taught myself (with the good help of Mac Rumours :)) I can never be sure if I have missed something simple out. I think this will be a good opportunity to do some elementary revision and to ensure that I really do have a good foundation.

Here are my thoughts on some of the later courses:
M263 - This seems like a good way to break people in to programming, though probably a lot of things you already know.
M255 - I prefer starting with lower level languages and working to OO, but this program starts with OO, which is a fine approach to modern programming. This course uses BlueJ. I do not like BlueJ. Otherwise it seems like a pretty standard intro to programming course.
M257 - Interesting approach to exploring the versatility of Java, and programming in general, targeting different devices, etc.
M362 - Concurrency is where it's at from now on. You should definitely take this course. Even if a lot of the building blocks are being made easier to use, knowing how everything works, semaphores, critical sections of code, etc. is still important.
M363 - This is an important course that I didn't take when I was in school, and I regret it. There's more to software projects than banging out code.
M364 - While it's probably best to have someone on a team that's devoted to designing the UI and user experience, having an insight into this is a good idea for everyone. Often programmer-designed interfaces are abysmal.
M366 - AI is very interesting. The course I took on it was not at all. I am honestly more interested in the ethical discussions about AI than it's implementation, and really liked by computer ethics course more than my AI course. This course sounds a lot different than the one I took, so it may be more worthwhile. The items discussed seem more advanced, though there is a big focus on the history and current approaches to AI. It doesn't seem like you'll write a lot of code yourself, but I could be mistaken.
M359 - You may already know a lot about relational databases already, but if not this course is critical. RDBMS's are the backing store for current software. A solid understanding is critical.

Thanks for the insight. I was already planning on taking the concurrent distributed system module as it is one of my primary interests at the moment.

I guess the toss up comes between the AI and RDMS' modules. I'm really fascinated about AI (probably because that is what my Dad did) and think I would get more from a course in AI than I would the RDMS module. I can always teach myself about database theory later.

Some holes in this program, in my opinion, are:
Advanced Hardware. M150 mentions hardware, but it seems very basic. The course I took on hardware/software interaction, instruction sets, assembly, etc. was one of the best I had.
Operating Systems. They define how the vast majority of developers interact with a computer (unless you're writing ASM directly for some embedded device, or writing an OS yourself), and the direction they take, how the drive/abstract hardware, and the APIs the present is extremely important.
Compilers. Again, one of the most rewarding courses I took was compilers. Turning high level code to machine code (or Bytecode, which is machine code for a virtual machine) makes programming large systems possible for a much wider group. Without them designing and implementing large systems would be much more difficult. Without great compilers we couldn't take advantage of advances in CPUs without learning the nitty-gritty ourselves and writing by hand. I think an understanding and appreciation of compilers and runtimes is critical.

Yeah I noticed those holes as well. It seems to be quite a theoretical course with more of the maths than the computing bit covered. Having said that compiler and OS courses are really just applied maths at heart anyway so just studying the maths on its own may be good enough I guess. Still, I don't have the experience to say whether that assertion is correct or not.

This is all, of course, biased by my own experiences as a student in an undergraduate computer science program from ~2002-2004 in Texas in the US. I'm sure the things that stand out the most in my mind are the things that were later in the program, and the intro courses shouldn't be discounted, but I just don't remember them making as big of an impact looking back.

Thanks for the input.

A word of warning: you know much more about programming and have a lot more experience than a number of your peers will. You may have to sit through some classes that you don't get a lot out of if you can't test out of them. Just take it in stride, and spend time when you can with your professors discussing the material with them to get a deeper understanding. Don't express to them constantly that you don't need to be there, or be overzealous about showing your superior knowledge of the subject matter in early courses. It's unbecoming and will make professors hate you. You do not want your professors to hate you. Based on the way you present yourself here, i doubt seriously that you'd do that, but being stuck in courses on subjects you've mastered can be frustrating. Just take it in stride.

Don't be an arrogant jerk. Check :).

Thanks for the input. This is a pretty big decision so I'll be mulling it over for a little while, the course looks good and I think I can handle it from reading the module descriptions. It also looks challenging as well which is always a good thing, there is no point doing something that does not challenge you in my opinion. Its a shame they don't use a functional language though, I've been looking for an excuse to sit down and learn one for awhile having dabbled in Scheme and Haskell but never having the motivation to really get down to business with them (mainly because I can't think of a project they would be good for yet).

Edit: I've already started revising my Java so I can concentrate on learning the maths more.

robbieduncan
Oct 6, 2009, 03:13 AM
It looks OK, certainly better than a lot of the so-called Computer Science courses that use Visual Basic!

Personally I'd rather see C (and or Assembly) before Java. I think it's important that people understand how the machine works before abstracting it all away with Java (or .Net).

I am very happy to see the maths component though. Whilst I hated it in some way on my CS courses I think it taught some really important skills and concepts...

Ap0k5
Oct 6, 2009, 05:52 AM
I'm currently going through a similar course now (I'm on the computing & design path). I completed M150 earlier this year and it is fairly basic, although it does go into a fair amount of detail on the broad subject matter.

I've just started M255, although I have previous Java experience so not sure how I'll get on with BlueJ :(

So far I like the approach, much better than when I was at college, with teachers disappearing for hours at a time ;)

Cromulent
Oct 6, 2009, 10:13 AM
I'm currently going through a similar course now (I'm on the computing & design path). I completed M150 earlier this year and it is fairly basic, although it does go into a fair amount of detail on the broad subject matter.

I've just started M255, although I have previous Java experience so not sure how I'll get on with BlueJ :(

So far I like the approach, much better than when I was at college, with teachers disappearing for hours at a time ;)

Glad to hear there is an OU student here :).

What is the OU like? Do you have video conferences or conference calls or something? Is there an online forum for students to talk together or something?

ChrisA
Oct 6, 2009, 11:06 AM
First you must realise that a university is NOT a vocational trade school. Trade schools teach the "technology of the day" to prep you for an entry level job. If you want to build web sites and data entry screens go to the trade school

The university attempts to teach to stuff that will still be valid 50 years from now and give you the foundation for more advanced study. But just as impotent and in the long run more important is the other classes and the overall environment. Hopefully you learn humanities, art and how to think and write.

You ned to learn more then just computers and software, you need to apply that tchnology to a problem. So you would also need to know about banking or manufacturiing or aerospace whatever. The Mathematical side of this course you are looking at is a good prep for getting into some kind of science or engineering

I have a background like this some of the computer software systems I've worked on are, flight controls for guided misiles, radar signal processor, spacecraft telemetry, space based infrared camera data handling.

I started out with a combined CS and EE major and had I stayed with it I'd have likely done design work with embedded microcontrollers. You know, all those devices inside cars, micowave toster ovens and cell phones and TV set top boxes.

point is to think about the area you want to work in. Software and computers can be aplied to all kinds of things that do not involve PC desktops

Ap0k5
Oct 7, 2009, 09:39 AM
Glad to hear there is an OU student here :).

What is the OU like? Do you have video conferences or conference calls or something? Is there an online forum for students to talk together or something?

Basically you get sent all your course material books etc... before your course begins.

On the day the course is scheduled to start you may get an email from your regional tutor, introducing themselves and wishing you well with the course. There are also tutorial sessions that you can attend (if you can get to them/wish to go to them) and meet other students on the same course and discuss the assignments and learning material.

There is also a forum type area on the website (or can be accessed in the FirstClass client software) where you can discuss the learning material, the first assignment on each course normally has a question that requires use of the forums, for example "discuss with the other course students the benefits of eco-computing, copy + paste your forum posts into your solution document".

So far I've never had a video/voice conference over the Internet for participation in OU courses, however I assume that depends on whether your courses requires it.

Cromulent
Oct 23, 2009, 06:20 PM
Just thought I'd say that I signed up and start in January / February :). Looking forward to it!

I've been playing around with Java in preparation and bloomin' heck Netbeans eats RAM like nobodies business. I think I need some more for this especially as I have only done small stuff so far. If there is a big project on the course I'm not sure how my computer would cope.

lee1210
Oct 23, 2009, 09:33 PM
Glad you're getting to it, even if it took a while. This reminded me of the first thread of yours I responded to:
http://forums.macrumors.com/showthread.php?t=449822

Only about 18 months later, I'm glad you've worked things out and you're on your way to University now. From what I've seen on the forums you've gotten some experience in a wide variety of languages, and you've demonstrated great interest and determination in pursuing the subject. I'm sure that will serve you well in your studies.

Good luck!

-Lee

P.S. Once you're in school, if you post about homework make sure you say as much so we don't do your work for you =).