CompSci.ca/blog » Clayton 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 Recommended for strong math students only. http://compsci.ca/blog/recommended-for-strong-math-students-only/ http://compsci.ca/blog/recommended-for-strong-math-students-only/#comments Sat, 12 Jan 2008 06:23:20 +0000 Clayton http://compsci.ca/blog/recommended-for-strong-math-students-only/
  • Video game degrees need to require Math
  • MIT highlights for high school students
  • ]]>
    QuestionableContent: Math is Delicious

    It’s the catchphrase that many students hate seeing on the course description for their introductory Computer Science course: “Recommended for strong math students only.” That one single line is the source of many headaches for countless young students expressing an interest in computer science, but not necessary math. There are many questions about the relevance of mathematics to their programming courses.

    Today, I hope to show you just exactly what is so important about math to high school students in their computer science class. A common scenario is interest in video games, but with lack of strong math skills. For that reason, I am going to discuss game development in this post, but be on the lookout for a future, second part to this.

    Thinking at a high school level, a basic game really doesn’t involve all that much math. That’s all well and good, but when you think about higher difficulty games, there is usually a lot more math involved. In fact, let’s look at a simple side-scrolling Mario clone. In this list, we’re just listing mathematical components to a single mechanic of the game — jumping onto an enemy:

    sample side-scroller game level

    • Acceleration/deceleration for running
    • Jumping/Falling
    • Collision Detection
    • Scorekeeping

    That may not seem like much, however, after a while the task can seem quite daunting and becomes a very involved project. This list will mean you will have to keep track of your player’s velocity, and his acceleration (positive, negative, or zero) both horizontally and vertically. While you’re doing that, you’ll also have to keep track of your coordinate system to check on your player positions and if they’re colliding or not. To cap it all off, most sidescrollers usually incorporate some sort of scoring system with an exponential function representing growth for consecutive hits. While each thing is small within itself, combined, these can pile up quickly.

    Now let’s move into 3D. Adding a third dimension to your game ups the ante exponentially. You have to account for a focal point, which vertices should be showing, shading and lighting, texturing, etc. All of this is math. It goes back to your simple transformations to a function on a graph, except applied to a 3D model instead. Also, when you get into rotation, you have to know how to multiply matrices, otherwise, it’s quite impossible to get a nice smooth looking animation, that still looks proper.

    While I haven’t covered computer science per se, but I have hopefully shed some light on why math is important for the applications that many high school students choose to write — games. As a last note, if you only take one thing out of reading this article, think about things this way: if you really want to be involved with game development through coding, whether it be the actual game engine, or physics engine, etc. don’t look at the math aspect as a reason to give up, but rather, a challenge. Don’t be afraid to get something wrong and have to try until you get it right. It’s much better off to get something right on the 5th try by re-analyzing the problem, than getting it right the 1st try by sheer dumb luck.

    Related posts:

    1. Video game degrees need to require Math
    2. MIT highlights for high school students

    ]]>
    http://compsci.ca/blog/recommended-for-strong-math-students-only/feed/ 15
    OpenT : A Free Alternative to Holtsoft’s Proprietary Turing IDE http://compsci.ca/blog/opent-a-free-alternative-to-holtsofts-proprietary-turing-ide/ http://compsci.ca/blog/opent-a-free-alternative-to-holtsofts-proprietary-turing-ide/#comments Mon, 09 Jul 2007 17:29:43 +0000 Clayton http://compsci.ca/blog/opent-a-free-alternative-to-holtsofts-proprietary-turing-ide/
  • Download Turing 4.1.1
  • Copyrighting a Programming Language (syntax and other Intellectual Property)
  • Computer Science Projects are due this week
  • ]]>
    Pre-alpha GUI

    Many high school computer science students have heard of Turing, a proprietary language/IDE developed and owned by Holtsoft. The fact that Turing’s development environment is proprietary poses many problems to students who try to do their schoolwork at home. The $75 price tag is hardly justified, considering the limitations of the software’s functionality and support. In contrast, just about every other programming language has a compiler freely available. So the students either hope that the school has a distribution license (and apparently enough don’t), or they attempt to obtain the software (to do their assignments!) via less legally approved means. Obviously, this is not a good thing, and has a negative impact on a student’s learning experience, something the senior members of CompSci.ca do not want to happen.

    A few months back, there was mention on the forums from Andy, talking of creating a free, open-sourced alternative to Holtsoft’s Turing programming language and an editor. Tony then split that topic, deciding that such an idea was deserving of it’s own thread. It can be found here. Tony has also published a post, discussing the legal aspects of an open sourced Turing compiler. If you don’t want to read through all four pages of posts, there is a lot of discussion on ways and means. However, general interest has died out and the project went cold for a while.

    In the last couple of weeks however, rizzix has brought the subject back up. At first, some people seemed reluctant, however, I am happy to say the project seems to have taken off. Richard Drake (rdrake on the forums), has graciously registered OpenT.ca for the project and it is the headquarters for the development, announcements, and downloads. Currently,
    Alex Reidler (Ultrahex on the forums) is in charge of developing the GUI for the actual IDE, and Richard is in charge of the documentation and the site.

    If you have any additional questions about the project, or wish to help out, you can contact rizzix (the lead), or any of the aforementioned people, as well as myself, in the #compsci.ca IRC channel on AfterNET.org, or you can leave the questions here in the comments.

    Related posts:

    1. Download Turing 4.1.1
    2. Copyrighting a Programming Language (syntax and other Intellectual Property)
    3. Computer Science Projects are due this week

    ]]>
    http://compsci.ca/blog/opent-a-free-alternative-to-holtsofts-proprietary-turing-ide/feed/ 3
    Excelling in Computer Science: It’s up to you http://compsci.ca/blog/excelling-in-computer-science-its-up-to-you/ http://compsci.ca/blog/excelling-in-computer-science-its-up-to-you/#comments Wed, 18 Apr 2007 14:00:34 +0000 Clayton http://compsci.ca/blog/excelling-in-computer-science-its-up-to-you/
  • Keeping students interested in Computer Science
  • On entering the Computer Science field with no programming background
  • Computer Science at Waterloo: the new Scheme of things
  • ]]>
    Crumpled Frustration by Aaron Jacobs

    About a week ago, I wrote an article on keeping students interested in computer science. After that article was published, there was a record breaking amount of feedback concerning it. The general consensus was that there is indeed a huge problem with students losing interest in computer science. Today, I’d like to talk about how students can instill that interest into themselves.

    Computer Science is a difficult subject. There’s no two ways about it. This means that it’s not for everyone, but that’s no different than anything else. The best part about computer science is that there’s always more than one way to solve a problem, and for a lot of people I’ve met/talked to, this is a huge reason of why they love programming. This brings about one of the great facts of computer science: there’re literally millions of pages out there with information related to teaching yourself.

    If you ever find yourself bored with what you’re doing in class (if that’s the case), go ahead, jump into a new topic (or another language even). Really, if you find yourself bored all the time in class, and don’t do anything about it, you may find yourself thinking that you don’t want to do anything computer science related due to dull experiences.

    That being said, if you really want to enjoy Computer Science, Challenge Yourself. Really, it’s the best possible favour you could do for yourself. Sitting back and playing video games in a programming class is going to make it really hard for you to excel. In fact, most people you ask will tell you that they have learned far more material in their own initiative, than not.

    The best way to challenge yourself in Computer Science is to enter some coding competitions. There are several floating out there in cyberspace. The first ones that come to mind are TopCoder, Project Euler, and the upcoming school competition DWITE hosted by our very own CompSci.ca.

    So go ahead, jump into a new language, concept or contest and challenge yourself, enjoy computer science, and keep yourself interested!

    Related posts:

    1. Keeping students interested in Computer Science
    2. On entering the Computer Science field with no programming background
    3. Computer Science at Waterloo: the new Scheme of things

    ]]>
    http://compsci.ca/blog/excelling-in-computer-science-its-up-to-you/feed/ 16
    Keeping students interested in Computer Science http://compsci.ca/blog/keeping-students-interested-in-computer-science/ http://compsci.ca/blog/keeping-students-interested-in-computer-science/#comments Fri, 06 Apr 2007 19:27:26 +0000 Clayton http://compsci.ca/blog/keeping-students-interested-in-computer-science/
  • What Computer Science could borrow from the English class
  • Excelling in Computer Science: It’s up to you
  • On entering the Computer Science field with no programming background
  • ]]>
    Computer media lab

    Hello! First I’d like to take this time to introduce myself. My name is Clayton Shier and am currently completing Grade 11. I love computer science and anything to do with it. I’ve been an active poster on the CompSci.ca forums for a while now, and I’ve asked Tony to allow me to contribute to his blog. He has graciously given me permission to do so. Thanks Tony.

    Every year, it seems that computer science classes start off relatively full. Just like any other class, throughout the semester, some students will inevitably drop the course. With computer science classes however, this dropout rate seems much higher compared to other classes. Indeed, many schools actually do not offer upper level (Grade 11 or 12) courses for computer science due to a “lack of interest” from the general school population. I think that there are many reasons for this, but I believe the mains ones are:

    • Teacher’s Style
      This is a big one. If your computer science teacher is uninteresting and un-engaging, students will be bored and less apt to find computer science interesting. The teacher must have some way of keeping students paying attention to them, they must be passionate about the subject which they teach, or they will have no hope of keeping students enthralled by the subject.
    • Teacher’s Ability in the Programming Language used
      While this may seem like an obvious one, many teachers don’t keep up with the language they are teaching. Using coding styles from when teachers were in University is not the same as styles today. Teaching students to use depreciated methodology makes it harder for others in the programming community to help out. Keeping up with the current standards, additions and syntax changes can go a long way to making it easier and more enjoyable for students learning to program.

      In a more common than it should be situation, many high school teachers are new to the programming language that they teach. They simply receive the curriculum that they are to follow, and are expected to be able to teach a class. This kind of situation is not helped through the use of proprietary software such as Ready to Program with Java (RTP). RTP comes with a bunch of proprietary classes that high schools make use of. This totally reneges on the point of learning Java, as the students would have to basically re-learn Java again, if they were to use it anywhere outside of the class. Not what I call great.

    • Course Material
      Most students coming into a high school computer science course are expecting to be able to program mind blowing 3D games within a semester. When most find out that they won’t be able to come close to doing so within their single course of computer science class, most bid adieu to it and move on. Students learn that playing video games is a very small subset of computer science, and find this fact discouraging. This is where many students also lose a lot of interest in computer science. They don’t care about sorting through arrays or lists of data, or coming up with algorithms to solve problems. For this reason, a balance must be found between teaching computer science concepts, and applying the learned concepts in an engaging manner.

    I personally think that addressing these issues would go a long way in keeping students more interested in computer science. If nothing else, it will keep the computer classes from being cut out of school’s programs. This may give those students who are considering programming as a career a better chance at getting where they want to go.

    Thoughts? Seeing as this is my first post, any thoughts, comments or concerns will be appreciated.

    Related posts:

    1. What Computer Science could borrow from the English class
    2. Excelling in Computer Science: It’s up to you
    3. On entering the Computer Science field with no programming background

    ]]>
    http://compsci.ca/blog/keeping-students-interested-in-computer-science/feed/ 44