Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 
Author Message
 Post subject: Can Anyone Set me off on the Right Foot?
PostPosted: June 22nd, 2014, 11:07 pm 
Steel Member
Offline

Joined: May 5th, 2012, 10:12 pm
Posts: 43
Location: New Zealand nz
RS Name: Exort
RS Status: P2P
Clan Name: Ka Pai
Hey Guys,
I'm currently in my last year of high-school and am sitting a scholarship exam, worth $5,000 NZD which goes towards the University of Waikato.

The Exam is here: http://www.cs.waikato.ac.nz/admissions/ ... 013-written-exam.pdf

Does anyone know where i can learn what is in the exam or lend me a hand?

Thanks :)

_________________
Image


Top
 Profile  
 
 Post subject: Register and login to get these in-post ads to disappear
PostPosted: June 22nd, 2014, 11:07 pm 
Steel Member

Joined: September 9th, 2004, 1:47am
Posts: 9047
Location: In your web browserz


Top
  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: June 25th, 2014, 1:07 pm 
Site Owner
Offline

Joined: September 9th, 2004, 9:26 am
Posts: 6887
Location: Wild Rose Country ca
RS Name: shane12088
RS Status: P2P
Some of the questions are general technology based questions which shouldn't be too hard if you've been keeping up with technology for a while. These ones you can definitely research on the internet to see what the best way of going about them is (if that's allowed).

The programming ones should be tackled in the following way:
1. Look into various programming languages and pick one that's suitable for the exam.
2. Learn about this programming language, what can it do, where is it used, how do I use it?
3. Start creating practical examples with the language in order to actually learn the language yourself.

My guide on learning how to program: http://informer.rsbandb.com/article/201 ... g-how-to-program.htm

_________________


Top
 Profile  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: June 25th, 2014, 10:22 pm 
Rsbandb Donor
Offline

Joined: October 25th, 2004, 10:12 pm
Posts: 3055
Location: New Zealand nz
RS Name: Chief. Snake
RS Status: Retired
Clan Name: Bits and Bytes
I have actually sat this exam myself and my flatmate in fact won the scholarship, so I feel I am in a unique position to be able to offer advice! ;)

Before I go any further though, I just want to say a few words about the exam's purpose. The scholarship money is a nice bonus and a fairly significant chunk off your student loan, but this is really mostly to decide where you belong in classes with respect to prior knowledge. Don't stress about putting too much effort into learning concepts that are totally new to you. In your first year of the degree you only do two compulsory introductory computer science papers, one in each semester, and your performance in the exam will determine whether you are ready to skip either the first paper or both papers, and move straight into some second year papers instead. Something else worth noting is that this won't make your degree shorter or easier (in fact, it will probably make it a little bit more work if you skip straight into higher papers) but you'll be in a position where you're able to get much more out of it if you're ready to; you still have to take the same number of points towards your degree as everyone else, so it just means you will be able to choose more papers at higher levels. I'm nearly at the end now and I still feel like I have so much more to learn, even though I was able to skip the first introductory paper, so that's a very cool opportunity. You'll be awarded the scholarship if you're ready to skip both introductory papers (so you don't have to actually get the scholarship to skip past the first introductory paper).

Secondly I want to note that this is by no means an easy exam. It's meant to cover all the concepts that are taught in first year computer science, and although they start from the very beginning, they're not things you would have ever been taught in school (unless they've significantly improved the curriculum in the past few years!).

As you can probably see from those questions, some of them are really general, and others are a lot more specific. The general questions (e.g. about operating systems, choosing different computing platforms) are just meant to stretch you and there really aren't any textbook answers for them. In a sense, they probably just want to see that you have a passion for the subject. If you know something about Linux or even OS X that makes either of those OSes more appealing for a programmer to use than Windows, for instance, drop that in, even though it's not specifically what the question asked for. If you want to talk about phones and tablets vs desktop and laptop computers, or how mobile operating systems differ to desktops, mention some cool random fact from Apple's WWDC or the Google I/O keynote from last night/this morning. I would answer the question in general terms as best you can, and then try to add in something that will make you stand out from everyone else taking the test.

The rest of section A will likely be about binary numbers as in the 2013 exam (because that's kind of the only theory you get taught in the first intro to CS paper). To this day I still hate doing binary number conversions and even though I remember studying for them when I sat this test, I screwed them up in the test itself. :P Realistically, all you'll ever have to do in practice is convert binary numbers to decimal numbers and vice versa. You'll have the whole concept of binary slowly drilled into you in your courses, but for now all you need to know is the basic binary format. For anything more advanced (like adding/subtracting/multiplying binary numbers in place, i.e. without intermediate decimal conversions) there will be swathes of resources across the internet. I'd maybe start by watching YouTube videos.

The basic unit of binary and every non-quantum computer system everywhere is the bit, which has the value 0 or 1. Computers usually process bits in bigger units like bytes, which are chunks of 8 bits. A "word" in computer talk is the natural unit size used by a computer system, which these days is generally 32-bit or 64-bit. When you're programming, you'll mostly only ever need to deal with primitive types that are 32 or 64 bits long. However, the thing to take away from this is that while binary numbers are usually represented in blocks of 8 bits, they can be pretty much any length.

So, the most obvious binary numbers are zero and one, because their values are the same as in decimal (0 and 1). But as soon as you want to count up to 2, things start getting tricky because in binary there isn't a single digit for the number 2. Binary is "base 2", which means that it consists of 2 single digit values, 0 and 1. Decimal is "base 10" because it consists of 10 single digit values, 0 to 9. What happens when you go past the 10th digit (9)? The number becomes 10. In the same way, when we count up from 1 to 2 in binary, the number becomes 10 (but we wouldn't call that ten, it's now just one-zero). Now as we count upwards, we just keep going. The number 3 is 11. The number 4 is 100. The number 5 is 101, the number 6 is 110, 7 is 111 and 8 is 1000. In decimal, every digit added to the number means that the number has been multiplied by 10. In binary, it means that the number has been multiplied by 2. So you can calculate any binary number by knowing that each digit represents a number:

0 1
0 2
0 4
0 8
0 16
0 32
0 64
0 128

This is getting hard to explain in writing and it's tricky to wrap your head around at first so I'd recommend watching videos on it for more info. :)

Something else to take away from this concept though is the idea that computers only work with finite numbers. For instance, numbers that are 8 bits long aren't very big! They can only represent 256 possible values, which could be the numbers from 0 to 255 (128 + 64 + 32 + 16 + 8 + 4 + 2 + 1) or -127 to 127 (I think that's rightish). We don't usually use data structures this small, but a more common problem is the fact that 32-bit structures can only represent up to ~4 billion values, so you have to be careful when you're writing code to make sure that the numbers you're working with will never exceed the maximum or minimum bounds of the data structures they are stored in. The 32-bit limit is also the reason why there aren't enough IPv4 addresses to accommodate the human population. 64-bit data structures are usually sufficiently large to solve most problems.

As for programming, I'm not 100% sure what to tell you because the uni are currently still tossing up which language they're going to teach to first years next year. :P For the past several years, they have taught C# in first year and Java in the second year (both very similar languages), but I think the primary contender at the moment is the Python language, which is really powerful and extremely simple in comparison to the other two. I would wholeheartedly recommend Python going forward, as I think most people do, if it weren't for the fact that in most cases it (rightly so) abstracts away some of the more difficult aspects of programming, such as working with complex data structures and the nitty gritty of working with various types (integers, strings, etc), which at some point you will still have to learn about. Shane is spot on in his Informer article about some of the benefits of Java to ensure that you maintain a high degree of theoretical knowledge of what's going on behind the scenes when you're coding, and that's what I'm referring to when I say that Python abstracts that away (so does PHP). However, it's an ideal language for beginners and advanced programmers alike because it's super powerful and lets you write concise code very quickly, and I think the examiners would be thrilled if you wrote your programs and code fragments in Python. Definitely more so than PHP, anyway, which is what I used when I sat the exam. ;)

You can use any language you like, but if there is one thing I would recommend, it would be to get as familiar as you can with compiling and running programs from the command line. Python and Java (and even PHP, I suppose) are great for this, but C# not so much. When I sat the exam they had a question that involved reading user input, which I didn't know how to do from the command line at the time, so I wrote a PHP web application instead. It worked fine, but it took me a lot longer to write than it would have done if I'd known how to do it from the command line (I still wouldn't know how to do it actually, because no one writes PHP command line applications, hahaha). Java is quite complicated to execute on the command line if you haven't had a fair bit of experience with it, so I would definitely recommend looking into Python. The more I think about it, the more it seems like the natural choice.

Shane's ideas in his Informer link for simple programs you could write to get the hang of programming are excellent and it looks to me like they cover all of the basic things you'll need to know.

Anyway, I'll shut up now cause I need to get back to an assignment haha. I get way too easily carried away with all of this exciting stuff. If you have any more questions please feel free to fire away though!

_________________


Top
 Profile  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: June 27th, 2014, 4:39 pm 
Steel Member
Offline

Joined: May 5th, 2012, 10:12 pm
Posts: 43
Location: New Zealand nz
RS Name: Exort
RS Status: P2P
Clan Name: Ka Pai
Wow, thanks for the great reply's!

I'm definitely going to take a look at that article of yours Shane.

I'm not to sure I want to skip the first papers but if a lot of it is binary i might be able to because it was really easy to learn after watching tutorials on YouTube and doing some research on the internet. I would say i' bright but not exceedingly smart so i might want to do the introductory papers.
I think i'll be fine with the general computing/technology questions, just need to keep up with what's happening!
If you were to multiply binary would you convert the binary to decimal then multiply. It doesn't seem too hard though :)
Is the fact that computer work with finite numbers why max cash on RuneScape is 2147mill? with 8 bit binary would the smallest number possible be -256 or -127?
I think i'm going to start dabbling into Python, thanks for the suggestion!
What is the pratical part of the exam? I never really looked at it..OOPS!

Thank you so much for all your help!

_________________
Image


Top
 Profile  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: June 27th, 2014, 4:59 pm 
Steel Member
Offline

Joined: May 5th, 2012, 10:12 pm
Posts: 43
Location: New Zealand nz
RS Name: Exort
RS Status: P2P
Clan Name: Ka Pai
Oh and i forgot to add that i did digital technology which is like the closest class to computing that my school offered.

In about 2 years they taught HTML, CSS and a small bit of PHP and databases. I didn't do it in level 3 (my senior year) because it was only unit standard and not recognized by Universities which sucked.

_________________
Image


Top
 Profile  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: June 29th, 2014, 5:22 am 
Rsbandb Donor
Offline

Joined: October 25th, 2004, 10:12 pm
Posts: 3055
Location: New Zealand nz
RS Name: Chief. Snake
RS Status: Retired
Clan Name: Bits and Bytes
Yes! I didn't even think to mention that, but that is why max cash is 2147m. A 32-bit signed integer has an upper bound of 2147483647. A 32-bit unsigned integer has a range of 0 to 2^32 - 1 (4294967296 - 1). I glossed over this in the last post but "unsigned" means that there is no notion of positive or negative, so we assume all unsigned binary values are positive. A "signed" binary value has one bit (the most significant i.e. left-most bit) reserved to represent the positive (0) or negative (1) sign. Therefore, to be able to represent both positive and negative values, the range of values for a 32-bit signed integer are from -2147483648 to 2147483647 (or thereabouts). And there you go, max cash! If you're now wondering why Jagex chose to use signed integers instead of unsigned integers, considering that you shouldn't be able to have a negative number of any item in game, the reason is just that all integers in Java are signed for the sake of reducing the complexity of the language (which is the case for many high level languages, especially those like PHP and probably Python).

So yeah, the smallest number representable by an 8-bit signed binary value is -128 (I think I was wrong when I said -127 but you get the idea), while an N-bit unsigned binary value has a minimum value of 0.

That's really good -- that's way more than our computing classes in high school ever taught us! The programming concepts from PHP should help you get straight into a language like Python -- their syntax is quite different but the ideas will be all the same. The core computer science papers at Waikato don't require any knowledge of HTML or CSS, but there are several optional web development papers for which they will come in very handy if you want to do them.

_________________


Top
 Profile  
 
 Post subject: Register and login to get these in-post ads to disappear
PostPosted: June 29th, 2014, 5:22 am 
Rsbandb Donor

Joined: September 9th, 2004, 1:47am
Posts: 9047
Location: In your web browserz


Top
  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: July 1st, 2014, 2:44 am 
Steel Member
Offline

Joined: May 5th, 2012, 10:12 pm
Posts: 43
Location: New Zealand nz
RS Name: Exort
RS Status: P2P
Clan Name: Ka Pai
How can people get over 2147483647 experience or is that calculated in 64 bits?

Image

I've started to learn a little bit of Python and I think that having learnt HTML is helping :)

_________________
Image


Top
 Profile  
 
 Post subject: Re: Can Anyone Set me off on the Right Foot?
PostPosted: July 1st, 2014, 3:11 am 
Rsbandb Donor
Offline

Joined: October 25th, 2004, 10:12 pm
Posts: 3055
Location: New Zealand nz
RS Name: Chief. Snake
RS Status: Retired
Clan Name: Bits and Bytes
Yeah, the numbers for total XP would have to be stored as 64 bit values.

_________________


Top
 Profile  
 
Display posts from previous:  Sort by  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Jump to: