Elementary Programming INF 120
An elementary introduction to programming for those with no previous programming experience. Emphasis on understanding of algorithm development, procedural and object-oriented sofware development, secure coding, testing, and execution of program.
Correlated Learning Outcomes
- AL-04 Analyze the performances of an algorithm with various input sizes. [Analyzing]
- AL-05 Apply an appropriate algorithmic approach to a given problem. [Applying]
- AL-07 Implement basic numerical algorithms. [Applying]
- AL-15 Write a regular expression to match a pattern. [Applying]
- AR-02 Analyze alternative formats to represent numerical data. [Analyzing]
- AR-03 Illustrate how fixed-length number representations could affect accuracy and precision, causing vulnerabilities. [Applying]
- AR-04 Examine the internal representation of non-numeric data. [Analyzing]
- AR-05 Compare different methods for converting numerical data from one format to another. [Analyzing]
- CYB-01 Describe security as a continuous process of tradeoffs, balancing between protection mechanisms and availability. [Understanding]
- CYB-07 Illustrate various ways to minimize privacy risks and maximize anonymity. [Applying]
- CYB-08 Apply security principles and practices in a dynamic environment. [Applying]
- CYB-11 Use the principles of secure design. [Applying]
- CYB-14 Analyze the tradeoffs associated with designing security into a product. [Analyzing]
- CYB-15 Construct input validation and data sanitization in applications, considering adversarial control of the input channel. [Creating] See also SDF-06.
- CYB-16 Explain the tradeoffs of developing a program in a type-safe language. [Understanding] See also PL-10.
- CYB-17 Implement programs that properly handle exceptions and error conditions. [Applying] See also SDF-12.
- CYB-18 Examine the need to update software to fix security vulnerabilities. [Analyzing]
- CYB-22 Use a variety of ciphers to encrypt plaintext into ciphertext. [Applying]
- HCI-01 Analyze the importance of human-centered software. [Analyzing]
- HCI-04 Write a simple application that uses a modern graphical user interface. [Applying]
- PL-01 Design a simple class hierarchy using superclasses, subclasses, and abstract classes. [Creating]
- PL-03 Use access and visibility modifiers to secure class data and methods. [Applying]
- PL-05 Implement algorithms which utilize immutable and mutable variables. [Applying]
- PL-07 Create an interactive program using an event-driven style. [Creating]
- PL-09 Investigate potential errors detected from both strong-type and weak-type languages. [Applying]
- PL-10 Explain the security implications of a type-safe language for software development. [Understanding]
- SDF-01 Design an algorithm in a programming language to solve a simple problem. [Creating]
- SDF-03 Compare multiple algorithms for a given problem. [Analyzing]
- SDF-06 Create programs which use defensive programming techniques, including input validation, type checking, and protection against buffer overflow. [Creating] See also CYB-15.
- SDF-07 Create code in a programming language that includes primitive data types, references, variables, expressions, assignments, I/O, control structures, and functions. [Creating]
- SDF-08 Create a simple program that uses persistence to save data across multiple executions. [Creating]
- SDF-12 Investigate common coding errors that introduce security vulnerabilities. [Applying]
- SDF-15 Apply a variety of strategies to test and debug programs. [Applying]
- SDF-16 Use an integrated development environment (IDE) to create, execute, test, and debug secure programs. [Applying]
- SDF-17 Use standard libraries for a given programming language. [Applying]
- SDF-18 Apply consistent documentation and program style standards. [Applying]
- SDF-19 Carry out a code review on a program component using a provided security checklist. [Applying]
- SE-02 Compare the features of various process models. [Analyzing]
- SE-06 Use a set of development tools for software systems. [Applying]
- SE-08 Illustrate principles of secure software design [Applying]
- SE-09 Analyze an existing software design to improve its security. [Analyzing]
- SE-10 Describe the cost and tradeoffs associated with designing security into software. [Understanding]
- SE-12 Differentiate between program validation and verification. [Understanding]
- SP-07 Examine various ethics scenarios in computing. [Analyzing]
- SP-10 Differentiate the terms among intellectual property, fair-use, copyright, patent, trademark, and plagiarism. [Understanding]
- SP-16 Use effective oral, written, electronic, and visual communication techniques with stakeholders. [Applying]
- SP-18 Develop technical artifacts. [Creating]