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).