I am currently in my first year of studying IT and Computing with the Open University. I am doing well (85-95% marks) and enjoying my courses, but I recently started thinking that this degree programme might not go into as much depth as I would like it to, and I've been considering switching to a computer science course at another uni (the OU doesn't offer CS). In an attempt to learn a little bit more about CS before I decide to make up my mind, I bought The New Turing Omnibus (A.K.Dewney) but it's all going over my head. I'm only about 4 sections into the book and so far every single one of them has been above my level of understanding. As you can imagine this is really making me question my ability to cope with a CS course at uni. Does anyone have any advice on my predicament? I think my biggest problem is that I didn't take A-Level maths, but I might be wrong :/
don't be put off by a single book. lack of maths background might be a problem, but if you join an university at the beginning (instead of transfer): first year, a good university course should have a maths course to bring everyone up to speed. this is because everyone is from different background, so first year at university is mostly building the basics. may i recommend a course with Southampton Uni Electronics and Computer Science (heard rumour they may stop using the ECS badge..... ) i graduated there as Electronic Engineer, and i know they dedicate most of first year to building the ground work for later years.
I took a BSc Visualisation course at Teesside Uni and despite failing the first year, I passed all the first semester parts which included a few maths classes. I hadn't done maths like it before but the tutor and lessons were very good. Tbh, if I can do it anybody can! Iirc it included subjects such as 'Sets and Logic', Karnaugh Maps and Matrices. The second semester stuff was way above my head, particularly 3d maths although I shouldn't have been such an insular person and asked for more help.
Thanks for the reply. I know it's a single book, but it's supposed to be "an essential basic reference", which makes me wonder what the less basic stuff is going to be like. Since I won't be joining a uni until Oct 2012, I could take some maths modules with the OU, but I'm wondering whether there's more to it than that. I would hate to find that it still goes over my head after a(nother) year of studying. Thanks for the recommendation, alas having a young family means that staying close to the grandparents and other relatives is quite important, so we wouldn't want to move much further than London (the closer the better).
Does it matter? I don't really know what the difference is. I just want to get the best degree from the best uni I possibly can.
I am doing a BSc Computing Science at Glasgow University, and The New Turing Omnibus is on our reading list. I have a copy sitting on my desk but I have not actually looked at it yet. If you PM me your email address I can send you a few of the lecture notes from the course so far this year. Maths is the biggest thing that you will need to cover, but even that does not go into a great amount of depth and you are only required to take maths in the first year in most CS courses. PS a few other books to take a look at are: Gödel, Escher, Bach: An Eternal Golden Braid by D. Hofstadter, and Code by Charles Petzold -edit- BA - Bachelor of Arts BSc - Bachelor of Science (Most CS courses) BEng - Bachelor of Engineering (If you take a software engineering course)
PM on its way, and I'll take a look at the books you have suggested. Are there any others on your reading list? If/when you get a second, could you have a look through the first few sections (i got as far as page 25) of Turing's Omnibus and see what you make of it?
From the brief commentary on Amazon, it looks like the book in question is a bit more than just a basic introduction to computer science. It really looks to be an introduction to theoretical computer science, which is massively math-based. They mention algorithms, computability, genetic algorithms, and neural nets, to pick a few examples - certainly things that a graduated computer scientist should know or be able to pick up quickly, but I don't think I hit any of those until second or third year classes.
These things vary from degree to degree, some degrees require a lot more maths knowledge than others. I wouldn't say that not understanding everything in that book is a problem, can you at least follow what the sections are about? Theoretical Computation stuff was a first year module in my degree, other places might not do it at all but if they do bear in mind that it will likely just be one module out of 10-12 in a year. As for other topics in the book, you would likely come across most of them at some point in a comp sci degree, however some are rather specific and might not be covered unless you do AI/Intelligent learning modules.
I'm doing CS at Manchester so Ill give you a brief summary of each unit in my first year: 2 units of Java one in each semester -- assumes no prior knowledge of Java or even programming. As I'm still in my first year I cant tell you how far it takes you looks like it teaches pretty much everything you need to know so you can build on that yourself. Doesn't just focus on the language itself but also on good design, convention etc. (Our lecturer's book Java Just in Time IS the course so check it out if you want) Math techniques for CS -- topics covered are Discrete Structures, Logic, Functions, Induction, Relations, Probability. I think A level maths would help because but is not required. For example we did Binomial distributions which I had already done at A level. But everything assumes "pretty much" no prior maths education. Personally I think Id have been better off doing this course without an A level in maths cause whenever we start going over something I did at A level I get bored start missing lectures and then when I return Ive missed some important stuff but that's just me. Fundamentals of Computer Architecture -- Basically studying assembly which allows to understand how a computer does things down at the instruction level. They use ARM assembly. You need no prior knowledge of ARM or assembly etc. Fundamentals of Computer Engineering -- Basics of the electronics used in building computers (logic gates, building adders, etc.). No prior knowledge of any of this needed 2nd Semester: Fundamentals of AI -- so far just a lot of probability which we have covered in the maths module in the previous semester. Fundamentals of Distributed Systems -- protocols that allow the internet, email etc. to work: to work IP, TCP, POP3, IMAP. Fundamentals of Computation -- learn about patterns, languages, automatons, regular expressions etc. A lot of the units have labs where you do some work on computers and labs make up a lot of the marks for some courses so just staying on top of that guarantees a pass in the first year. A stopped mention that unit x requires no previous knowledge 'cause I eventually realised that none of them do really. In fact a lot of them are made easier by the fact that sometimes they repeat the same stuff. For example, we learn about the basic logic functions in Engineering, and Math Techniques for CS. Not really sure there's anything else I can say about the course. If I think of anything Ill post otherwise if you want to ask me something feel free to do so. And let me just say that this is for my course (in Manchester) but I would imagine others are quite similar.
Thank you so much for that. That looks really interesting. Between your post and the lecture notes Kylevdm sent me (thanks a million, btw) I'm a little more relaxed about it all. I've got some books out of the library and I've signed myself up for an OU course in maths, so hopefully I will have a Certificate in Maths as well as the one in IT and Computing which I am about to finish this summer. With a bit of luck, I'll be able to get into a half-decent university. Are you guys enjoying your CS courses?
Math-based?? So what? I have a degree in Computer Science from the University of Maryland, number 3 school in the USA for C.S. I had more than twice the computer and math credits needed for the major. I was the department valedictorian. [*]I can't do third-grade arithmetic. Look, the "math" in computer science may be called "predicate calculus", but it's easy, fun, and barely recognizable as math at all. You don't need to know how to count higher than 1 There aren't any fractions There aren't any negative numbers When you add two numbers, there's no "carry" to the next digit There are no continuous values like in regular calculus I mean, 'cmon, get with it and smell the coffee. It sounds like "math for retards"! How hard can THAT kind of math be? It ONLY deals with the attributes of objects in sets. For example, you'll learn DeMorgan's law. If p and q are true/false statements: "Saying "either p or q is true" is the same as saying "it is not the case that both p and q are false". His other law is: "If it's not the case that both p and q are true, then either p is false, or q is false". An example of the second one in English is: "if you can't be both male and female, then you're either not male or you're not female". Note that this is not the same as "you're either male or female", because if you're a rock or a chair, you're neither. If the Republicans had their way, everybody would be like that. You learn to say the above sentences like these in strange-looking symbols, including an upside-down "A", a backwards "E", and all the symbols on your keyboard you never use, but SO WHAT?? All the symbols mean is those same, easy-to-understand sentences about what's true and what's false. In the case of the statement about male and female, it's: ¬(p ^ q) ≡ ¬p v ¬q Oooo, that looks SCARY! Except it's NOT. It's just a statement about sex that even a little kid can understand. Does that sound like "math"? It doesn't get any harder than that, even in computability, completeness, compactness, and undecidability. Even soaring alone, high into the ionosphere using just your mind, where only the priveleged Jedi like you and I get to go (e.g., hyperbolic Riemann topological spaces) doesn't require any math harder than what I've described. In fact, it'll make you GIGGLE just like a little kid. In this boring, sad world the grownups have created, there are only TWO kinds of "wonderful": predicate calculus and sex, preferably with complete strangers. You are SOO lucky you are about to start the Adventure into one of them. Please, PLEASE, in the name of God, don't give up and abandon it because you peeked over the fence and saw things you didn't understand. That's like a little kid deciding she'll try hard to never be either male or female because of a context fault she doesn't understand. I made that mistake, and I don't want anyone else to, ever. ♥, - faye kane, idiot savant (which is why I can't do arithmetic)
You're... kinda missing my point, there. I'm saying that not being able to pick up the book and understand it is normal. It's not an introduction to computer science for the lay person any more than a calculus text is an introduction to algebra. And yes, there is math involved when you get into computer science. Algorithm analysis, for one. Everybody's least-favorite big-O notation? If you really want to understand it formally, you need to be at least comfortable with the ideas underlying calculus. (For large values of X, 2^X is so much bigger than X^2 that X^2 can basically be ignored. That's calculus!) My coding experience keeps ending up back at math, too - statistics, physics, and all the horrible algebraic fun that goes along with them both. (Game engines, whee...) So, yeah. Bottom line, being comfortable with math will help when you get into algorithms and other such craziness. However, far more important than traditional math is the thought process that goes along with it - being able to think about abstract concepts, working with details, and having a head for trivia mean quite a bit more for how well you'll do with code than the difference between an A- and an A in math. (And for the record, graduated B.Sci in Comp. Sci here.)
If you read through a book that you don't understand, finish the book and then re-read it. Sometimes things just soak in without you realizing it and the second time around it becomes a little bit clearer. If that doesn't help, try another book with high recommendations. You could even try emailing a professor from the Uni that you are interested in switching to and ask if they have any recommended reading to get started in CS.
To OP, eddtox: Thought you might find this link useful. It's the current timetables at manchester uni. Why is this useful? Because from the timetables you can follow the links to the course websites and a lot of them have most if not all the materials available on there and, apart from one or two units in the first year, don't require a password or anything. There are timetables for each year and semester and also for different subjects (Computer Science, Computer Systems Engineering etc) All the different groups are just to accommodate for the fact that they can't have all student at once in a given seminar or lab. So any group will show the same units as long as they're for the same subject. Subjects are indicated in brackets, CS=Computer Science, etc
Well, let me relate my experience with Computer Science at university. When I went to college, I took a GNVQ Advanced in IT (I started in 1998, so cast your minds well back...). The college sold this as being "as good as three A-Levels", provided you got the right grade in it. I did get the right grade in it: I earned a Merit (the grades were Pass, Merit, Distinction), and I could indeed get on to an IT degree with this course, so I signed up to a BSc IT course at one of the local universities (University of Wales College Newport). After about six months of this course, I left because it felt too much like I was coasting through it - it was too easy, there was no challenge in it for me. I worked for a local computer store for a year or so, before I decided I really did actually want to get a degree. I applied to Swansea University's Computer Science BSc in 2001. I went along to an open day, had an interview with one of the lecturers, and was eager to get started. It seemed like the ideal course: there was a lot of theory, a good grounding in programming algorithms, fundamental concepts of logic, transistor gates, microprocessor design, etc - just the kind of thing I was looking for. As the lectures progressed however, I soon started to struggle. The majority of the first year was all based on mathematics: logic (which I didn't really struggle too badly with), set theory, binary computations, etc. Even the programming tasks we were set involved writing an algoritm to solve a mathematical problem - of course, to write the algorithm you had to understand and attempt to solve the problem manually first. I was dealing with concepts I'd never been introduced to before; even the modules that were solely dedicated to maths assumed a level of knowledge that I did not have. I thought I had a good grasp of binary calculations, but I was sorely mistaken when we started on Two's Complement notation and negative binary calculations. You see, a microprocessor cannot actually subtract one digit from another, a microprocessor can only add digits together so you have to cleverly manipulate the sign of the digits to get the right answer. But of course, you then need to know how negative numbers are represented and calculated in binary. If I ever see any of those Two's Complement formulae again, it'll be too soon. I spent much of my time either in the library or with my head buried in a book - or even in additional sessions with my personal tutor. When the first set of exams rolled around in January, I knew I'd done pretty badly, but I hoped that I had at least passed. No such luck: some of the exams I failed meant that I could not pass that module and some of these modules were mandatory in the first year. Despite resits and studying like crazy, I knew I wouldn't pass the first year by February - even though the year hadn't finished. From that point on, the rest of the first year kind of slid past me in a blur. I stopped making so much effort - I couldn't pass the year no matter what I did, so what's the point - and spent most of the time getting extremely drunk and extremely stoned. When it came towards the end of the year, I deliberated about what to do: should I switch to a different course altogether and at least try to get some kind of degree, should I repeat the first year, or should I drop out altogether again? I eventually decided that I really do want to do the CS degree - I don't want to switch to something easier - and I really don't want to give up and drop out. Even knowing what the courses had in store for me, and despite re-doubling my efforts, I still failed the first year the second time around (although this time it was the final end of year exams that I couldn't pass). My results slip bore the charmingly curt message: "REQUIRED TO WITHDRAW". During my second attempt at the first year, about half-way through the year, one of our lecturers explained why many of us were struggling. He'd had quite a few students come to him with the same issues in his tutorial sessions. He explained that the university had actually dropped their entry requirements for the first year in order to meet induction targets - meeting targets meant more funding. He told us that - through no fault of our own - many of us should not even have been accepted on the course, because we hadn't studied the pre-requisite concepts at A-Level. Some, like me, hadn't even taken A-Levels and the ideal entry requirements for the course were three A-Levels - not A-Level equivalents like the GNVQ Advanced that I and many others did. One should be maths, one should be IT and the other should preferably be physics. He also said that many of us would not pass the first year, but the university would be fine with this, because they'd have met their induction targets for first year students. He hadn't meant this as a reflection of anyone's capability, but to try and explain why so many students were struggling with the course and could not get their head round the concepts. At the time, that just made me even more determined to pass - it still didn't work though. My advice would be to talk to the university that you plan to apply to. See if you can get contact details for one of the lecturers/professors/head of dept., or even see if you can go down there to speak to someone. Ask them about the course they offer, what topics the modules cover, and what kind of prerequisites they expect you to have studied. See if you can get at least a brief overview of the course syllabus so you can see if it's really what you want to study. If it is, then go for it. If you don't think that particular course is right, take a look at other nearby universities - if there are any. I'm not usually one for regrets, but I do regret not taking A-Levels thirteen years ago. Of course everything looks different with hindsight and it's never too late to try again.
Thing is the clue is in the degree type but i admit they should be a hell of a lot clearer about requirements. My degree was a BSc Hons in exploration resource geology. It was required that you have at least A-levels in Geology, Geography, Chemistry Maths/Physics. Not all of them but at least 2. I would say that your course is more akin to a BEng now rather than BSc.