CompSci.ca/blog » Education http://compsci.ca/blog Programming, Education, Computer Science Fri, 30 Jun 2017 02:31:52 +0000 http://wordpress.org/?v=2.8.4 en hourly 1 Choosing between Computer Science and Computer Engineering http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/ http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/#comments Sun, 27 Dec 2009 23:20:18 +0000 Tony http://compsci.ca/blog/?p=953 The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. 6 Degrees of Computer Science is a good place to start, but the choice is not always clear. Some delegate the choice of their program to luck -- apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. Now what? Related posts:
  1. Computer Science at Waterloo: the new Scheme of things
  2. Computer Science at Ryerson University
  3. Online introduction to Computer Science from Stanford Engineering (for free!)
]]>
The subtle differences between various Computer related majors are confusing, especially at the age when one makes their University choices. 6 Degrees of Computer Science is a good place to start, but the choice is not always clear. Some delegate the choice of their program to luck — apply to all, and see which one they are accepted at from the University of their choice. This does not necessary work if ones academic performance is well enough to earn multiple offers. Now what?

I think I have a tip for making this choice. Unfortunately I came to understand it only a few years after entering the University myself. Looking back, this would likely have helped me make a better choice to begin with (and saved me the trouble of figuring out the differences years later, and going through a complicate process of changing majors). The approach is simple, yet time consuming; though I guarantee that this will be faster than spending a year (or two!) switching majors.

Sample checklist for Computer Science vs. Computer Engineering courses

Sample checklist for Computer Science vs. Computer Engineering courses

  1. Go to the website for your top University of choice. (That decision is a topic for another discussion.)
  2. Find a course calendar for two programs you want to compare.
  3. Ignore the courses that overlap in content, and write out all other notable courses. Depending on the level of detail you want to go into, you can pull in all of the course combinations, including minors and options, though a less detailed bird-view might be enough to steer one towards their preference.
  4. Assign positive points to courses of interest and negative points to required courses that you would rather avoid.
  5. Sum up the results.

Originally, I was thinking of comparing Computer Science to Software Engineering, but there was too much overlap to make a good example. Though this previous article could be of interest — The spirit of Software Engineering.

I think it should also be noted that some of the Computer Engineering courses are accessible to Computer Science students via the Digital Hardware Option, at least at the University of Waterloo, which was taken as basis for this comparison (on the grounds of me attending that University).

Here I’ve discovered that ECE courses put emphasis on energies inside the systems — power management, thermodynamics, magnetic fields. Also, I’m not a fan of required Chemistry course. Personally, I’m not that interested in such level of detail, especially when the area of application leaves computers and gets into power-plant scales of energy transfers. The better circuit design courses are available via an option, so the key question becomes: how fascinating are those 4th year courses?

Computer Science is interesting in a way that it has much more flexibility. This allows to both avoid dull subjects and to pick up courses in the areas of interest. On the flip side, there are certain elective requirements that need to be fulfilled, such as the courses from the so-called “arts groups”.

Personally, I’m really interested in getting to Compilers via the CS route; even if that doesn’t earn me an Iron Ring.

Related posts:

  1. Computer Science at Waterloo: the new Scheme of things
  2. Computer Science at Ryerson University
  3. Online introduction to Computer Science from Stanford Engineering (for free!)

]]>
http://compsci.ca/blog/choosing-between-computer-science-and-computer-engineering/feed/ 9
Computer Science at the University of Toronto, in Video! http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/ http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/#comments Thu, 23 Apr 2009 00:22:42 +0000 Tony http://compsci.ca/blog/?p=783 Byte Club TV's take on University of Toronto's Computer Science. CS... in video... with pink hippos.

Greg: “One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.”

Related posts:
  1. Computer Science at Ryerson University
  2. Computer Science jobs for University Students
  3. Academic – X06: GameCamp (Toronto)
]]>
[sniplet ONTARIO_U_BANNER]

Byte Club TV is a webcast show profiling tech companies, typically around Toronto area. One of the shows producers, Kristan “Krispy” Uccello is fairly involved in Toronto’s tech community. I often see him at Rails Nite events; he’s a pretty cool guy.

It looks like a while ago they’ve visited and filmed at the Computer Science department of University of Toronto. This isn’t an opt-out to avoid writing up an actual overview of UofT’s Computer Science, but until then it’s still an interesting video to watch. Pretty shots of the glass CS building & Greg Wilson talking about the department, industry, and pink hippos.

Greg: “One of the things that I think the department has to do, is a better job at reaching out to people to get that message across; is that almost anybody who can program well is pretty much guaranteed an interesting job, that actually does something useful to society.”

Related posts:

  1. Computer Science at Ryerson University
  2. Computer Science jobs for University Students
  3. Academic – X06: GameCamp (Toronto)

]]>
http://compsci.ca/blog/computer-science-at-the-university-of-toronto-in-video/feed/ 2
The spirit of Software Engineering http://compsci.ca/blog/the-spirit-of-software-engineering/ http://compsci.ca/blog/the-spirit-of-software-engineering/#comments Wed, 04 Feb 2009 00:52:56 +0000 Tony http://compsci.ca/blog/?p=761 Software Engineering vs. Computer Science does have it's technical differences, there are also some differences that take place outside of the lecture halls.

Since University is as much about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered. Related posts:
  1. Choosing between Computer Science and Computer Engineering
  2. Chemistry for Software Engineers
]]>
Software Engineering by <a href='http://www.flickr.com/photos/canadianveggie/123383284/' title='Flickr: Software Engineering'>Canadian Veggie</a>

Software Engineering by Canadian Veggie

While Software Engineering vs. Computer Science does have it’s technical differences, there are also some differences that take place outside of the lecture halls. Since University is as much (if not more) about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.

The two things I’ve noticed to lack in the Computer Science program are:

The Iron Ring (in Canada)

Software Engineering, being an Engineering program, offers an Iron Ring at graduation. It’s like a degree that one could wear on their hand.

The graduating class’ unity

While Computer Science is generally much more flexible than Software Engineering, this also means that there is less structure. Engineering programs are typically done in rigid “classes” where the bulk of the lectures are attended by the same group of people for the duration of the program. The hardships of the undergrad studies foster a strong bond between the people who manage to make it through.

I was reminded of this spirit last week in Montreal, during CUSEC, when a group of SoftEng students was running through McGill, chanting Waterloo cheers, at 2 in the morning. Good times.

Related posts:

  1. Choosing between Computer Science and Computer Engineering
  2. Chemistry for Software Engineers

]]>
http://compsci.ca/blog/the-spirit-of-software-engineering/feed/ 16
Blocking students on school network is wrong http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/ http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/#comments Mon, 27 Oct 2008 03:08:42 +0000 Tony http://compsci.ca/blog/?p=713
"I think this is one of those problems that does not need a technological solution, but a social one." No related posts.]]>
Just because we might have access to some technology to fix a problem, does not necessarily mean that the problem itself is a technical one. Sparked by a forum conversation, the key example is the use of technology to filter out web content in a classroom. Asked for is, perhaps, the technical prevention side of the previous discussion of wireless in classrooms. Dan pointed out the flaw with that plan:

Really it should be the teacher stopping their students from playing youtube videos out loud in class and disturbing other students.

I think this is one of those problems that does not need a technological solution, but a social one.

There are many layers to block network access

There are many layers to block network access

There are a lot of obstacles that could (and often are) put in place between users and their desired network accessible content. Some are legitimate security measures aimed at protecting the network. Others are roadblocks that annoy users more than prevent whatever has prompted the measure.

One of the most ridiculous “security measures” I once saw on some system was that the right-click of the mouse was physically disabled. The sys-admin must have disassembled the mice and popped off the plastic extension that clicks.

While well though out network rules are possible, it seems that more often that not the systems are simply crippled in a blanket policy of “just don’t do anything, ever”. There will be a locked down kiosk mode browser with broken settings; to ensure that everyone uses only this (very inconvenient) browser, the installation of any other browser will be forbidden… the same enforcement will also prevent the use of any other legitimate software, as a side effect. Soon enough the entire system is a crippled fraction of the former self, all because some student was watching YouTube videos. This is excessive. Everybody suffers.

While complicated systems could make it just that much harder for the students to get around them, perhaps the root of the problem is in the fact that those students are aiming to get around all this technology in the first place. In such a case, throwing more technology at the problem only masks its symptoms.

No related posts.

]]>
http://compsci.ca/blog/blocking-students-on-school-network-is-wrong/feed/ 21
The Disadvantages of High School Programming http://compsci.ca/blog/the-disadvantages-of-high-school-programming/ http://compsci.ca/blog/the-disadvantages-of-high-school-programming/#comments Fri, 10 Oct 2008 02:07:15 +0000 Roman http://compsci.ca/blog/?p=696 high schools not adequately preparing them for the field. Roman, a student at the University of Waterloo, explores the flip side of the issue -- sometimes things learned in high school simply get in the way.

those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language Related posts:
  1. MIT highlights for high school students
  2. On entering the Computer Science field with no programming background
  3. Plagiarizing code for computer programming assignments
]]>
broken computer in a lab

Broken by quinn.anya

A common worry for students applying to Computer Science programs at Universities is about high schools not adequately preparing them for the field. Roman, a student at the University of Waterloo, explores the flip side of the issue — sometimes things learned in high school simply get in the way.

As I settled into University of Waterloo’s academic system over the past month, I’ve noticed something that, to me, seemed counter intuitive. People who have taken a year or more of high school programming were having a harder time in the CS135 course than me, who has a combined experience of just over two months (including the month in university). Granted, the fact that CS135 employs the functional language Scheme as its language of choice is a big stumbling block for those with experience in imperative languages such as Java or Turing. High school programmers are challenged syntactically and conceptually, effectively bumping them down to beginner level as they adjust to the new curriculum. However, the problems go beyond that.

It seems (I wouldn’t know, but I draw on conversations with others to make this assumption) that high-school programming focuses on the idea of “just making it work.” My roommate tells me his teacher simply checked if the program worked and gave 100% or close to it. Making contracts, purposes, examples, and tests (as well as templates and data definitions) comes hard after years of simply “making it work.” And though (again, I wouldn’t know) the design recipe may not be as heavily implemented in the “real world,” it a way of communicating with those reading your code. Programming is communication. And communication is not a high-school programmer’s virtue. (Editor’s note: not all University students are better. — Tony) Their philosophy seems to be that the code is to be created and put into a black box until an emergency calls for a (painful and time consuming) review. In CS135, the fact that programming is an act of communication is emphasized heavily. Those who have been continuously told to “just get it to run” are in a hard place.

On the other hand, people who come into the course with no, or barely any, programming experience may find the basic concepts (such as functions, operations, and conditionals) a little more difficult to tackle. However, when it comes to programming readable code they may not be inhibited to the same extent. Their code might be lengthy, ugly, and inefficient, but, in accordance with the “just get it to run” philosophy, so might the code of the high-schoolers. Basically, those who take programming courses in high school can find themselves at a disadvantage, as they have to unlearn bad programming habits while learning a new and very different language. Furthermore, if the dominant idea of high-school courses is to get the program to just run, the marks of a decent portion of the students will be high. The judgment of success based on marks may give them an exaggerated idea of their abilities. They may think “Well, I’m getting 75% in English, 80% in Math, and 91% in Computer Science… I guess I’ll apply to a Computer Science program!” When they get there, the difficulties described above will exceed anything they have ever experienced. If the students are not passionate, the results will be poor.

The point is that high school programming can teach students bad programming habits, entice them to pursue Computer Science as their major (for the wrong reasons), and undermine their chances of success in the field. Again, I’m assuming an average student who does not take an active interest in Computer Science or any other subject and will choose Computer Science based on the grades he/she receives. I believe that with passion, nearly anything is possible. I am not insulting any high-school students, nor am I suggesting one shouldn’t go into Computer Science (high school or university) unless you’re 110% sure you will live and breathe code. I’m pointing that there are faults in the high-school programming curriculum that seem to do the very opposite of preparing students for the challenges of University Computer Science and beyond.

Roman Zimine is an inexperienced but passionate first-year student at the University of Waterloo’s Math Faculty.

Related posts:

  1. MIT highlights for high school students
  2. On entering the Computer Science field with no programming background
  3. Plagiarizing code for computer programming assignments

]]>
http://compsci.ca/blog/the-disadvantages-of-high-school-programming/feed/ 18
Online introduction to Computer Science from Stanford Engineering (for free!) http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/ http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/#comments Sat, 20 Sep 2008 04:40:08 +0000 Tony http://compsci.ca/blog/?p=677 for free!) online (in MIT's case, that would be all of their courses).

This fall, SEE launches its programming by offering one of Stanford’s most popular engineering sequences: the three-course Introduction to Computer Science taken by the majority of Stanford undergraduates, and seven more advanced courses in artificial intelligence and electrical engineering.

Related posts:
  1. Get a free computer science education online
  2. MIT highlights for high school students
  3. Computer Science at Carleton University
]]>
Lecture photo found on Stanford's SEE website

Lecture photo found on Stanford's SEE website

Standford University is joining the likes of MIT and UC Berkeley, by making some of their courses available (for free!) online (in MIT’s case, that would be all of their courses).

This fall, SEE launches its programming by offering one of Stanford’s most popular engineering sequences: the three-course Introduction to Computer Science taken by the majority of Stanford undergraduates, and seven more advanced courses in artificial intelligence and electrical engineering.

What’s awesome is that the sequence starts out with the very basics. The very basics of Computer Science. If one has zero experience, but is interested in Computer Science, this is it. It’s best put in words of the (actually interesting) professor, teaching the first course of the sequence:

So if you’re worried about how much previous experience you’ve had or your friend who, like, worked their way through high school by programming for Google or whatever, don’t worry about it because all you need to know in here is basically either how to turn a computer on or to recognize a computer that’s on if you were to walk up to it and it were already to be on, all right?

Though what’s even better is that this introduction sequence goes from zero to implementing-a-miniature-webserver (in Python) in just three courses. Recursion, algorithmic analysis, data abstraction, data structures, concurrent programming, memory management…. Using 8 different programming languages (in various capacities) — C, Objective C, C++, C#, Java, LISP, Python, Scheme.

If anyone is in high school with a canceled Computer Science program (and unfortunately there are plenty of such), Stanford’s series of videos will bring one up to speed of the world-class first year University level Computer Science. Having briefly looked over the videos, the professors seemed interesting enough to make those lectures of value even to those who are familiar with the material, but perhaps are interested in refreshing the core basics of their knowledge.

It’s all available from Stanford Engineering Everywhere, in a variety of formats: YouTube, iTunes, Torrents, and text transcripts.

flag / UBC, Canada

flag / UBC, Canada by Ces't June

But where is Canada, when it comes to leading the academic education of Computer Science, in an accessible manner? U Waterloo, U of Toronto, UBC — I’m looking at you guys!

What I’d like to see, is to have some Canadian Universities, that are at least perceived to be the leaders in technological fields, to open up some of their academic material. Lead by example. There’s every reason to — many students look up to those institutions, but not everybody can get in, for a variety of reasons. Current students benefit from the extra availability of the material. Perspective students (if the business of education needs financial convincing) get to preview the top-quality education that they are being promised. It’s simply good for the community.

Though for now, I hope for more online material to come out of Stanford U.

Related posts:

  1. Get a free computer science education online
  2. MIT highlights for high school students
  3. Computer Science at Carleton University

]]>
http://compsci.ca/blog/online-introduction-to-computer-science-from-stanford-engineering-for-free/feed/ 6
Mansour Moufid “hacks” Carleton U’s campus card and emails http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/ http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/#comments Sun, 14 Sep 2008 06:00:21 +0000 Tony http://compsci.ca/blog/?p=664 "student hacker" story hitting the the media (after the MIT/Boston subway case) is a Canadian 2nd year Math major student at the Carleton University, who "hacked" the campus card and student emails. I use "hacked" in quotes as the police news release says that the systems were breached via "Keylogger software and Magnetic stripe card reader"; and even though Mansour Moufid wrote the keylogger himself (as is said in this CBC article) -- this is hardly something innovative, or insightful. It was a "hack" in a mass-media sense of the word. Related posts:
  1. Computer Science at Carleton University
]]>

The latest “student hacker” story hitting the the media (after the MIT/Boston subway case) is a Canadian 2nd year Math major student at the Carleton University, who “hacked” the campus card and student emails. I use “hacked” in quotes as the police news release says that the systems were breached via “Keylogger software and Magnetic stripe card reader”; and even though Mansour Moufid wrote the keylogger himself (as is said in this CBC article) — this is hardly something innovative, or insightful. It was a “hack” in a mass-media sense of the word.

What’s really interesting about this story is the duality of the White Hat / Black Hat nature of this event. What’s down-played in the media, and emphasized on technology centric news sources (such as Slashdot and Reddit) is the 16 page report, titled “Appeal for a Carleton Cypherpunk Posse”, that Mansour send to the Carleton administration, affected students, and supposedly circulated around the students of the University as well. The presence of such a paper suggests academic intentions and many are quick to scream “White Hat” in student’s defense. Though as the Carleton student newspaper notes — 9 of those pages were simply a copy of the source code and also “includes a table claiming to contain the personal information for 32 students”.

This is where I have a problem with Mansour’s approach:

Proof-of-concept prototypes and responsible disclosure — good.

Acquiring real passwords, publishing those passwords, and doing so under a fake name — not as good.

@Mansour — it’s good to know that you are interested in researching and strengthening the security of your University, but your execution could have been better. Going after actual students is in bad taste and has landed you in trouble. And now Carleton University isn’t even convinced of the vulnerability that you have shown, as seen in the email that the University has send out to their students:

This message is to notify students that the recent case of a hacking incident at Carleton has been successfully concluded. This morning, officers from Campus Safety brought in for questioning the individual concerned, who is now fully co-operating with university officials. He has confirmed how the hacking incident occurred and the university remains confident that the integrity of its email and Campus Card system has not been compromised.

@Carleton (and other Universities) — this incident doesn’t call for criminal charges. This will not deter students from being interested in security, but only encourage them to stay quieter about what they are doing. What we need to do is to teach a code of conduct — something Engineering students hear about in their very first term of study. Offer an introductory course to digital security, and make it an accessible elective by 2nd year of study. Security is a fascinating subject, it really is, and schools have an opportunity to take one of two positions — assist the students and encourage them towards the best practices, or get in the way and risk letting the students fall to the dark side.

Update: The above mentioned report — “Appeal for a Carleton Cypherpunk Posse” published under the name of Kasper Holmberg has surfaced on WikiLeaks.org. A copy is mirrored here.

The paper is quite vital to understanding the story.

This report is written by a full-time student of Carleton University, currently enrolled as an undergraduate in the Department of Mathematics and Statistics. The author hereby wishes to elicit a response from the reader and the community leading to greater awareness of the issues of privacy and security (or lack thereof) affecting students.

Though I was disappointed in the Proposed Remediation section. Considering the technical detail of the rest of the report, I was expecting to see something better than:

The author simply recommends the discontinuation of use of the Campus Card in its present form.

Related posts:

  1. Computer Science at Carleton University

]]>
http://compsci.ca/blog/student-hacks-carleton-us-campus-card-and-emails/feed/ 40
The most important programming language http://compsci.ca/blog/the-most-important-programming-language/ http://compsci.ca/blog/the-most-important-programming-language/#comments Mon, 25 Aug 2008 13:30:17 +0000 Tony http://compsci.ca/blog/the-most-important-programming-language/ "what is the best programming language?". And the the brief answer to that is simple:
You're doing it wrong. Related posts:
  1. Looking back at working with PHP
  2. You don’t know that programming language
  3. Ruby – best introductory programming language
]]>
software architect
Original image by Ezu

One of the common questions that comes up among students new to Computer Science and Programming is along the lines of “what is the best programming language?”. And the the brief answer to that is simple:

You’re doing it wrong.

This requires some elaboration. When one asks “what is the best programming language to learn?” or “what is the best programming language to build video games with?”, it seems that the intent is to get some experience with one specific technology, and stop there. That is a failure of an approach.

A programming language is a tool. Tools have specific purposes. Tools change. New tools, technologies, and techniques becomes available. It doesn’t make much sense to specialize in wielding a hammer over a screwdriver, if one lacks the core skill of following assembly instructions. However unlike this construction analogy, technological tools change rapidly.

“Java will guarantee a corporate job”; “PHP is required for web development”; “Ruby is growing at 400% per year”. A lot of people claim to have a solid idea of where the industry will be and are quick to offer advice, but this can’t possibly be the case. All of those languages — Java, PHP, Ruby, have first appeared in 1995. This means that all the hype that you are supposed to “know” right now, didn’t even exist just 13 years ago. So if you plan on sticking to your favourite high school programming language, chances are that by the time you graduate from a University, you’ll show up at the playfield with a wrong type of bat, so to speak.

Higurashi: bringing a golf club to a baseball game
Higurashi no Naku Koro ni (episode 9)

But then the question still stays: “what should one learn next?”. Algorithms, data structures, complexity, math… Learn the core abstracts, ideas, and skills that are language independent, and that transfer from one syntax to another. Learn the ability to learn. When a new opportunity with new technology comes along, you should be able to get over the learning curve fairly quickly.

So your “best language”; your “most important programming language to learn next” is the one that will help you do the above. As a tool. As a palette with which to express and explore your ideas. It might be one with the cleanest syntax, or the most documentation, or one that you are already familiar with the most.

It wouldn’t make sense to pick up a yet-another-programming-language just to be able to do what you already can, only with a somewhat different syntax. It’s useless to write the same basic sort in 12 different languages, if all of them are too slow to finish in a reasonable time. Worse yet if you don’t understand why this is so.

So lets drop this obsession with learning to say “hello world” (or some more complicated version of essentially the same) in every programming language one can name. Lets also drop the idea of finding “one language to rule them all; and retire”. Once we put the Science back in Computer Science, it wouldn’t matter which language you’ll end up using.

Related posts:

  1. Looking back at working with PHP
  2. You don’t know that programming language
  3. Ruby – best introductory programming language

]]>
http://compsci.ca/blog/the-most-important-programming-language/feed/ 64
Learning Before Learning (or getting ahead of school curriculum) http://compsci.ca/blog/learning-before-learning/ http://compsci.ca/blog/learning-before-learning/#comments Mon, 07 Jul 2008 16:24:17 +0000 Aziz http://compsci.ca/blog/learning-before-learning/
  • The most important programming language
  • ]]>
    Working on an assignment in the middle of the night
    Original image by Tony Targonski

    This post, as many are on this blog, is inspired by a post on the forums. A user (Banished_Outlaw) asked some questions about Scheme, and one of his concerns was that he wanted to learn the language before school started, thinking ahead of U Waterloo. Though Professor Prabhakar Ragde (PR) warns against attempting to learn something new and unfamiliar on your own:

    I don’t know why you guys insist on learning on your own (possibly poorly or incorrectly, without any help) what you’re going to learn in a couple of months in a classroom. You’ll just get bored, start skipping lectures, miss important material, and get lower marks.

    His point has some validity — learning the wrong way can be a bad thing and can set you back a bit. But is the problem really with trying to learn the material before starting class? What’s different about learning from a teacher than learning from a book or an online tutorial? The greatest advantage of being in class is that you have the structure and guidance of someone there. You can talk it over with the instructor and get some help.

    The problem with learning on your own is that you have less indication of when you’re wrong, and one can’t even be sure that the source is giving you the correct information in the first place. But can you be sure about that in class as well? Some instructors might have preferences towards non-standard notation or syntax or approaches. The differences are often minor, and it doesn’t take much to figure out, but if the person already knew the alternative, or even had seen it (perhaps in an online tutorial before class), it could save a student from stumbling over trivial things like syntax variations.

    Granted, this example isn’t to big of a deal, but it gets the point across. You can’t be closed-minded when learning. Knowledge can’t be a bad thing for you — it’s what you do with that knowledge that determines it’s usefulness. PR brings up another good point — he doesn’t want to see students learning in the wrong way:

    What I don’t need is someone who skips my lectures because they’ve read the first chapter of SICP [...] and the night before each assignment is due writes out some sloppy R5RS code with no comments. Or, when using C, calls a library function instead of writing the code I want, thinking that the point is to get a working program instead of getting exercise in a particular technique.

    I think this is the student’s responsibility — post-secondary studies are to teach students the profession, not to teach learning or study habits. It’s up to each individual student to decide what he/she is going to learn, and how they’re going to do it. Going to class and talking to their professor is the best way to find out what is expected. Grades could be assigned for specific approaches, techniques, or even style of coding. At the very least, that’s the type of material one would be expected to be familiar with in time for the tests.

    empty lecture hall in School of Optometry, University of Waterloo
    Crop of original image, by jaycan*

    Though the counterpoint is that I’ve skipped a lot of classes, and I’m at the top of my class. At times I didn’t go to class because I knew what to do, and usually had already done it. Usually I went and sat through the lectures (only half-minded, though). The usual outcome: “I already knew it”.

    I won’t say you shouldn’t go to class, but you can’t rely on just that. My point is that learning cannot harm you. You have to be responsible, and if you’re in college you should know enough to make your own decisions about going to class or not! Having exposure to something before you take a class for it, in my opinion, is actually beneficial. At the worst it gives you a chance to see the differences in ways it can be taught, and usually you’ll have all the core skills down so you can focus on really understanding them and grasping the more complex concepts or paying attention to other details, like design standards of the language, rather than being mired in the syntax and basic library functions.

    Don’t let knowledge get in your way – learn as much of it as you can. This summer, take up Python!

    This article was written by (Anthony) Aziz. I’m an active member of the CompSci.ca community. I maintain my own website and blog and enjoy programming as a hobby and education (hopefully career, soon). If you haven’t already checked out the forums, I encourage anyone who reads this blog to do so, and also join us in the irc room (#compsci.ca on irc.afternet.org, or use the online chat page).

    Related posts:

    1. The most important programming language

    ]]>
    http://compsci.ca/blog/learning-before-learning/feed/ 16
    Video game degrees need to require Math http://compsci.ca/blog/video-game-degrees-need-to-require-math/ http://compsci.ca/blog/video-game-degrees-need-to-require-math/#comments Mon, 23 Jun 2008 06:14:21 +0000 Tony http://compsci.ca/blog/video-game-degrees-need-to-require-math/
  • Video game designer education – it’s in electives
  • Profitability in video game industry
  • 3 Reasons to not get a Video Gaming Degree
  • ]]>
    BBC News UK has recently published an article — Skills shortage hits games firms, on which I wanted to reflect. The premise is simple — the video game industry is struggling to find the type of talent they desire.

    xbox 360 wireless controller buttons
    Original image by louder

    The games developers say that they are struggling to find in the UK the kind of high-powered mathematicians and computer scientists that they need to build increasingly sophisticated products.

    The statement comes along the fact that there are 81 video game degree courses available in the UK. This increasingly popular field is not without setbacks though.

    At Northumbria University, which offers a degree course in Computer Games Engineering, staff say that prospective students are often put off by the requirement for Maths A-Level.

    Clayton has already written an introduction to the importance of Math in video game development, though it seems that many might be trying to capitalize on the trend by opening up programs that are more available (read “dropping the badly needed requirements”). The result is that only 4 of the 81 courses are accredited by the Skillset, the industry and government joined effort to monitor the quality of creative media in the United Kingdom.

    Interestingly, the article also states that:

    The games industry claims that Canadian government support has allowed it to flourish, and thousands of jobs are moving from Britain to Canada.

    That is good for us, here in Canada, but as I see a growing trend of “video game degrees” starting to pop up locally, I can’t help but to think that we might be heading towards the same fate. That’s not to say that some of the programs are not good, but the overall educational system is still a potential minefield. Make sure you are learning what you need to learn.

    minesweeper

    That is to say, you need strong Math. More so for development than design or testing, so make sure to research the programs. Though until Canada gets its own group to set the baseline and accredit the video game education programs, one is likely just better offer pursuing a classical Computer Science degree with strategically chosen electives.

    Related posts:

    1. Video game designer education – it’s in electives
    2. Profitability in video game industry
    3. 3 Reasons to not get a Video Gaming Degree

    ]]>
    http://compsci.ca/blog/video-game-degrees-need-to-require-math/feed/ 20