Description
3 credit/unit hours – Three hours of lecture weekly; one term
This is an introductory course in structured programming logic. Students will learn to analyze problems; define data using simple data types and arrays; and create algorithmic solutions using basic control structures (sequence, selections, loops) and functions.
Students learn to systematically break down a problem into manageable parts; plan and design logical solutions; and write effective, structured, and well-documented instructions. Emphasis will be on problem-solving approaches (algorithms) and the fundamental concepts and programming techniques common to modern computer languages including variable assignment, expressions, input/output statements, loops, if-then-else and case constructs, functions, arrays, etc. The concepts learned in this course are applicable to multiple modern programming languages.
Updated: April 25, 2023
Learning Objectives
- Describe the software development life cycle;
- Describe how security has to be a consideration from the point of initial design and throughout the lifecycle of a product;
- Analyze problems and design structured solutions;
- Create and apply simple data types and arrays;
- Identify common coding errors (e.g., buffer overflow and integer errors) that lead to insecure programs;
- Create algorithmic solutions using basic control structures (sequence, decisions, loops) and functions;
- Discuss the importance of input validation and write correct input validation code;
- Compile, execute, and run simple programs;
- Describe the importance of secure and responsible programming; and
- Conduct a personal code review (focused on common coding errors) on a program component using a provided checklist
Main Topics
1.0 Overview of Computers and Logic
2.0 Comparison of Programming Languages
3.0 Number Systems/ASCII (American Standard Code for Information Interchange)
4.0 Program Structure
5.0 Modules, Hierarchy Charts, and Documentation
6.0 Writing a Complete Program
7.0 Loops
8.0 Arrays/Lists
9.0 Validating Input
10.0 Modularization Techniques
11.0 Object-Oriented Programming Concepts
12.0 Programming Graphical User Interfaces (GUIs)
13.0 Software Development Life Cycle
14.0 Ethics and Intellectual Property
15.0 Globalization and Collaboration