Why the hell is the University of Waterloo babying the students?

I am currently in my 4A term at the University of Waterloo majoring in Computer Science, I am quite shocked to see how much the University is babying the students these days. (Although, I would bet the elder generations would say the same about my year, anyhow).

Both CS135 and CS136, Designing Functional Programs and Elementary Algorithm Design and Data Abstraction respectively are first year courses designed for Computer Science majors, or for those who are highly interested in Computer Science.

As a course designed for CS majors, you would at least expect the University to get the student’s hands dirty and possibly a little hands on experience with computers. With that in mind, in my first year CS135 and CS136 was Scheme (now they call it Racket) and C. We were expected to do homework either by: go to a computer lab, SSH into the linux servers, or work on our personal machines. We were expected to submit our code solutions by either Odyssey (http://www.cs.uwaterloo.ca/odyssey/) which is a frontend for the `submit` command, or submitting the code with the `submit` command via SSH. Also the course content, (imo) covered more materials as well, not just that, but we were expected to write the proper code as well.

After talking to a bunch of first year students in CS, I’m shocked to see that:

  1. They are distributing a Ubuntu VirtualBox virtual machine to 560 students for the purpose of doing their assignment. (Say if the installation was 2 Gigabytes, then a little over 1120GB was sent across the campus network.)
  2. They are giving the students a fancy “RunC” script to compile their assignments, run their assignment, and acting as a fancy error wrapper, which will inform the students of any compiler errors, and memory leaks via valgrind. (The student need to hit ctrl – r to run this script)
  3. They are giving the students a “uwbackup” script to back up their files to their student accounts. Which is in essence a fancy scp wrapper.
  4. They are not asking the students to do the proper coding standards. ie) The students does not need to check whether `malloc` or `realloc` has returned a NULL or not. (This is 3 extra lines of code, for the love of god, thanks to you, I’m actually afraid to use programs written by a first year UW student.)

As of this, I am seeing a lot of incompetencies in the students, some does not even know how to use the terminal, never mind compiling their C program with gcc.

This is quite shocking to see, especially now, when there are more competition than ever. One would expect the university to somewhat prepare the students with all the skills that they can develop in 8 months. Since how the hell would a student get a co-op job if they have no previous experience, and the University is babysitting more than ever? Also, since when did we became Laurier?

You tell me.

Why the hell is the University of Waterloo babying the students?

4 Responses

  1. 1.Distributing a virtual box with ubuntu on it, is not babying. It’s just saving student’s the time of googling “Virtual Box” clicking a few links, and then installing Ubuntu on it.

    2.RunC is just used to allow students to run code from Gedit, since most students want a nice IDE to run their code on. Admittedly this is “babying” a little, but it’s more of a user preference than actually making their coding experience easier.

    3.uwbackup is there for your own security. For example if your laptop breaks, you want to be able to keep all the code you had before with you. I don’t see this as babying, but rather improving the student experience, since it avoids students from using the “my laptop was broken” complaint as a reason why they couldn’t hand in their assignment.

    4.They are still asked to check for them, and they will need to check for them once they get into second year. It’s less babying, and more of allowing students to worry about the functionality rather than memory leaks. The point of the first year in CS isn’t to teach students how to deal with specific languages, but instead to teach them what it means to be in Computer Science, and what processes they have to take in order to become good Computer Scientists (not code monkeys) in the future.

    Spend less time complaining about how hard your life is, and more time thinking.

    Amanda Bines May 27, 2012 at 6:02 pm #
    • 1. Distributing a 2GB virtual machine for the purpose of assignments for a first year Computer Science class is just stupid. Why? it is a waste of resource, and gcc, valgrind are available on student.linux.cs.

      The only class that a VirtualBox image would be appropriate for would be a class like 349 where an UI framework with a specific OS required was provided for the purpose of assignments. (A framework that would refuse to be compiled by gcc on OSX, never mind Windows.)

      Any idiot can Google VirtualBox and install it on their machine.

      2. A nice IDE would be eclipse, or NetBeans. Which has all the features of RunC builtin. gedit is a text editor

      Surprisingly, some of the first years that I talked to were not able to answer the following questions:
      - How to compile a C program with command line
      - How to compile with optimization and compile in the symbol table
      - How to run and debug their program with Valgrind

      3. uwbackup existed before, it was and it is still called scp. uwbackup is the “let me feed you and wipe your ass” version of scp. uwbackup will not exist during your coop term.

      Here is a tip for you
      > man scp

      4. Right… with the economy going to the s##tters, more competitions than ever from all the other universities that offers computer science. We are going to babysit you while teach you the theoretic knowledge…

      Actually come and think about it, this is good, because less competition from the incompetents.

      “Spend less time complaining about how hard your life is, and more time thinking.” funny, perhaps, you should go back and press ctrl-r ;)

      I’ve done my thinking, and will continue to do my thinking. It stopped being hard when we are not being forced to use punch cards.

      Bill May 29, 2012 at 10:14 am #
  2. I’m a UW grad, and I now work at Google. I can tell you that this is a terrible recommendation. All this will do is scare off the people who didn’t grow up in front of a computer (but who may have lots of talent) and reinforce the ego of arrogant computer scientists (we need less of those). All of this is just tribal knowledge and frankly the most efficient way to figure things like these out is asking people, not figuring it out for yourself. Frequently at work, for pointless things like it’s a much better idea to ask than figure it out. The things that aren’t a waste of time are the actual problems that you need to solve.

    A non August 20, 2012 at 2:01 pm #
    • A terrible recommendation it might be. But the point I am trying to make is they babysit the students to the point where the students are dependent on all these fancy wrappers and are figuratively spoon-fed for the lack of a better term.

      I am sure that when you were a student you didn’t have everything mentioned above and that probably promoted you with asking how things worked by searching it yourself, asking other people or went to the UNIX 101/102 sessions.

      Back to the point, I believe that back in the days they promoted the students to get out of their comfort zone, but now they are making that optional. However that is not stopping those who are naturally curious about CS from exploring…

      “The things that aren’t a waste of time are the actual problems that you need to solve.” This is true to an extent. The process in which they use to solve the problem makes them unique and gives them the chance to pick up their unique skill sets that employer wants to see alongside their technical abilities.

      Bill August 22, 2012 at 11:32 am #

Leave a Reply