Competency 004
Competency 005
Competency 006
Domain I Bonus (Competency 001)
100

These are the stages of the software system life cycle.

What is the process of planning, creating, testing, and deploying software?

(Note: It's cyclical because after deployment, software often requires updates and maintenance, restarting the cycle.)

100

This is a definition of the acronym "IDE", and its key functions in software development.

What is an "Integrated Development Environment", that provides tools for coding, debugging, and compiling software?

100

This is the difference between compiled and interpreted languages.

What are compiled languages, which are translated into machine code before execution? What are interpreted languages, which are executed line by line by an interpreter?

(Note: In programming, a compiler translates an entire program written in a high-level language into machine code that can be directly executed by the computer before runtime, while an interpreter executes the code line-by-line, translating it to machine code as it runs, meaning the source code is needed every time the program is executed; essentially, a compiler generates an executable file while an interpreter directly interprets the code on the fly.)

Key differences:   

-- Execution timing: A compiler translates the code before execution, while an interpreter translates it during execution. 

-- Speed: Compiled programs generally run faster because the translation process is done upfront, while interpreted programs can be slower due to the real-time translation. 

--Flexibility: Interpreters can be more flexible for development and debugging as changes to the code can be immediately reflected without recompiling. 

  • Compiled language examples: C, C++, Java
  • Interpreted language examples: Python, JavaScript, Ruby, PHP
100

Legal rights that protect creators' work, like copyright, Creative Commons, and open-source licenses. They control how others can use, distribute, and modify the work.

What are intellectual property rights?

200

A "Vehicle" class might have properties like "number of wheels" and "maximum speed." A "Car" class, inheriting from "Vehicle," could add properties like "number of doors" and "sunroof."  This concept demonstrates how sub-classes can extend and specialize the functionality of their parent classes.

What is inheritance (or what are super-classes and sub-classes)?

200

This is an explanation and example of "refactoring" in software design.

What is the process of restructuring code, while not changing its original functionality? What is improving internal code by making many small changes without altering the code's external behavior. 

What are some examples as listed here? https://www.techtarget.com/searchapparchitecture/definition/refactoring

200

This distinguishes low-level languages from high-level languages?

What are low-level languages (like assembly), which are closer to machine code? What are high-level languages (like Python, Java), which are more human-readable?

200

These are the strategies, which you'll be asked about during the test, that can be used to protect against hacking.

What are the following strategies: use strong passwords; keep software updated; use firewalls and antivirus software; and be cautious about clicking links or opening attachments?

300

These are the most common symbols you will find in flowchart design. This is also an explanation of the symbols' purposes. 

What are answers like the below that are fact checked by the cohort?

https://www.smartdraw.com/flowchart/img/basic-symbols-table.jpg

300

These are the three main categories of error types you can encounter when debugging code. 

(Bonus for 150 pts: This is one example for each error type of a tool or strategy you can use to debug the program)

What are syntax, logic, and runtime errors?

Bonus: What are 3 answers fact-checked by the cohort?

Note: Use error messages, reference materials, language documentation, and debugging tools to identify and fix syntax, runtime, and logic errors.

300

This is the difference between a data type and a data structure. (When answering, please also provide examples)

What is a data type, which defines the kind of data (e.g., integer, string, boolean, char)? 

What is a data structure that organizes data (e.g., array, list, stacks, queues)?

300

This is the definition of computer piracy.

What is copying or distributing software without permission?

400

This is a description of the "black box" approach in program design and its benefits.

What is designing a component so that its internal workings are hidden? What is ensuring users only interact with its inputs and outputs, simplifying the program's use?

400

These are examples of at least 2 different software development methodologies, and how they compare to each other.

400

This is a definition of computational thinking and it's 4 core concepts.

What is a problem-solving approach involving decomposition, pattern recognition, abstraction, and algorithms?

400

Considering the uniform resource locator (URL) https://example.net/index.html, these are the answer choices representing what is contained in the URL?


A. Browser name
B. Email address
C. File name
D. Host name
E. MAC address
F. Protocol

What are options C, D, and F? 

Options C, D, and F are correct. Option C is correct because the file name is indicated by index.html. 

Option D is correct because the host name is indicated by example.net. Option F is correct because the protocol is indicated by https. 

Options A, B, and E are incorrect because the URL does not contain information about browser name, email address, or MAC address.

500

This is an example of how to draw a class diagram using UML techniques.

[Note: Unified Modeling Language (UML) is a standardized visual modeling language that is a versatile, flexible, and user-friendly method for visualizing a system’s design. Software system artifacts can be specified, visualized, built, and documented with the use of UML.   

  •  We use UML diagrams to show the behavior and structure of a system. 
  •  UML helps software engineers, businessmen, and system architects with modeling, design, and analysis. 

Source: Geeks for Geeks

]

500

These are examples of how you would create truth tables for AND and OR boolean operators.

What are examples written on the whiteboard, as fact checked by the cohort?

500

This is the difference between "pass by value" and "pass by reference" when passing arguments to functions.

What are the following differences? 

"Pass by reference" means when a variable is passed to a function, the function receives the memory address of the variable, allowing it to directly modify the original variable; while "pass by value" means a copy of the variable's value is passed, so changes made to the copy within the function do not affect the original variable in the calling code 

https://blog.penjee.com/wp-content/uploads/2015/02/pass-by-reference-vs-pass-by-value-animation.gif

500

This is what WAN stands for.

(Bonus for 50 pts: This is how WAN is different from LAN)

What is a Wide Area Network? 

What is the fact that WAN connects computers across a large geographical area, unlike a LAN (Local Area Network)?

M
e
n
u