Oregon State University

CS 101: Applications and Implications of Computers

Oregon State University, College of Engineering

Chapter 7 ~ How Software
Development Works

⬆ Shiftrefresh Shift-Refresh this page to see the most up-to-date instructions.

In this chapter you'll be learning about how software works, starting with some collaborative writing about industry terms and discussing your level of expertise with creative computer tasks and applications. Then, you'll read and write about the history of how software works along with its major modern methods. And then for fun, you'll create your own online game using one of Code.org's JavaScript tutorials!

Group Collaboration & Discussion

7.1 Write about industry terms in a Group Collaboration.

In the first part of this activity, you'll use the Canvas Collaboration tool in conjunction with a Canvas Assignment. Find out what group you were assigned to in the Canvas People area, then choose that group's document from the list in the Canvas Collaboration area: Ch 7 Collaboration ~ Software Industry Terms ~ Collab-#.

Access to the Collaboration Document will be provided the week it is due. Instructions are provided in that file. Login to your OSU Google Account and Launch Canvas before you attempt to open the file. Do not open the file from an email message.

  1. Choose one industry term (from the list below) and summarize it in the Collaboration document.
    • Adaptive Technology
    • Agile Development
    • Artificial Intelligence (AI) Ethics
    • Association for Computing Machinery (ACM)
    • Big Data
    • Blockchain
    • Circular Design Model
    • Cloud Computing
    • Crowdfunding
    • Crowdsourcing & Citizen Science
    • Cyberpsychology
    • Diverse workforce
    • Edge Computing
    • Institute of Electrical and Electronics Engineers (IEEE)
    • Internet of Things (IoT)
    • Leaky Pipeline
    • Low Code Development
    • Open Source Software
    • Section 508
    • Unconscious bias in computing
  2. Hint: Follow instructions in the file.

7.2 Write about your skills in a Group Discussion.

Start a new word processing document or Keep note. Write in complete sentences. Hyperlink the titles of software you mention so your groupmates can quickly go to there to learn more. Check spelling and grammar. After posting your finished writing (and perhaps illustrations/movies), reply to another student's thread.

  • Click on the Chapter 7 Group Discussion~ Share your Skills from the Canvas Home screen.
  • We all have varying degrees of experience using software to create and be productive. In a paragraph, write in the first-person style about your level of expertise with various computing applications.
  • Tell us in the first-person style if you have experimented with writing code, building interactive components, or designing something (such as a 2-D or 3-D object).
  • Share your favorite applications and talk about what you've created.
  • Extra credit: Insert an image or movie of what you have created so we can applaud your efforts!
  • Finish up by discussing whether you are ready for something more challenging. What kinds of more challenging computer tasks are you interested in trying?

7.3 Reply to a groupmate.

  1. Reply to another student's thread with more detail about their use of computer skills and creativity.
  2. Summarize and cite a source that relates to their skills.
  3. Click the more_vert 3-dot More menu to see the Rubric.
  4. Compare your work to the Rubric to ensure you've written about the required topics.

How are apps made?

7.4 Write about software development

  1. Open the What I’ve Learned... document that you created in the previous chapter. Save the file with a new name so it reads What I've Learned First and Last Name Ch7.
  2. The First Programming Languages, Crash Course Computer Science #11, edited by Brandon Brungard for PBS.. Add the movie to your bibliography tool.

    In the 7. How Software Development Works section's first paragraph, describe what you learned about the first programming languages. Right-click on the movie's title above and choose Copy link address, then, select the name of the article in your paragraph and Ctrlk or k to add a hyperlink. Select important keywords and apply the Bold style.
  3. Programming Basics: Statements & Functions, Crash Course Computer Science #12, edited by Brandon Brungard for PBS.. Add the movie to your bibliography tool.

    In the second paragraph, describe what you learned about the programming basics, such as statements, functions, and libraries. Right-click on the movie's title above and choose Copy link address, then, select the name of the article in your paragraph and Ctrlk or k to add a hyperlink. Select important keywords and apply the Bold style.
  4. Intro to Algorithms, Crash Course Computer Science #13, edited by Brandon Brungard for PBS.. Add the movie to your bibliography tool.

    In the third paragraph, describe what you learned about the algorithms, such as for sorting and graph search. Also, if you want to try the extra credit math (see below), then insert it here in a sentence. Right-click on the movie's title above and choose Copy link address, then, select the name of the article in your paragraph and Ctrlk or k to add a hyperlink. Select important keywords and apply the Bold style.
  5. Software Engineering, Crash Course Computer Science #16, edited by Brandon Brungard for PBS.. Add the movie to your bibliography tool.

    In the fourth paragraph, describe what you learned about the software engineering, such as hierarchies, object-oriented programming, documentation, integrated development environment, code reuse, source control, repository, and debugging. Right-click on the movie's title above and choose Copy link address, then, select the name of the article in your paragraph and Ctrlk or k to add a hyperlink. Select important keywords and apply the Bold style.
  6. Operating Systems, Crash Course Computer Science #18, edited by Brandon Brungard for PBS.. Add the movie to your bibliography tool.

    In fifth paragraph, describe what you learned about the operating systems, such as batch processing, peripherals, drivers, multitasking, memory protection, mainframe, time sharing, UNIX, and kernel. Right-click on the movie's title above and choose Copy link address, then, select the name of the article in your paragraph and Ctrlk or k to add a hyperlink. Select important keywords and apply the Bold style.
  7. Add all the new bibliography entries (5 expected) to the end of the Bibliography section (last page) of your What I've Learned... document. Be sure to add author names, titles, publish dates, and publisher names if your tool did not provide them (for example, YouTube is not the author, title, or publisher of user-uploaded media). Select the list of entries and apply the Normal style as well as apply the format_list_numbered Numbered list icon. So that they can be easily located for scoring purposes, do not alphabetize the list.

7.5 Extra Credit: Add math to your document.

When explaining algorithms in the third paragraph, insert a math equation, such as n2.

Insert > Equation to bring up the options.
Insert an exponent from the equation menu.
Then, when typing in the equation editor box in the paragraph, use a Circumflex accent ^ between each number to create the exponent. For example: n^2. The result will show like this:
Type a ^ between the two numbers.

Program a game

7.6 Learn JavaScript programming techniques.

The starting screen for your new Star Wars game written with JavaScript.
The starting screen for your new Star Wars game written with JavaScript.

You may have noticed a movement around the world to get more people 'programming'. Programming skills are needed in many job sectors, so gaining some experience will improve your outlook even if your field of study isn't computer science-related. One of the main instigators of the movement is a nonprofit organization called Code.org. They have expanded access to computer science in schools with a focus on increasing participation by women and underrepresented minorities. They organized an annual Hour of Code campaign which is supported by Amazon, Facebook, Google, Microsoft, and other high-tech companies.

You'll use Code.org's Hour of Code Star Wars game building lesson to learn JavaScript, a common object-oriented programming language used to create functionality in web pages.

  1. Login with your OSU Google account (red button) at Code.org. This will ensure that your new game is saved for editing later, if necessary.
  2. From Code.org, choose the Star Wars game building app. Click the JavaScript box's Try Now button, which will allow you to work with blocks and code. Choose either building with blocks or building with blocks and JavaScript.
  3. Complete the entire 15 steps. The last step allows you to create a unique game. The instructor's game looks like this: Star Wars. Your game will look different.
  4. Your game should include the following features:
    • A character that captures at least two other characters.
    • Plays sound.
    • Allows normal arrow directions.
    • Accumulates points.
    • Notifies the user that they have won.
  5. When you've finished building the game, click the orange Finish button located under the Run or Reset button (not the "I Finished!" link). If you have trouble with popups, enable popups in your browser and allow Adblocker to view the page.
  6. Copy the resulting URL. (Not the one below; copy your game's URL.)
    Copy the URL from your resulting Star Wars game.
  7. Optional: Share it with your phone so you can play it anytime. This requires your phone number. Once the game launches in a browser,
    • Android: use the more_vert menu to Add to Home Screen.
    • iPhone: use the Share button on iPhones Share button to Add to Home Screen.
  8. Click Done after you copy the URL of your game.
    • Optional: Print the resulting certificate (to paper or PDF file).
  9. To keep editing, click the green Keep Playing button.

Winning and losing by total points.

A few students have asked for code for this week's game design which will allow the game to end/win based on a specific number of points accumulated. Here is a solution that TA Justin Campbell has devised. 

  1. Before you call the first function, add a variable called totalScore and set it to zero, like this:
    var totalScore=0;
  2. Before the first function, add a for loop to addCharacters, rather than call each of them in separate functions. Declare a variable i for index, like this:
    for(var i=0; i<3; i++) {    
      addCharacter('PufferPig');   
      // add more characters here;
    } 
    //Add more characters as needed.
    
  3. To specify winning based on points,  call functions to get characters, add points, increase the total score, then add an if statement that ends the game when 300 (or some other amount) has been reached, then call the endGame function with the win value, like this:
    function whenGetPufferPig() {     
      addPoints(50);     
      totalScore+=50;     
      if(totalScore>=300) {        
      endGame('win');     
    }}
    
  4. To specify losing based on points, call a function to get a character, reduce points, reduce the total score, then add an if statement that ends the game when -100 (or some other amount) has been reached, then call the endGame function with the lose value, like this:
    function whenGetMynock() {     
      removePoints(50);     
      totalScore-=50;     
      if(totalScore<=-100){       
      endGame('lose');     
    }}
    

7.7 Share the game URL in your document.

In the sixth paragraph of the 7. How Software Development Works section of What I've Learned about Computing document, describe your JavaScript writing experience. Did you enjoy learning the language using blocks or writing the code or both? Did you create a game that was fun to play? Was it a challenge to win? Write in the first-person style.

In addition, decide on a name for your game and incorporate it into your paragraph and hyperlink it using the game's resulting URL that you copied in the previous step...like this, but with a unique name:
To make a hyperlink, right-click to choose the Link icon and paste in the URL.

7.8 Check grammar and spelling.

  1. Check and correct grammar and spelling using the built-in functions, Grammarly plugin, or LanguageTool Chrome extension.
    • Click the Review tab on the ribbon. Click Spelling or Spelling & Grammar.
    • Click Tools > Check Spelling > Spell check. A box will open in the top right corner.
    • ; or choose Edit > Spelling and Grammar > Check Grammar With Spelling (a checkmark indicates it’s on), then choose Check Document Now.

7.9 Make a PDF file.

  1. Save as the file with CtrlShifts or Shifts, and rename the file What I've Learned NAME Ch__. Replace NAME with your name. Replace __ with the chapter number. Next, create a PDF file:
    • From the File menu, choose Save As > PDF > Standard (for electronic and printing distribution).
      If you are using Word for Macintosh, then choose PDF > For Printing.
      Or, Ctrlp to Print a PDF file. Choose PDF from the list of printers.
    • From the File menu, choose Download as PDF.
    • From the File menu, choose Export to... and choose PDF.
      OR, p to Print a PDF file. Choose PDF from the list of printers.
  2. Check to confirm that hyperlinks work.
  3. Move all files to this course's folder in the Documents folder of your hard drive.

7.10 Submit the assignment.

  1. Click on the Canvas Home button and scroll down to the Assignment.
  2. Click the Assignment link.
  3. Upload the What I've Learned... PDF file.
  4. Confirm that it uploaded.
  5. Check the TurnItIn Report for plagiarized phrases and sentences. Review how to use TurnItIn.
  6. Either edit or quote the TurnItIn Report's highlighted passages in your original file and resave the PDF file.
  7. Upload the newer version in the Canvas Assignment.
  8. If your PDF file did not render the hyperlinks then paste the Game URL into the Submission Details --> Commenting box.

Back up to multiple sources

Earlier, you saved a copy of your work with a new name. Now, copy that backup to a different location, such as:

  1. Cloud drive such as Google Drive, Microsoft OneDrive, or Apple iCloud.
  2. A USB stick drive.
  3. Zip archive file.
  4. Turn on automatic backups.
    • Windows 10
      Learn to use the Windows File History feature to backup files to a new location.
    • MacOS
      Learn to use Time Machine for backup up automatically to external hard drive devices.

Because bad things happen to good people and their computers, you must back up every time you work on a project. Losing your work because of a technical glitch and lack of a backup will not provide you with a due date extension; it will only provide you with empathy.

Criteria to meet by the end of chapter 7

By the end of chapter 7, these items must be completed to earn full points:

Discussion

  1. Summarized and cited research about one software engineering term in the Group Collaboration.
  2. Summary is written with proper grammar and spelling.
  3. Summary is free of plagiarism.
  4. Bibliography is detailed and consistently formatted.
  5. Discussed personal skills working with software applications.
  6. Extra credit: Inserted an image or movie of a personal creation.
  7. Replied to at least one other groupmate with a summary and citation related to their skills.

Game Development

  1. Star Wars game allows the user to capture two or more characters using normal arrows directions, play sounds, and accumulate points to win.
  2. Star Wars game is unique from other students' games.

Writing

  1. First paragraph of section 7 describes the history of programming languages.
  2. Second paragraph of section 7 describes programming statements, functions, and libraries.
  3. Third paragraph of section 7 describes sorting and graph search algorithms.
  4. Extra Credit: math equation was typed using the Equation Editor and included in the algorithm paragraph.
  5. Fourth paragraph of section 7 describes software engineering hierarchies, OOP, IDE, code repositories, etc.
  6. Fifth paragraph of section 7 describes operating systems.
  7. Sixth paragraph of section 7 describes the Hour of Code experience of programming the Star Wars game using JavaScript.
  8. Sixth paragraph of section 7 includes a hyperlink in the name of the completed Star Wars game.
  9. Document is free of plagiarism.
  10. Document is free of spelling and grammatical errors.
  11. Bibliography lists all new sources (5 expected).
  12. Word processing document was submitted as a PDF file.

If you have questions about how to use any of the required technologies for this lesson or what the following criteria mean, please reread the relevant lessons, view the Zoom recordings, then ask the Instructor via the Canvas Inbox.

Check Canvas Home, Assignments, and Calendar for the most current Due date and time. The Available Until date and time constitutes a grace period, which can be used in an emergency, or if you are ill.