Studying Computer Science at Home?
Jack asks: "My fianceé would like to study computer science at home, with a view to becoming a software engineer. She is disabled, so it is hard for her to attend a course at an actual college or university. She completed high school, getting good qualifications in maths, but has no formal training in computer science, as yet. Can anyone recommend good home study courses for her? (We are in the UK)."
Check out MIT's OpenCourseWare. Many of MIT's classes materials all available freely online. If you are looking to learn computer science, it's hard to find a better curriculum.
Your fiancee can get a Comp Sci degree through the Open University, and she can mix and match courses to suit her particular interests and strengths.
My experience is with their maths courses and a Digital Communications course. The materials are very good as is their study support. It can be hard work though as you have to discipline yourself to study, you can't just go with the flow like I did at school and "scrape" good grades by virtue of having sat in the classroom and paid some attention.
My only gripe is with their Windows-centrism. For maths courses you have to use MathCAD which I have found does not run under WINE very easily or well, and a lot of their multimedia courseware in the digital comms course was Windows based (though IIRC WINE handled it quite well).
Yours Sincerely, Michael.
Since leaving the UK I don't have access to the OU any more, and I sorely miss it.
They put a lot of work into making you feel part of a class - so you're not studying alone - with online conferences, a personal tutor, and real-life tutorials and meet-ups if you can get to them. They have a specific BSc (Hons) Information and Communication Technologies degree which is the match of any IT degree in the UK.
Finally, depending on her particular situation, she may not have to pay anything at all.
computer science != programming
My fianceé would like to study computer science at home, with a view to becoming a software engineer. She is disabled, so it is hard for her to attend a course at an actual college or university. She completed high school, getting good qualifications in maths
Sounds easy enough. Get her to start applying to universities for Distance/Open/Tele/Remote degree programs.
Admission:
* her good grades will help
* being disabled sure won't hurt her any, and might even help if quota systems are in place
Financially:
* her disability gives her more opportunities to apply for scholarships and bursaries
* ditto for being female and studying Computer Science (many private bursaries have been created to encourage females in this area)
* when she gains entrance, there will likely be someone at the institution she can talk to about applying for private or government financial grants
You're missing all of the mathematical background that makes up Computer Science. What you've proposed is Computer Programming.
Check out SCPD over at Stanford University.
to get her to pick an open source project she likes and start working on it! Just do documentation if she can't code yet, but get into it.
~~~~~ BigLig2? You mean there's another one of me?
http://www.osac.state.or.us/oda/unaccredited.html
d .h tml
URL:http://www.osac.state.or.us/oda/unaccredite
This is the offical list by the state of Oregon, which lists acceptable schools at the top in one list, and scam schools on the larger list at the bottom. We have a scam school a couple of miles form here. Their credits are no good anywhere else.
These are available for download, but consider sending them $75US for the complete set of 17 DVDs. A great deal.
I think when most people want to major in Computer Science they really just want Computer Programming
Then they should say so. They're not at all the same thing. Sure, if you get a "CS" degree at Bumfuck State U., you're probably not going to get much real computer science, but that just means you don't really have a CS background.
Quidquid latine dictum sit, altum sonatur.
I am currently attending UMUC and majoring in computer science, and their online courses are good.
The 4:00am question: I doubt it since she doesn't know how to program yet. But neither do I and I've written code for many many years now.
The A HA: Again I doubt it since she doesn't know how yet.
vi vs emacs: Just silly has nothing to do with programming.
typing fast: okay for one you have no idea what her disability is. she may not physically be able to type fast. no biggie - programming has very little to do with how fast you type - ask a typist to code your next project for you - see who gets done quicker her or you.
leafless tree: WTF?
clothes & closets: Again WTF? My closet is a mess. Why because I'm busy and have many many other things to do.
musical talent: Okay my music skills are bottom of the barrel, but many smart people do have good music skills, but many do not.
deep grasp: unless she studied it then nope.
collection of computers: nothing to do with being a good programmer.
newsgroups: probably not as she isn't into programming yet.
ask slashdot: many other ways to find answers to this question, like google.
In short don't be such a snob and narrow minded in your view of what a programmer is. You would be surprised if you saw the people I work with, and this ain't no back water its a major American university (We've got jocks (played football or basketball in College), Nerds (the typical - like your list), very Social (always knows everyone) and they are all very good.
http://mitpress.mit.edu/sicp/full-text/book/book.h tml
assert(expired(knowledge));
Well, regardless of the fact that being a good programmer will help you in your CS pursuits, if she wants to develop software I would suggest not worrying about the language as much.
/. rhetoric, bombast, and bad-mouthing about coders who can't write/construct threaded GUI apps in assembly using nothing but a one-shot CLI typescript entry (editors are for wimps), there are plenty of high-level languages that allow people to build extremely useful and powerful software tools without having to know anything about bit-shifting or loop optimizations.
/.
Despite all of the
That said, I would direct her to learn about Data Structures, Object-oriented Analysis and Design. _Planning_ what to build will make MUCH more of a difference in developing software applications than coding style/fu ever will. Horribly planned development makes projects harder to write, harder to maintain, and, worse, harder to use. If a project is designed well, you can always go back and improve sections with better techniques (aha, instead of sorting these everytime for easier searching, I'll just hash them instead)... whatever.
The science part of comp sci should (hopefully) give you skills to improve design and power by applying abstract ideas to real code but honestly what most of CS will do is show you the questions you have to ask, how to ask them, whether they can be solved, and then how to try and solve them...
if she wants to make software, tell her to study design... any dumbass can code... and mouth-off on
dave
There's a big difference between just learning programming and learning computer science.
If computer science is what she's really after then here's a rather typical computer science ciriculum along with some poplular books that I can think of:
calculus
discrete math
linear algebra
numerical methods (optional)
programming intro (C/C++, Java, Scheme, Ocaml)
assembly language (x86, mips)
data structures
althorithms (rivest book)
theory of computation
digital electronics
computer architecture (patterson book)
embedded systems (optional)
theory of programming languages (python, perl, ocaml, prolog, lisp)
compiler design
operating systems (tannenbaum book)
artificial intelligence (optional)
software engineering (optional)
system administration (optional)
computer graphics (optional)
And I maybe left out a few more of the optional type of classes you can find at various universities. Anyway, just search the web for each of the above subjects and you'll find loads of information. When I was working on my degree, I found actual course websites to be particularly useful a lot of the time, as they'd have lectures, homeworks, exams, and projects, all with solutions a lot of the times.
Now software engineering is sort of a branch of computer science unto itself. So if that's the ultimate goal I'd suggest learning all of the above rather thoroughly and then moving on to specialize in software engineering.
Anyway, that's my two cents, for whatever it's worth. Wish your fiance good luck for me.
Free will is just an illusion
Have her take a look at How to Design Programs -- there is a complete introductory course which uses the DrScheme programming environment.
I don't know which is worse.
That you are such a prick,
or that you are right.
There honestly isn't a future in computer science for a home schooled person.
I did, a few days ago, suggest that if someone wanted more than anything in the world to get their break into tech they could go into some company and offer to document code (ie, write the in-code line level, proc level and file level documentation describing what each routine did) - for free for the first month if necessary. It will get you in the door, and you will learn more about 'software engineering' than a person has a right to know.
People every day start a new company doing the crap that nobody else wants to do - and trust me, NOBODY wants to document their code.
Glonoinha the MebiByte Slayer
http://www.saxonpublishers.com/
IPTables enhancement Fail2Ban bans cracker-login's