I helped to write a quiz for the Computer Science Education Week promotions that were featured on our company intranet. Do you fancy yourself as a Comp-Sci aficionado? Let's see how you do with these.
1. Which achievement is Charles Babbage most famous for?
- A. Establishing software retail shops in shopping malls across America
- B. Inventing a strategic card game that involves using pegs to keep score
- C. As one of the "fathers" of the programmable computer
- D. Earning an all-time high score while playing Mafia Wars
2. Early computer programs and data were originally recorded on what storage device?
- A. Iomega "Zip" drives
- B. 8" floppy disks
- C. Punched cards
- D. 8-track cassette tapes
3. Which of the following is NOT a computer programming language?
- A. Lisp
- B. Python
- C. Ruby
- D. Simba
- E. SAS
4. Within a computer program, a function that can invoke itself again as part of doing its work is known as:
- A. recalcitrant
- B. recursive
- C. redundant
- D. repulsive
- E. a stack overflow exception
5. In a computer program, a variable that simply holds the memory address of another variable or data structure is called:
- A. a memory leak
- B. a pointer variable
- C. a linked list
- D. an address box
Answers:
1: (c). Charles Babbage is known as a pioneer in the concept of a programmable computer, even though he lived long before the technology to build modern computers was invented. Source: Wikipedia (http://en.wikipedia.org/wiki/Charles_Babbage)
2: (c). Punched cards have been around since the earliest "computing machines". Beginning in the 1960s, magnetic tape and other storage devices began to replace punched cards for data storage. Source: Wikipedia (http://en.wikipedia.org/wiki/Punched_card)
3: (d). At the time of this writing, there is no computer programming language named "Simba"…but it's probably just a matter of time. The most popular active programming languages are tracked at the TIOBE Programming Community Index (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html). The SAS programming language is currently at number 18 on the index.
4: (b): "Recursive" is the most correct answer here, but unless used with extreme care, any of the other answers might be the result.
5: (b): A pointer variable (or pointer, for short). Pointers are common in some programming languages, such as C and C++, where they are usually essential for memory-efficient operations. Those who work with higher-level languages such as Java, C#, or even SAS don't encounter pointers nearly as often (the lucky stiffs).
Click here for more Computer Science Education Week content.
3 Comments
Pingback: Computer Science is not just for basement dwellers - The SAS Dummy
A variable that simply holds the memory address of another variable or data structure is (partially correct) a pointer.
However a pointer can also contain the address of a function (or method etc.) or even a machine instruction (eg. "PC" or Program Counter on some architectures).
It can also be null.
To nitpick on the word "simply" it could also be argued that a variable that simply holds the memory address of another variable or data structure is a reference.
This all somewhat depends on your choice of programming language, as the definition is has a bit of fluidity.
"Fluidity"! That describes the computer science field as a whole, I think.
Thanks Harvey, for the clarifications. That's why we need Computer Science educators: to write unambiguous questions with only one correct answer each.