101: Introduction to Computer Programming
This is the computer programming course 101, an introductions to computer programming. In this course we give the student a brief introduction to the Linux operating system, programming development environments, and introduce students to programming using the Free Pascal programming language.Each day we build out understanding of computer programming constructs and foster the development of good programming practices. We will introduce programming constructs in small steps while taking the occasional break to create discuss how to write computer software.
Day 1
- Introduction to the Linux operating system
- Show and tell break: program showcase featuring completed programs
- Introduction to languages and development environments
- Introduction to Lazarus development
- Introduction to console CLI and graphical GUI applications
- The first example across languages
- Explain and demonstrate how programming langauges share concepts
- History break: Anders Hejlsberg
Day 2
- Dive into programming with Free Pascal
- Describing the compiler and linker
- Examining the parts of Hello World
- Reserved words, identifiers, symbols
- A few words on case sensitivity
- PascalCase and camelCase conventions
- Compiler directives
- Syntax and the trailing semicolon
- Variables, program blocks, statements
- The extreme importance of identifier naming
Day 3
- A closer look at the Lazarus IDE
- What is a type
- The built in types
- Pop quiz: the logical and comparison operators
- Every type has its size
- Programming break: printing binary numbers
- What is an appropriate type
Day 4
- Statements
- Simple Statements
- Procedure and Function Call Statements
- Compound Statements
- Flow Control Statements
- If Statements
- Case Statements
- Looping Statements
- Repeat Statements
- While Statements
- For Statements
Day 5
- Procedures and Functions
- Routine Arguments
- Declaring Your Own Procedures and Functions
- Application: Spreadsheet
- Built In Procedures and Functions
- Flow Control and Type Routines
- Command Line Routines
- String Related Routines
- Integer Related Routines
- Floating Point Related Routines
Day 6
- Procedure and Function Arguments
- Arguments by Reference
- Default Argument Values
- Constant Arguments
- Overloading Procedures and Functions
- Organizing Your Work
- Making Our First Unit
- Unit Example: Word List
Day 7
- The Program Heading
- The Program Uses Clause
- The Program Block
- Unit Structure and Syntax
- The Unit Heading
- The Interface Section
- The Implementation Section
- The Initialize and Finalize Sections
Day 8
- Finding Mistakes
Day 9
- Scrict Typing
- Type Aliases
- Your Own Types
- Enumerated Types
- Subrange Types
- Set Types
Day 10
- Complex Types
- Records
- Record Example
- Using a Record
- Arrays
- Array Example
- Array Boundaries
- Array Dimensions
- Dynamic Arrays
Day 11
- A Complete Visual Application