There are lots of good suggestions about RAID, copying to another drive, etc. But as long as the backed-up data is stored in the same physical location (home) as the original, you are not safe from natural disasters or theft. Maybe this is paranoia but it depends how important your data is to you.
I have isolated the data that changes on a regular basis that I want to back up. Mainly this consists of mail and financial data, in the 10-20MB range. I have 2 boxes so each box backs up data to the other box. But just to be safe I back up to a trusted friend's machine also. It's a large ftp transfer but not bad at all with cable modem.
For other data that I want to save that doesn't change regularly (photos, mp3s, etc) I use CDRs.
I TA-ed the intro to programming class at my university for 3 years while an undergrad. This was not a course focused specifically for computer science/computer engineering majors, but was required for all majors in any engineering field. In fact, the school didn't have a separate intro course for CS/CE majors only, although there was a proponent of faculty and students pushing for it. This course was taught in C++, though it covered so few of the OO concepts associated with C++ that it might as well have been taught in C.
In my experience, I've found that learning to program is more about learning a thought process than learning syntax. For a student that has never programmed before, functional programming can be a difficult concept. Adding the additional complexity of OO design is just a bit much for some people to handle all at once. I don't think it's an indication of a person who's not cut out to be a programmer. It just seems to work much better to allow the students to get a firm grasp of thinking procedurally before trying to tackle OO.
For a student who is planning to major in CS/CE, brushing over the fundamentals of memory management, I/O, etc really robs them of the level of understanding that they'll need later to code and debug more complex programs. I agree that assembly language is also important to learn, but I think it's not necessarily the best place to start. My point is that in order to learn to program a computer well, you'd better have a good understanding of what happens when you execute your program. The further removed you are from the inner workings of your system, the less understanding you have the opportunity to develop. Sure, debugging memory problems can be frustrating, but it's useful experience. And when moving on to higher level/less restrictive programs, the good discipline learned leads to clearer, more efficient coding in any language.
For a student who isn't planning to write software for a living, it's a bit of a different question. What should those students be gaining out of such a course? I can't really answer that but I suggest that the purpose is to take some of the mystery out of software. Is that purpose better served by doing some text processing in a lower level language, or by creating some flashy application with buttons and menus? I don't know, but I'd guess the former.
At any rate, IMO whoever has pointed out that the curriculum should be more geared toward the science of software design than toward the buzzwords in the market this year is entirely correct. My school didn't offer a course in Java, SmallTalk, or any OO language other than C, and when I graduated I felt robbed somehow. Two years later Java is the primary language I've used professionally, and I'd consider myself fairly expert, even though I learned it as I went along. If programming fundamentals are learned well, making the jump from C++ to Java isn't difficult at all. That's not to say there's no point in learning Java or any other language in school, just that it's important to realize that learning good programming concepts and learning the syntax of a language are 2 different goals and should not be confused.
What? As a geek girl I find such toys a major turn-on. :)
There are lots of good suggestions about RAID, copying to another drive, etc. But as long as the backed-up data is stored in the same physical location (home) as the original, you are not safe from natural disasters or theft. Maybe this is paranoia but it depends how important your data is to you.
I have isolated the data that changes on a regular basis that I want to back up. Mainly this consists of mail and financial data, in the 10-20MB range. I have 2 boxes so each box backs up data to the other box. But just to be safe I back up to a trusted friend's machine also. It's a large ftp transfer but not bad at all with cable modem.
For other data that I want to save that doesn't change regularly (photos, mp3s, etc) I use CDRs.
I TA-ed the intro to programming class at my university for 3 years while an undergrad. This was not a course focused specifically for computer science/computer engineering majors, but was required for all majors in any engineering field. In fact, the school didn't have a separate intro course for CS/CE majors only, although there was a proponent of faculty and students pushing for it. This course was taught in C++, though it covered so few of the OO concepts associated with C++ that it might as well have been taught in C.
In my experience, I've found that learning to program is more about learning a thought process than learning syntax. For a student that has never programmed before, functional programming can be a difficult concept. Adding the additional complexity of OO design is just a bit much for some people to handle all at once. I don't think it's an indication of a person who's not cut out to be a programmer. It just seems to work much better to allow the students to get a firm grasp of thinking procedurally before trying to tackle OO.
For a student who is planning to major in CS/CE, brushing over the fundamentals of memory management, I/O, etc really robs them of the level of understanding that they'll need later to code and debug more complex programs. I agree that assembly language is also important to learn, but I think it's not necessarily the best place to start. My point is that in order to learn to program a computer well, you'd better have a good understanding of what happens when you execute your program. The further removed you are from the inner workings of your system, the less understanding you have the opportunity to develop. Sure, debugging memory problems can be frustrating, but it's useful experience. And when moving on to higher level/less restrictive programs, the good discipline learned leads to clearer, more efficient coding in any language.
For a student who isn't planning to write software for a living, it's a bit of a different question. What should those students be gaining out of such a course? I can't really answer that but I suggest that the purpose is to take some of the mystery out of software. Is that purpose better served by doing some text processing in a lower level language, or by creating some flashy application with buttons and menus? I don't know, but I'd guess the former.
At any rate, IMO whoever has pointed out that the curriculum should be more geared toward the science of software design than toward the buzzwords in the market this year is entirely correct. My school didn't offer a course in Java, SmallTalk, or any OO language other than C, and when I graduated I felt robbed somehow. Two years later Java is the primary language I've used professionally, and I'd consider myself fairly expert, even though I learned it as I went along. If programming fundamentals are learned well, making the jump from C++ to Java isn't difficult at all. That's not to say there's no point in learning Java or any other language in school, just that it's important to realize that learning good programming concepts and learning the syntax of a language are 2 different goals and should not be confused.