Course Description and Competencies

What to Expect

In this course, you will examine the fundamental principles of programming. You will look at variables, data types, flow control, and design concepts. You will survey various languages used in scripting. And you will also gain an understanding of the logic and outcome of simple algorithms.

 Throughout this course, you will find a variety of interactive elements. These include an interactive textbook, participation activities, and labs. Engaging with these activities reinforces new learning. It also complements the knowledge you bring to this area of study.

Course Competencies

This course covers the following competencies:

  • The learner identifies scripts for computer program requirements.
  • The learner uses fundamental programming elements as part of common computer programming tasks.
  • The learner explains the logic and outcome of simple algorithms.

Assessment

The assessment provides an opportunity to demonstrate your mastery of the competencies in this course. You may attempt the assessment two times before additional support is necessary. If you require further attempts, please contact your Student Experience Team. 

1 Final Exam
3 Competency Units

Course Outline

ModuleUpon completion of this module, you will be able to:
Introduction
  • Define what a computer program is and what they do
  • Describe the purpose of a flowchart
  • Explain how a computer program represents data
  • Describe the purpose of pseudocode
Variables & Assignments
  • Explain the purpose of variables, assignment statements, and expressions
  • Follow identifier naming conventions
  • Describe how to choose a variable’s type
  • Describe functions and type conversions
Branches
  • Define a branch in a flowchart
  • Explain a decision in a flowchart
  • Describe if-else statements
  • Explain nested branches
Loops
  • Describe a loop and how one is implemented in a program
  •  Explain an infinite loop and a nested loop
  • Compare while loops, for loops, and do loops
  •  Build complex Cascading Style Sheets (CSS)
Arrays
  • Define an array
  • Describe an array index
  • Define an array variable
  • Explain how to iterate through an array 
User-Defined Functions
  • Define the purpose of a function
  • Describe the role of a parameter in a function
  • Explain modular development
  • Explain incremental development
Algorithms
  • Define what an algorithm is
  • Explain how to measure an algorithm’s efficiency
  • Describe practical applications of algorithms
  • Compare linear searches and binary searches 
The Design Process
  • Describe the system development life cycle (SDLC)
  • Explain the difference between Agile and Waterfall
  • Define the purpose of an object in programming
  • Define the Universal Modeling Language (UML)
Software Topics
  • Explain the difference between a compiled language and an interpreted language
  • Compare statically typed and dynamically typed languages
  • Describe object-oriented languages and markup languages
  • Explain how libraries improve productivity in programming
Troubleshooting
  • Explain the troubleshooting process
  • Define the role of a hypothesis in troubleshooting
  • Explain an asymmetric test
  • Describe a hierarchical hypothesis 
Debugging
  • Describe the purpose of debugging in programming
  • Explain debugging output statements
  • Describe hierarchical debugging 

Technology Requirements

We want you to have the tools to succeed! Since this course includes at least one proctored test, please be sure to have a working microphone, speakers, and an external webcam. Unfortunately, an internal webcam (built into many laptops) is not acceptable. (Note: The external webcam is required only for exams that have proctors. You do not need one for practice tests and other non-proctored assessments.) If you haven't already, be sure to download the Meazure Learning Guardian browser, which you will need for the proctoring system.

You will need Adobe Acrobat Reader DC. If you haven't already, download this free software. You may encounter an interactive form that contains fields that you can select or fill in. Review how to fill in a PDF form.

For other details about the technology you'll need, review the Computer System and Technology Requirements. If you have questions about your setup, contact support@academy.wgu.edu.

Key Contacts

Certificate Connect
Check out this online community to take advantage of course resources, including videos and tips from your educators. You can ask and answer questions, provide feedback on your progress, and interact with fellow students. You will find this platform in the Student Resources section of the course. Log on and do some exploring!

Technical Support
If you encounter technical issues, be sure to contact the Help Desk. Just submit a Support Request for assistance.

Program Support
Do you have questions about your account? Student Support has answers. They can help with billing, switching courses, and other requests. You can contact them at (888) 320-0540 or support@academy.wgu.edu.

Accommodations

WGU provides compliant and accessible learning experiences. If you require accommodation, please contact us at the start of the course. You can email disability@academy.wgu.edu.

We are committed to ensuring that all students with disabilities have equal access to WGU's services and materials. We strive to use best practices for accessibility. Our goal is to conform to existing U.S. laws, including the Americans with Disabilities Act and Section 504 and Section 508 of the Rehabilitation Act.

Our learning management system (LMS) platform is Open edX. Open edX’s commitment to accessible content is published in their Website Accessibility Policy.