 Scoutmaster Bucky's
Nova Lab

# Hello, World

Based off requirements from February 13, 2019.

This award explores the world of coding or computer programming. Once you know how to code, you can teach a computer to perform programs that help you in many ways.

1.

Choose A or B or C and complete ALL the requirements.

A.

Watch (not less than three hours total) computer-related shows or documentaries that involve computers, coding, and/or computer-related careers. Then do the following:

(1)

Make a list of at least five questions or ideas from the shows you watched.

(2)

Discuss two of the questions or ideas with your counselor.

Suggested watching material might include the following.

Movies about Programming: Triumph of the Nerds, Pirates of Silicon Valley, Halt and Catch Fire, Revolution OS, The Code

B.

Read (not less than three hours total) about computers, coding, and careers that involve computers. Then do the following:

(1)

Make a list of at least five questions or ideas from the articles you read.

(2)

Discuss two of the questions or ideas with your counselor.

Suggested reading material might include the following.

What is Computer programming, http://guyhaas.com/bfoit/itp/Programming.html

C.

Do a combination of reading and watching (not less than three hours total). Then do the following:

(1)

Make a list of at least five questions or ideas from the articles you read or the shows you watched.

(2)

Discuss two of the questions or ideas with your counselor.

2.

Complete ONE merit badge from the following list. (Choose one that you have not already used for another Nova award.) Discuss with your counselor how the merit badge you earned uses coding.

3.

Explore different concepts in computer programming. Discuss these programming concepts with your counselor:

A.

What is the difference between a local and global variable?

A Local variable is only defined and used within one routine. A global variable is defined for the entire program

B.

What are integer, Boolean, floating point, and character data types and what values can each of these data types hold?

Integer – a variable that holds only whole numbers (e.g. 56, 7, -4, 23). Boolean – a variable that can hold only TRUE or FALSE. Floating Point – a variable that can hold any real number (e.g. 71.045). Character variable – a variable that can hold only an alphanumeric character (e.g. "A", "G", "&")

C.

What is a scalar variable versus an array or list variable?

A Scalar variable can only hold one value. An array or list variable can hold multiple values and each value can be selected using an index. (e.g. 5, 4, 10, -3 can be held in an integer array of size 4 called X. X can refer to the 3rd element of the array)

D.

What are these types of control flow instructions, and how do they work?

(1)

A While Loop

A while loop continuously executes the code held in the loop while a condition that is checked at the beginning of the loop is TRUE and it exits the loop when the condition checked at the beginning of the loop becomes FALSE.

(2)

A Do-While Loop

A Repeat loop continuously executes the code held in the loop while a condition checked at the end of the loop is TRUE and it exits the loop when the condition checked at the end of the loop becomes FALSE.

(3)

A For loop which performs a fixed number of iterations (i.e. For Loop)

A For Loop executes the code held in the loop a fixed number of times.

(4)

An If statement

An If statement executes a given computer instruction or a block of instructions if a condition is TRUE. It can also execute a different instruction or block of instructions if the condition is FALSE.

E.

What is a function and when is it used?

A function is a block of instructions which computes a result and returns the result to the calling program. A program can branch to (or call) the function and then return back to where the function was called when the function completes. A function typically computes equations needed in multiple places in the program. (e.g. a function to calculate a polynomial given an input X value.)

F.

What is a parameter to a function?

A parameter is an input to a function used in the computation of the result.

G.

What is a key/value pair in a database?

A Key/Value pair in database programming is a set of two linked data elements which allow the programmer to use a first key data element to find a result value based on the key (e.g. FirstName -> Joan, Lastname -> Smith)

H.

What is a Universal Resource Locator (URL) and where is it used??

A Universal Resource Locator (URL) is a set of characters which identify a resource such as a webpage or a file on the internet so a program or user may access the webpage or file.

4.

In a programming language of your choosing, do the following:

A.

Write a program that determines if an input string of characters is a palindrome.

B.

Write a program of your choice from the following list.

(1)

A program that calculates the sum of a set of input numbers

(2)

A program to report the largest and the smallest numbers from a set of input numbers.

(3)

A program that calculates the average of a set of input numbers.

(4)

A program that calculates the factorial of an input number.

(5)

A program that calculates the sum of all numbers from a user input starting number to a user input ending number.

These programs can be coded in a programming language such as App Lab – https://code.org/educate/applab

Scratch Jr. is free app for tablets and phones. https://www.scratchjr.org/

App Lab is a great beginner programming environment where you make simple apps right in your browser. https://code.org/educate/applab

Web Lab is a tool to help beginning programmers create their own webpages. https://code.org/educate/weblab

Game Lab is programming environment that introduces how to make simple animations, interactive art and games using block programming. https://code.org/educate/gamelab

Tynker.com has a drag and drop block programming environment that allows you to write games, controlling robots and drones and interface to Minecraft. https://www.tynker.com/

Alice Programming Environment is a 3D interactive programming language. Alice 2 is not object oriented. Alice 3 is object oriented. https://www.alice.org/

Blocky is a visual code editor that uses interlocking blocks to represent code. https://developers.google.com/blockly/

Python is a clear and easy way to learn object-oriented programming. https://www.python.org/

5.

In a programming language that may be the same or different from the programming language used above, write a program selected from the following list. Work with your counselor to define the requirements – input from a user or from a file? Output to the screen or to a file? You may not use a GUI-based programming interface for this requirement, but a language like Python, Small Basic or Lisps (a family of powerful, syntax-light languages including Scheme or Common Lisp) would be appropriate.

A.

A program that generates a random whole number between 1 and 10 and then asks the user to guess the number. When the guess is not correct, the program tells the user that the guess is too high or too low and then asks the user to try again. The program completes when the user correctly guesses the number.

Guess the Number Program – https://inventwithpython.com/chapter4.html

B.

A program that correctly sorts in ascending order, a sequence of at least 15 input numbers.

Basics of Sorting Algorithms – https://www.geeksforgeeks.org/sorting-algorithms/

C.

A program that accepts input, performs a calculation on the input and produces an output based on the input. It must use a function with one or more parameters to perform the calculation.

D.

A program that takes a set of at least 15 characters from a user and then displays the string in reverse order.

E.

A program that displays an interactive webpage that accepts user input and modifies its display based on the input (See Web Lab – https://code.org/educate/weblab for example)

F.

A computer game of your choosing which uses interactive characters, requires skill and reports a winner or a loser. (See Game Lab – https://code.org/educate/gamelab for example)

G.

Any other computer program agreed on by you and your counselor that uses both variables and control flow instructions.

6.

For the three programs you wrote for requirements 4 and 5, explain to your counselor how each of your programs works and why you chose the particular instructions and variables that you did.

7.

Do ALL of the following requirements.

A.

Visit a company/school/institution where computer programs are being developed.

B.

Talk to someone there about how they use coding in their work. Write down at least five questions to ask the person you visit and review the answers with your counselor.

C.

Discuss with your counselor how coding is being used at the destination you visited.

8.

Discuss with your counselor how coding affects your everyday life, and what you have learned while working on this Nova. Science, Technology, Engineering, Math