To take part in discussions on talkSFU, please apply for membership (SFU email id required).

Warning: CMPT 165

13»

Comments

  • edited August 2009
    lol I took the class this semester I'm thinking I will get an A+. Fucking easy class.
  • edited August 2009
    I took the class with Dr. Popowich. Pulled an A-, but then I didn't complete the last assignment because it was just too much of a PITA so yeah, I coulda done better.
  • edited August 2009
    Popowich is definitely one of the easier profs to take it with. Baker is probably harder, but it might be more interesting.
  • IVTIVT
    edited August 2009
    that class is a gold mine for those who tutor it.
  • edited September 2009
    I took this class TWICE and still only got a C (from a C- so I guess it wasn't a complete waste).

    I HATE YOU CMPT165
  • edited September 2009
    Funny thing is, the first time I had a tutor that I "tipped" for doing a project for me. He's the professor now. haha
  • edited September 2009
    Why would you take it twice... I would've just saved the retake and money if I failed a required course.
  • edited September 2009
    Coulda been worse. I knew a guy who retook an organic chem lab course and pulled the exact same grade. Now that's a kick in the ass and a half.

    PSA for people thinking of doing a computing course in general:

    It really helps to understand the basic theory of programming somehow, some way. Even if you have to get an Apple ][ from 1977 to bang away on, learn your computer's programming language. The concepts of programming (procedurally, anyway) haven't changed much in 40 years.

    (Except that using a GOTO will give people major hives now)
  • edited September 2009
    NukeChem;60456 said:
    Coulda been worse. I knew a guy who retook an organic chem lab course and pulled the exact same grade. Now that's a kick in the ass and a half.

    PSA for people thinking of doing a computing course in general:

    It really helps to understand the basic theory of programming somehow, some way. Even if you have to get an Apple ][ from 1977 to bang away on, learn your computer's programming language. The concepts of programming (procedurally, anyway) haven't changed much in 40 years.

    (Except that using a GOTO will give people major hives now)
    A GOTO gives me hives just thinking about it. Dreams of me drowning in spaghetti start to occur.
  • edited September 2009
    Like a GOTO function in a computer language? I've been hearing about this function but never understood why it's a troublemaker.
  • edited September 2009
    online predator;60470 said:
    Like a GOTO function in a computer language? I've been hearing about this function but never understood why it's a troublemaker.
    goto functions create jumps to specific lines of code

    for example u *could* (but never should) use a goto function to jump into the middle of a function, so ur program will crash cuz variables might not be defined or an array of other unwanted problems could occur.

    using goto functions is called spaghetti code because the logic of the program is not straightforward. its not easily apparent what the program is doing or the logic behind it... think of it like those old Goosebumps books where u could choose which page to jump to next to continue the story... pain in the ass :tongue:
  • edited September 2009
    I understand how it works but I was assuming that an efficient programmer should have a good understanding of a function before using it.

    I'm guessing the difficulty with this function lies more on the debugging part, rather than it's defined functionality, which I think is pretty useless and only makes studying already written programs even harder.
  • edited September 2009
    bufli;60474 said:
    goto functions create jumps to specific lines of code

    for example u *could* (but never should) use a goto function to jump into the middle of a function, so ur program will crash cuz variables might not be defined or an array of other unwanted problems could occur.

    using goto functions is called spaghetti code because the logic of the program is not straightforward. its not easily apparent what the program is doing or the logic behind it... think of it like those old Goosebumps books where u could choose which page to jump to next to continue the story... pain in the ass :tongue:
    I used to read R.L. Stine, lol. Alot.
  • edited September 2009
    online predator;60476 said:
    I understand how it works but I was assuming that an efficient programmer should have a good understanding of a function before using it.

    I'm guessing the difficulty with this function lies more on the debugging part, rather than it's defined functionality, which I think is pretty useless and only makes studying already written programs even harder.
    This is a function that should never be necessary. The flow of logic should be seamless. As an example, one might use GOTO in an attempt at avoiding passing parameters, avoiding using pointers and to not modularize code properly (obviously c/c++ context). Any CS student realizes this is bad and just doesn't do it.

    Online Predator makes a good point: it makes code very hard to read. Other peoples code is hard enough to read without GOTO's.
  • edited September 2009
    well i used goto statements when i did machine code programming but those were small applications so the logic was simple and clear
    in larger problems goto's wont work as the code is worked on by more then one person (most of the time) plus u cant expect to work @ a company forever so it can make sense to you but it sure as hell aint gonna make any sense to the person who will replace you eventually (or even coworkers)
    goto's is just lazy man programming and in the long run probably costs more time in debugging or when modifying code to fix all the goto related issues
  • edited September 2009
    I think it's more like jack-ass programming. Unnecessary and risky.
  • edited September 2009
    In assembly language the GOTO would be the equivalent of jumping to a specific address to continue code execution. Also a bad idea if your code is meant to be moved around, so you want to be able to instead pass execution to relative addresses away from the current location in memory.

    Unfortunately older computers rather promoted the use of GOTOs or equivalents because the memory allocation was more static back then. Even today, in BASIC, you can actually GOTO a line number if you use them, or GOTO a specific label in your code.

    But I've rather derailed the subject :)

    The basic point of warning for people taking 165 who've never programmed before is that learning the theory of programming is often best done prior to taking the course, so that the only thing that need be done is learn python's quirks. :)
  • edited September 2009
    To further derail the subject, if my memory of assembly serves me right (and not outdated), the GOTO function is and has always been necessary in assembly.

    Yes, nowadays there is dynamic allocation, but that only means it re-allocates an entire program as one entity, not parts of it in which case you might assume would require "jumping" to the re-allocated parts.

    For example, say, the Firefox app is running and needs to be re-allocated, then the entire app's running binary will be allocated as one entity to a diff part in the memory, not just parts of it. The GOTO functions (or "jumping") in this context only exists within the entire memory-real-estate of a program's (Firefox) binary in the parts where "if-statements", "loops", etc. were used.
  • edited September 2009
    To quote Linus Torvalds:
    Linus Torvalds' said:
    On Sun, 12 Jan 2003, Rob Wilkens wrote:
    >
    > However, I have always been taught, and have always believed that
    > "goto"s are inherently evil. They are the creators of spaghetti code

    No, you've been brainwashed by CS people who thought that Niklaus Wirth
    actually knew what he was talking about. He didn't. He doesn't have a
    frigging clue.

    ...

    Any if-statement is a goto. As are all structured loops.

    And sometimes structure is good. When it's good, you should use it.

    And sometimes structure is _bad_, and gets into the way, and using a
    "goto" is just much clearer.

    For example, it is quite common to have conditionals THAT DO NOT NEST.

    In which case you have two possibilities

    - use goto, and be happy, since it doesn't enforce nesting

    This makes the code _more_ readable, since the code just does what
    the algorithm says it should do.

    - duplicate the code, and rewrite it in a nesting form so that you can
    use the structured jumps.

    This often makes the code much LESS readable, harder to maintain,
    and bigger.
    Source: http://kerneltrap.org/node/553/2131
  • edited September 2009
    Of all instances of the use of GOTO, I am sure some of them are useful. I, personally, have been taught to avoid them. The reason I was taught to avoid them is that most ppl. dont know how to use it effectively and you could seriously muck something up.

    This implies that there is an effective use for it, but best left for people with experience, like Mr. Linux himself, lol.
  • edited September 2009
    Makall;60443 said:
    Why would you take it twice... I would've just saved the retake and money if I failed a required course.
    I took the advice of a cmpt major and thought i'd get an A the 2nd time away. I didn't realize I was such a moron.
  • edited May 2010
    Wow I'm starting to worry after reading all the available posts on this subject. I don't know whether I'll survive this course but I've taken Math, Stats and done a bit of html for my blog. Not sure if that makes any difference though.

    Did anyone here take CMPT 165 with Bobby Chan in previous semesters? Is he any good?

    Thanks.
  • edited May 2010
    No idea sorry. If you have done ANY programming in ANY language before hitting 165 it'll really help you, because the basic principles of programming are not that much different from language to language - you start off declaring your variables, then move into how to manipulate the data you want and output the results you want.
  • edited May 2010
    NukeChem, you took both CMPT 165 and CMPT 110 right? How do they compare in difficulty? I've already taken CMPT 110 and I'm thinking of taking CMPT 165 in the fall.
  • edited May 2010
    165 is not bad. I had 165 at the Burnaby campus with Dr. Popowich. I don't know how different your instructor will be, but I can try to dig up some materials. It helps if you understand the basics of HTML, though.
  • edited May 2010
    NukeChem;64252 said:
    165 is not bad. I had 165 at the Burnaby campus with Dr. Popowich. I don't know how different your instructor will be, but I can try to dig up some materials. It helps if you understand the basics of HTML, though.
    I did some basic HTML back in high school, and it was fairly easy. I've got the CMPT 165 distance education manual and I'll probably look through it during the summer to ease my course load during fall.

    Thanks for the input.
  • edited May 2010
    I had CMPT 150 with Bobby Chan and I'd say he's a pretty good prof. He's quite clear and responds to emails pretty fast.

    As for 165, you definitely don't have anything to worry about for the first half of the course, which is just HTML and CSS. The last part, Python, tends to give some people who never programmed before problems but you'll probably be fine as long as you practice and ask questions. Also, when I took it during the Fall they removed some of the harder concepts such as for-loops, while-loops etc., so some of the older comments might not be so accurate anymore.
  • edited May 2010
    accession;64281 said:
    I had CMPT 150 with Bobby Chan and I'd say he's a pretty good prof. He's quite clear and responds to emails pretty fast.

    As for 165, you definitely don't have anything to worry about for the first half of the course, which is just HTML and CSS. The last part, Python, tends to give some people who never programmed before problems but you'll probably be fine as long as you practice and ask questions. Also, when I took it during the Fall they removed some of the harder concepts such as for-loops, while-loops etc., so some of the older comments might not be so accurate anymore.
    sorry but i lol-ed a little :p

Leave a Comment