Due: Thursday 1/17 10:00am
Submission name: final0.rkt
Final Exam Information:
- The final exam will be 9:45am Friday, January 24th.
- You will have 1 hour to complete the exam.
- The exam will have 40-50 multiple choice questions.
- The exam will cover the following skills (full grid below):
- 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23
- When applicable, skills will be assessed in both NetLogo and Racket.
Write sample Racket Questions:
Write 4 different multiple choice questions covering the skills on the final exam using Racket. Use the following format for each question:
#lang racket
#|
MC Question:
Skill:
Options:
Answer
|#
#|
Here is a filled in Example:
#|
MC Question:
What is the air speed of an unladen swallow?
Skill: 9001
Options:
A) 2 mph
B) 20 mph
C) 200 mph
D) African or European?
Answer: D
|#
#|
MC Question:
Who you gonna call?
Skill: 9001
Options:
A) Transformers
B) Ghostbusters
C) Thundercats
D) Teenage Mutant Ninja Turtles
Answer: B
|#
Skill Grid
Skill | Minimal Competency | Developing Competency | Competency | Mastery |
---|---|---|---|---|
2. Using Functions | Can explain the concept of a function. | Uses a single function to produce a desired outcome. | Combines multiple functions to produce a desired outcome. | Appropriately uses functions that return and do not return values, combining them to produce a desired outcome. |
3. Writing functions/procedures. | Can write the contract for a function. | Can write simple functions given a contract. | Can write complex functions given a contract and can write contracts for functions given a specified task. | Can write contracts for complex functions, implement those functions and create effective test cases for them. |
5. Working with Boolean Values | Understands the purpose of boolean values. | Demonstrates the appropriate use of comparison operators. | Demonstrates the appropriate use of comparison and boolean operators. | Writes functions that take in boolean values and/or return boolean values. |
6. Using Conditional Statements | Can trace the result of a single conditional statement. | Can write conditional statements with one or two results. | Can write nested conditional statements. | Can use at least two different kinds of conditional statements, and understand the benefits of each. |
7. Using Randomness in Programs | Can use one language provided random function. | Can use a random function to generate integers or floating point values in a specified range. | Can use random functions to produce random integers and floating point values within specified ranges. | Can use random functions with conditional statements to write functions with randomly controlled outcomes. |
8. Data Types | Demonstrates an understanding of numeric data types. | Demonstrates an understanding of numeric and text based data types. | Writes programs that work with both numeric and text based data types. | Can explain data types that are references to other data. |
9. Data Structures | Understands the difference between single values and data structures. | Can describe how one data structure stores data. | Can use a data structure to store multiple values in a program. | Can use language provided features to effectively create and access data in a data structure. |
10. Recursion | Can describe what a recursive function is. | Can accurately trace a recursive function. | Can write and trace a recursive function. | Can develop a recursive solution to a problem and correctly implement it. |
11. Iteration | Can describe iteration. | Can use one built in language structure or feature to write an iterative process. | Can use multiple built in language structures/features to write an iterative process. | Can control iterative processes using counters and non-counter based boolean conditions. |
12. Number Systems | Demonstrates understanding of the decimal number system. | Demonstrates understanding of the binary number system. | Can convert between decimal and binary number systems. | Can work in octal and hexadecimal number systems. |
13. Digital Representation of Data | Demonstrates an understanding of bits and bytes. | Demonstrates how bits can be used to represent integers. | Demonstrates how bits can be used to represent characters. | Demonstrates how bits can be used to represent other kinds of data (e.g. images, audio) |
14. Main Components of Computers | Can describe and identify one of the 4 main components of computers. | Can describe and identify 2 of the 4 main components of computers. | Can describe and identify the 4 main components of computers. | Can describe how the 4 main components of computers interact with each other. |
16. The Internet | Can explain the roles of servers, clients and routers. | Can explain how computers are addressed on the internet and what domain names are. | Can explain how internet traffic flows between devices. | Can explain the role of different internet protocols. |
18. Agent-based Computing | Can explain what an agent is in computing. | Can explain the benefits of agents for certain kinds of problems. | Can use different agents of the same type in a program. | Can effectively combine agents in a complex model. |
20. Working with Agent Sets | Can work with agent sets that contain all agents of a given type. | Can create agent sets that meet a specific criteria. | Can create and instruct specific agent sets. | Can write a program that provides multiple instructions to multiple different agent sets. |
21. Agent Interaction | Can have agents interact with other agents of the same type. | Can have agents interact with agents of different types. | Can write a program with complex agent interaction. | Can create sub-types of agents and use them to interact with other agents. |
22. Using Variables | Recognizes the difference between variables and literals | Demonstrates ability to understand code which uses variables | Correctly uses variables in programming | Correctly uses the appropriate types of variables for different programming algorithms |
23. How Functions Operate | Knows the difference between calling and defining a function | Can correctly define and call functions | Understands, in general terms, the difference between what happens in the computer when you define or when you call a function. | Can correctly explain what happens in the computer when a function is called and when a function is defined, using the correct vocabulary (ex, parameters/arguments). |