Programming is the craft of writing useful, maintainable, and extensible source code which can be interpreted or compiled by a computing system to perform a meaningful task.[1]

Data Flow Diagram

Objectives and Skills

edit

Objectives and skills for the programming portion of CLEP Information Systems include:[2]

  • Programming logic (Boolean, algorithmic, order of operations, SQL)
  • Methodologies (object-oriented, structured)
  • Data (concepts, types, structures, digital representation of data)
  • File (types, structures)

Readings

edit
  1. Wikibooks: Introduction to Computer Information Systems/Program Development
  2. Wikipedia: Computer programming
  3. Wikipedia: Order of operations
  4. Wikipedia: Object-oriented programming
  5. Wikipedia: Structured programming
  6. Wikipedia: Data type
  7. Wikipedia: Computer file
  8. Wikipedia: SQL
  9. Wikipedia: Source code

Multimedia

edit
  1. Khan Academy: Introduction to Computer Programming
  2. YouTube: Introduction to Programming
  3. YouTube: How does structured programming work?
  4. YouTube: What is an API?
  5. YouTube: Programming Words
  6. YouTube: Software Development Lifecycle in 9 Minutes!

Activities

edit
  1. Learn programming concepts by playing a computer game at Code.org.
  2. Review the TIOBE: Software Index. Identify currently popular programming languages. If your organization does software development, find out what programming languages are used and where they fall on the software index. Otherwise, check programming classes available at your school and find out what languages are taught and where they fall on the software index.
  3. Complete one or more of the drag-and-drop programming tutorials at Code.org: Learn.
  4. Complete the dungeon levels of the first lesson of CodeCombat.
  5. Review Wikipedia: Macro (computer science) and complete the tutorial Microsoft: Save Time by Creating and Running Macros in Excel 2010 or complete one or more of the Excel Easy: VBA programming tutorials.
  6. Download the Visual Logic flowchart / coding tool and complete the tutorial.
  7. Review Wikipedia: Structured programming and Wikipedia: Diagramming software. Select a diagramming program and create a flowchart that includes examples of sequence, condition/selection, and loop/iteration structures.
  8. Review Wikipedia: Computer science and Wikipedia: Computer programming. Consider the differences between writing a program and designing an information system.
  9. Create a free account with Codecademy and start learning coding.
  10. Complete the Debugging JavaScript in Chrome at Google.com: JavaScript.

Research and Discussion

edit
  1. When people and computers are creating a program, users generally blame the computer. Do you think it is more likely that a computer or a person would be responsible for a serious system problem? Support your answer.
  2. New programming languages are developed to meet different user needs. Identify and research one new programming language that interests you. Determine the purpose of the program and what it is used for. Is this a program that would be useful for you? Why or why not.
  3. Describe a computer program that you use at your workplace. Does this program enhance and support your job experience? Explain.

Lesson Summary

edit
  • Computer programming is a process that leads from an original formulation of a computing problem to executable computer programs.[3]
  • Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms, and implementation (commonly referred to as coding) of algorithms in a target programming language.[4]
  • Source code is written in one or more programming languages.[5] Popular programming languages include Java, C, C++, C#, and Python.[6]
  • Programming quality is measured by:[7]
    • Reliability: how often the results of a program are correct.
    • Robustness: how well a program anticipates problems due to errors (not bugs).
    • Usability: the ease with which a person can use the program for its intended purpose.
    • Portability: the range of computer hardware and operating system platforms on which the source code of a program can be compiled/interpreted and run.
    • Maintainability: the ease with which a program can be modified by its present or future developers in order to make improvements.
    • Efficiency: the amount of system resources a program consumes.
  • Most programming languages follow the order of operations commonly used in mathematics of Parentheses, Exponents, Multiplication, Division, Addition, and Subtraction, or PEMDAS.[8]
  • Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.[9]
  • Most popular object-oriented programming languages are class-based, meaning that objects are instances of classes, which typically also determines their type.[10]
  • Popular object-oriented programming languages include Java, C++, C#, and Python.[11]
  • Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures and for and while loops—in contrast to using simple tests and jumps such as the goto statement which could lead to "spaghetti code", which is difficult both to follow and to maintain. [12]
  • Structured programming uses three control structures — sequencing, selection (conditions), and iteration (loops) — to define any program or function.[13]
  • Structured query language (SQL) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).[14]
  • A data type is a classification identifying one of various types of data, such as integer, floating-point number, Boolean, character, or string, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of that type are stored.[15]
  • At the machine level, data types correspond to the sizes of system memory locations and processor data containers (registers) and supporting instructions.[16]
  • A computer file is a resource for storing information, which is available to a computer program and is usually based on some kind of durable storage.[17]

Key Terms

edit
acceptance testing (beta testing/application testing/end user testing)
A test conducted to determine if the requirements of a specification or contract are met.[18]
advanced business application programming (ABAP)
A high-level programming language created by the German software company SAP SE.[19]
algorithm
A self-contained step-by-step set of operations to be performed.[20]
applet
Any small application that performs one specific task that runs within the scope of a dedicated widget engine or a larger program, often as a plug-in. The term is frequently used to refer to a Java applet, a program written in the Java programming language that is designed to be placed on a web page.[21]
assembly language
A low-level programming language.[22]
Boolean
A data type having two values (usually denoted true and false), intended to represent the truth values of logic and Boolean algebra.[23]
bug
An error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.[24]
C
A general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.[25]
C++
A general-purpose programming language that has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.[26]
compiler
A program that reads source code, translates it into machine language, and writes the machine language to binary (object) code that can be directly loaded and executed.[27]
computer architecture
A set of rules and methods that describe the functionality, organization, and implementation of computer systems.[28]
computer file
a resource for storing information, which is available to a computer program and is usually based on some kind of durable storage.[29]
computer programming
A process that leads from an original formulation of a computing problem to executable computer programs.[30]
control structure
The order in which individual statements, instructions or function calls of an imperative program are executed or evaluated.[31]
data flow diagram (DFD)
A graphical representation of the "flow" of data through an information system, modeling its process aspects.[32]
data structure
A particular way of organizing data in a computer so that it can be used efficiently.[33]
debugging
The process of finding and resolving defects that prevent correct operation of computer software or a system.[34]
decompiler
A computer program that takes an executable file as input, and attempts to create a high level source file which can be recompiled successfully.[35]
deployment environment
A computer system in which a computer program or software component is deployed and executed.[36]
Flowgorithm
A graphical authoring tool which allows users to write and execute programs using flowcharts.[37]
hard coding
The software development practice of embedding an input or configuration data directly into the source code of a program or other executable object, instead of obtaining that data from external sources or generating data or formatting in the program itself with the given input.[38]
interpreter
A computer program that directly executes instructions written in a programming or scripting language, without previously compiling them into a machine language program.[39]
Java
A general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.[40]
JavaScript
A high-level, dynamic, weakly typed, object-based, multi-paradigm, and interpreted client-side programming language. It's also one of the three core technologies of World Wide Web content production alongside of HTML and CSS.[41]
logic error
A bug in a program that causes it to operate incorrectly, not to terminate abnormally, but produce unintended or undesired output or other behavior, although it may not immediately be recognized as such.[42]
macro
A rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to a replacement output sequence (also often a sequence of characters) according to a defined procedure.[43]
machine language
A set of instructions executed directly by a computer's central processing unit (CPU).[44]
maintainability
the ease with which a program can be modified by its present or future developers in order to make improvements.[45]
methodology
The systematic, theoretical analysis of the methods applied to a field of study.[46]
modular programming
A software design technique that emphasizes separating the functionality of a program into independent and interchangeable units.[47]
object-oriented programming (OOP)
A programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.[48]
order of operations
A rule used to clarify which procedures should be performed first in a given mathematical expression.[49]
pair programming
An agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in.[50]
Portability
the range of computer hardware and operating system platforms on which the source code of a program can be compiled/interpreted and run.[51]
PHP
A server-side scripting language designed primarily for web development but also used as a general-purpose programming language.[52]
pseudocode
An informal high-level description of the operating principle of a computer program or other algorithm.[53]
program analysis
The process of automatically examining the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness.[54]
programming
Involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms, and implementation (commonly referred to as coding) of algorithms in a target programming language.[55]
programming language
A formal constructed language designed to communicate instructions to a machine, particularly a computer.[56]
Python
A widely used general-purpose, high-level programming language that emphasizes code readability.[57]
query language
Computer languages used to make queries in databases and information systems.[58]
reliability
An attribute of resiliency and structural solidity.[59]
robustness
ability of a system to resist change without adapting its initial stable configuration.[60]
run time
The time during which a program is running (executing).[61]
sandbox
A testing environment that isolates untested code changes and outright experimentation from the production environment or repository.[62]
scripting language
A programming language that supports programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator.[63]
software development
The computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks involved in a software release life cycle and resulting in a software product.[64]
source code
Any collection of computer instructions (possibly with comments) written using some human-readable computer language, usually as text.[65]
Spaghetti Code
is a pejorative phrase for unstructured and difficult to maintain source code, broadly construed. Spaghetti code can be caused by several factors, such as volatile project requirements, lack of programming style rules, and insufficient ability or experience.[65]
SQL (Structured Query Language)
A special-purpose programming language designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).[66]
structured programming
programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures, for and while loops—in contrast to using simple tests and jumps such as the go to statement which could lead to "spaghetti code" causing difficulty to both follow and maintain.[67]
subroutine
A sequence of program instructions that perform a specific task, packaged as a unit.[68]
syntax error
An error in the sequence of characters or tokens that is intended to be written in a particular programming language.[69]
systems development life cycle (SDLC)
A term used to describe a process for planning, creating, testing, and deploying an information system. The concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both.[70]
usability
The ease with which a person can use the program for its intended purpose.[71]
variable
A storage location paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.[72]
visual programming language (VPL)
Any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation.[73]

Review Questions

edit
Enable JavaScript to hide answers.
Click on a question to see the answer.
  1. Computer programming is _____.
    Computer programming is a process that leads from an original formulation of a computing problem to executable computer programs.
  2. Programming involves activities such as _____.
    Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms, and implementation (commonly referred to as coding) of algorithms in a target programming language.
  3. Source code is written in one or more programming languages. Popular programming languages include _____.
    Source code is written in one or more programming languages. Popular programming languages include Java, C, C++, C#, and Python.
  4. Programming quality is measured by _____.
    Programming quality is measured by reliability, robustness, usability, portability, maintainability, and efficiency.
  5. Reliability is _____.
    Reliability is how often the results of a program are correct.
  6. Robustness is _____.
    Robustness is how well a program anticipates problems due to errors (not bugs).
  7. Usability is _____.
    Usability is the ease with which a person can use the program for its intended purpose.
  8. Portability is _____.
    Portability is the range of computer hardware and operating system platforms on which the source code of a program can be compiled/interpreted and run.
  9. Maintainability is _____.
    Maintainability is the ease with which a program can be modified by its present or future developers in order to make improvements.
  10. Efficiency is _____.
    Efficiency is the amount of system resources a program consumes.
  11. Most programming languages follow the order of operations commonly used in mathematics of _____.
    Most programming languages follow the order of operations commonly used in mathematics of Parentheses, Exponents, Multiplication, Division, Addition, and Subtraction, or PEMDAS.
  12. Object-oriented programming (OOP) is _____.
    Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.
  13. Most popular object-oriented programming languages are class-based, meaning _____.
    Most popular object-oriented programming languages are class-based, meaning that objects are instances of classes, which typically also determines their type.
  14. Popular object-oriented programming languages include _____.
    Popular object-oriented programming languages include Java, C++, C#, and Python.
  15. Structured programming is _____. 
    Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures and for and while loops—in contrast to using simple tests and jumps such as the goto statement which could lead to "spaghetti code", which is difficult both to follow and to maintain. 
  16. Structured programming uses three control structures — _____, _____, and _____ — to define any program or function.
    Structured programming uses three control structures — sequencing, selection (conditions), and iteration (loops) — to define any program or function.
  17. Structured query language (SQL) is_____
    Structured query language (SQL)is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).
  18. A data type is _____.
    A data type is a classification identifying one of various types of data, such as integer, floating-point number, Boolean, character, or string, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of that type are stored.
  19. At the machine level, data types correspond to _____.
    At the machine level, data types correspond to the sizes of system memory locations and processor data containers (registers) and supporting instructions.
  20. Data types may be combined into _____.
    Data types may be combined into composite data types such as arrays and structures.
  21. A computer file is _____.
    A computer file is a resource for storing information, which is available to a computer program and is usually based on some kind of durable storage.

Assessments

edit

See Also

edit

References

edit
  Type classification: this is a lesson resource.
  Completion status: this resource is considered to be complete.
  1. Wikibooks:Computer Programming
  2. CLEP: Information Systems
  3. Wikipedia: Computer programming
  4. Wikipedia: Computer programming
  5. Wikipedia: Computer programming
  6. TIOBE: Software Index
  7. Wikipedia: Computer programming
  8. Wikipedia: Order of operations
  9. Wikipedia: Object-oriented programming
  10. Wikipedia: Object-oriented programming
  11. Wikipedia: Object-oriented programming
  12. Wikipedia: Structured programming
  13. Wikipedia: Structured programming
  14. Wikipedia: SQL
  15. Wikipedia: Data type
  16. Wikipedia: Data type
  17. Wikipedia: Computer file
  18. Wikipedia: Acceptance testing
  19. Wikipedia: ABAP
  20. Wikipedia: Algorithm
  21. Wikipedia: Applet
  22. Wikipedia: Assembly language
  23. Wikipedia: Boolean data type
  24. Wikipedia: Software bug
  25. Wikipedia: C (programming language)
  26. Wikipedia: C++
  27. Wikipedia: Compiler
  28. Wikipedia: Computer Architecture
  29. Wikipedia: Computer file
  30. Wikipedia: Computer programming
  31. Wikipedia: Control flow
  32. Wikipedia: Data Flow Diagram
  33. Wikipedia: Data structure
  34. Wikipedia: Debugging
  35. Wikipedia: Decompiler
  36. Wikipedia: Deployment environment
  37. Wikipedia: Flowgorithm
  38. Wikipedia: Hard coding
  39. Wikipedia: Interpreter (computing)
  40. Wikipedia: Java (programming language)
  41. Wikipedia: JavaScript
  42. Wikipedia: Logic error
  43. Wikipedia: Macro
  44. Wikipedia: Machine code
  45. Quizlet information systems/programming
  46. Wikipedia: Methodology
  47. Wikipedia: Modular programming
  48. Wikipedia: Object-Oriented Programming (OOP)
  49. Wikipedia: Order of operations
  50. Wikipedia: Pair programming
  51. Quizlet information systems/programming
  52. Wikipedia: PHP
  53. Wikipedia: Pseudocode
  54. Wikipedia: Program analysis
  55. Wikipedia: Computer programming
  56. Wikipedia: Programming language
  57. Wikipedia: Python (programming language)
  58. Wikipedia: Query language
  59. Wikipedia: Reliability
  60. Wikipedia: Robustness
  61. Wikipedia: Run time (program lifecycle phase)
  62. Wikipedia: Sandbox (software development)
  63. Wikipedia: scripting language
  64. Wikipedia: Software development
  65. 65.0 65.1 Wikipedia: Source code Cite error: Invalid <ref> tag; name ":0" defined multiple times with different content
  66. Wikipedia: SQL
  67. Wikipedia: Structured programming
  68. Wikipedia: Subroutine
  69. Wikipedia: Syntax error
  70. Wikipedia: System Development Life Cycle (SDL)
  71. Wikipedia: Usability
  72. ̪Wikipedia: Variable (computer science)
  73. Wikipedia: Visual Programming Language