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.
- Choose A or B or C and complete ALL the requirements.
- 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:
- Make a list of at least five questions or ideas from the shows you watched.
- Discuss two of the questions or ideas with your counselor.
- Read (not less than three hours total) about computers, coding,
and careers that involve computers. Then do the following:
- Make a list of at least five questions or ideas from the articles you read.
- Discuss two of the questions or ideas with your counselor.
- Do a combination of reading and watching (not less than three hours
total). Then do the following:
- Make a list of at least five questions or ideas from the articles you read or the shows you watched.
- Discuss two of the questions or ideas with your counselor.
- 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:
- 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.
Programming Robotics Digital Technology - Explore different concepts in computer programming. Discuss these programming
concepts with your counselor:
- What is the difference between a local and global variable?
- What are integer, Boolean, floating point, and character data types and what values can each of these data types hold?
- What is a scalar variable versus an array or list variable?
- What are these types of control flow instructions, and how do they
work?
- A While Loop
- A Do-While Loop
- For loop which performs a fixed number of iterations (i.e. For Loop)
- An If statement
- What is a function and when is it used?
- What is a parameter to a function?
- What is a key/value pair in a database?
- What is a Universal Resource Locator (URL) and where is it used??
- In a programming language of your choosing, do the following:
- Write a program that determines if an input string of characters is a palindrome.
- Write a program of your choice from the following list.
- A program that calculates the sum of a set of input numbers
- A program to report the largest and the smallest numbers from a set of input numbers.
- A program that calculates the average of a set of input numbers.
- A program that calculates the factorial of an input number.
- A program that calculates the sum of all numbers from a user input starting number to a user input ending number.
- In a programming language that may be the same or different from the
programing 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 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.
- A program that correctly sorts in ascending order, a sequence of at least 15 input numbers.
- 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.
- A program that takes a set of at least 15 characters from a user and then displays the string in reverse order.
- 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)
- 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)
- Any other computer program agreed on by you and your counselor that uses both variables and control flow instructions.
- 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.
- Do ALL of the following requirements.
- Visit a company/school/institution where computer programs are being developed.
- 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
- Discuss with your counselor how coding is being used at the destination you visited.
- Discuss with your counselor how coding affects your everyday life, and what you have learned while working on this Nova.
Counselor Notes:
- Requirement 1:
-
Suggested reading and watching material might include the following.
- What is Programming? - https://www. khanacademy.org/computing/computer-programming/programming/intro-to-programming/v/programming-intro
- https://www.youtube.com/watch?v=THOEQ5soVpY
- https://www.youtube.com/watch?v=Y4ZIA1A54ww
- https://www.youtube.com/watch?v=N7ZmPYaXoic
- https://www.youtube.com/watch?v=9z0o4JkZgSI
- Movies about Programming
- Triumph of the Nerds
- Pirates of Silicon Valley
- Halt and Catch Fire
- Revolution OS
- The Code
- Computer Programming in Five Minutes - https://www.youtube.com/watch?v=UScm9avQM1Y\
- What is Computer programming - http://guyhaas.com/bfoit/itp/Programming.html
- Computer Programming - https://en.wikipedia.org/wiki/Computer_programming
- Computers - http://www.explainthatstuff.com/howcomputerswork.html
- Introduction to Computers and Programming - www.pearsonhighered.com/assets/samplechapter/0/3/2/1/0321537114.pdf
Each of these concepts should be basic to computer programmers.
- Local variable is only defined and used within one routine. A global variable is defined for the entire program
- 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”, “&”) - 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[3] can refer to the 3rd element of the array)
- 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
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.
A For Loop executes the code held in the loop a fixed number of times.
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. - 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.)
- A parameter is an input to a function used in the computation of the result.
- 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)
- 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.
- Scratch Jr. is free app for tables 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 programing 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. http://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/
- Palindrome - https://en.wikipedia.org/wiki/Palindrome
- Factorials - https://www.mathsisfun.com/numbers/factorial.html
- Guess the Number Program - https://inventwithpython.com/chapter4.html
- Basics of Sorting Algorithms - https://www.geeksforgeeks.org/sorting-algorithms/