Book 1) BAM Programming
Introduction
About Computer Programming
| https://en.wikipedia.org/wiki/Computer_programming
|
First, What is a Computer (better yet, what is a computing platform)
| https://en.wikipedia.org/wiki/Computer
|
| https://en.wikipedia.org/wiki/Classes_of_computers
|
| https://en.wikipedia.org/wiki/Computing_platform
|
| https://en.wikipedia.org/wiki/Software_engine
|
| https://en.wikipedia.org/wiki/Mobile_device
|
| https://en.wikipedia.org/wiki/Single-board_computer
|
| https://en.wikipedia.org/wiki/Embedded_system
|
| https://en.wikipedia.org/wiki/Fantasy_video_game_console
|
| Programming in BASIC (Chapter 3, the basics of computation)
|
|
What is Programming
| https://en.wikipedia.org/wiki/Outline_of_computer_programming
|
| https://en.wikipedia.org/wiki/Version_control
|
| https://en.wikipedia.org/wiki/Software_testing
|
| https://en.wikipedia.org/wiki/Software_deployment
|
| https://en.wikipedia.org/wiki/Execution_(computing)
|
| https://en.wikipedia.org/wiki/Software_development_process
|
| https://en.wikipedia.org/wiki/Change_management_(engineering)
|
| https://en.wikipedia.org/wiki/Requirements_management
|
| https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf
|
| https://www3.cs.stonybrook.edu/~pfodor/courses/CSE260/_L01_Introduction_Programming_Languages.pdf
|
|
What is a Program
| https://en.wikipedia.org/wiki/Computer_program
|
| Applied BASIC programming (p35)
|
| Fundamentals of programming in BASIC : a structured approach (p.11)
|
|
What is a Programming Language
| https://en.wikipedia.org/wiki/General-purpose_programming_language
|
| https://en.wikipedia.org/wiki/Programming_paradigm
|
| https://en.wikipedia.org/wiki/Execution_(computing)
|
| https://en.wikipedia.org/wiki/Integrated_development_environment
|
Example Programming Languages
| https://en.m.wikipedia.org/wiki/Comparison_of_programming_languages
|
| https://www.kdnuggets.com/2021/05/top-programming-languages.html
|
| https://www.futurelearn.com/info/blog/what-are-different-programming-languages-used-for
|
|
Common Elements/Fundamentals in Programming Languages
| https://en.m.wikipedia.org/wiki/Category:Programming_constructs
|
| https://en.m.wikipedia.org/wiki/Category:Programming_language_concepts
|
| https://en.m.wikipedia.org/wiki/Category:Programming_language_topics
|
Syntax
| https://en.wikipedia.org/wiki/Syntax_(programming_languages)
|
| https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(syntax)
|
|
Data Types and Values
| Typing System (strong vs weak/loose)
|
| Data Type Sigils
|
| Literals
|
Numbers
| Integers
|
| Floating-Point Numbers
|
|
| Strings
|
| Type Conversion
|
|
| Constants
|
| Variables
|
| Arrays
|
| Records (aka Types, Structs, Structures)
|
| Delimiters
|
Identifiers
| Naming conventions
|
| https://en.wikipedia.org/wiki/Naming_convention_(programming)
|
|
| Labels
|
| Punctuation and Symbols (BASIC 2 Plus Reference)
|
Types of instructions
Statements
| statement separators
|
| statement terminators
|
| line continuation
|
|
Declarations
|
Comments
|
|
| Input and Output
|
Operators and Expressions
| Bitwise Operators
|
Boolean Expressions
| Relational, aka Comparison, Operators (=, >, <, <>, >=, <=)
|
| Conditional aka Logical Operators (AND, NOT, OR, XOR)
|
|
| Assignment
|
| Arithmetic
|
| String Concatenation
|
| Order of Operations
|
|
Control Flow / Structures
| Sequence
|
| Branching
|
| Conditionals (DecisionStructures)
|
| Loops
|
|
| Functions
|
| User-Defined Functions
|
|
| Subroutines
|
| Parameters
|
| Defaults
|
| Keywords
|
| Reserved Words
|
| Algorithms
|
| Block Programming
|
| Language Constructs
|
| Libraries and Include Directives
|
|
|
|
About BASIC
| History of BASIC
|
| Hello World !
|
| SQUART
|
Classic Elements/Fundamentals of BASIC
| Line Identifiers
|
| Spacing
|
| Character Set
|
| Line Length
|
| Constants and Variables
|
| Arithmetic and Relational Operators
|
Types of Programming Statements
| Remark Statements
|
| Value Assignment Statements
|
| Input Statements
|
| Processing and computation statements
|
| Output Statements
|
| Control Statements
|
|
| Functions
|
| Numbers and Strings
|
| E Notation
|
| Expressions
|
|
Programming Paradigms
| Non-Structured
|
| Structured
|
| Object-Oriented
|
|
| Overview of BASIC and BASIC-like Dialects
|
|
About BASIC Anywhere Machine
| Inception
|
| REM, INPUT, _PROMPT, PRINT, END, LET
|
| Hello World !
|
| Hello You !
|
| SQUART
|
| Elements/Fundamentals of BASIC Anywhere Machine
|
Programming Paradigms
| Non-Structured
|
| Structured
|
| Metaprogramming
|
|
|
|
References
| Learning BASIC programming essentials
|
| True BASIC : the original from the inventors of BASIC : Bronze edition guide for Windows and MasOS (Chapters 1 and 2)
|
| True BASIC--a complete manual (Chapter 1)
|
Waterloo BASIC : a structured programming approach (Chapter 1)
A program consists of a set of instructions which define actions to be performed by the computer. These instructions must be expressed in a language which the computer can recognize and understand. BASIC is a language which is designed to be a straightforward means of expressing instructions to the computer. A BASIC program is composed of statements: a statement which instructs the computer to perform an action is termed executable; one which defines characteristics of the program is termed declarative; and one which provides descriptive information to a person examining the program is termed a comment. Typically, each BASIC statement appears on a separate line. The order of lines in the program is determined by a line number which appears on the left side of each line.
Rules About Programs
| Line Numbers
|
Use of Spaces
|
| keywords
|
Comments
|
| blank lines
|
multiple statements per line
|
| END statement
|
multiple-line statements
|
|
|
|
|
|
|
|
|
Data Fundamentals and Essential Elements I
Data, Data Value Storage and Data Operations
Definitions
Data and Data Types
| Strings
|
Numbers
| BYTE
|
SHORT
|
LONG aka INTEGER
|
|
|
|
|
|
Literals
| ASCII Character Set
|
| Operations and Expressions
|
|
Program Data
| Named Value Storage
|
| Identifiers and Naming Conventions
|
|
|
|
| System Data
|
|
|
Declaring Data Value Storage
Variables
| VAR or DIM
|
| LET
|
| Block Declarations
|
|
Constants
|
|
| SHARED
|
| Initialisation
|
|
Storing, Retrieving, and Using Values
| Operations and Expressions
|
| Manipulation
|
Input/Output
| _PROMPT
|
INPUT
|
INPUT$
|
CONFIRM
|
| PRINT
|
WRITE
|
INKEY$
|
ALERT
|
|
| Embedded Data
|
|
References
| QuickBASIC in plain English (chapter 5)
|
|
|
Functions
Definitions
| About Functions
|
| STRING Functions
|
| Number Functions
|
| Conversion Functions
|
|
String Functions
| ASC, CHR$
|
| INSTR, LEN
|
| LCASE$, UCASE$
|
| LEFT$, MID$ RIGHT$
|
| LTRIM$, RTRIM$, REPLACE$
|
| SPACE$, SPC, STRING$, TAB
|
|
Number Functions
| Arithmetic
|
Trigonometric
| _ATAN2, ATN, COS, SIN, TAN
|
| _PI
|
|
| Other
|
|
Conversion Functions
| VAL, STR$
|
| HEX$, OCT$, _BIN$
|
| CINT, INT, FIX
|
| _D2R, _R2D
|
|
References
| Let's program it ... in True BASIC (chapter 5)
|
|
|
Control Flow and Control Structures
Primitives
| Labels (line identifiers)
|
| Sequence
|
| Goto (unconditional transfer of control
|
| Gosub (subroutines)
|
|
Comparing and Decision-Making
| IF THEN ELSE
|
| SELECT CASE
|
| Logical Operations and Expressions
|
| Nesting
|
|
Branching
| GOTO
|
| ON GOTO
|
| IF THEN/GOTO SHORTHAND
|
|
Programming for Repetition (Loops)
| Count-Controlled Loops
|
Condition-Controlled Loops
| WHILE WEND, DO WHILE WEND, DO WHILE LOOP
|
| DO LOOP WHILE
|
| DO LOOP UNTIL
|
|
| Infinite Loops
|
| Nested Loops
|
| Early Exit From Loops
|
|
|
| https://en.wikipedia.org/wiki/Control_flow
|
|
Data Fundamentals and Essential Elements II
Data Structures
| Variables are normally quite independent, but you can organise them into two types of larger structures: arrays and composite types. Arrays are used for grouping variables which are all of the same type: a block of strings, or a block of integers, etc. Composite types are used for grouping related variables which may be of different types: a person's name, age, address and income, for instance. - BASIC 2 Plus Reference
|
Arrays
Definitions
| Single-Dimensional Arrays
|
| Two-Dimensional Arrays
|
| Three-Dimensional Arrays
|
| Multi-Dimensional Arrays
|
| Variable Arrays and Constant Arrays
|
|
Declaring Arrays
|
|
| OPTION BASE
|
| SHARED
|
| Initialisation
|
|
Using Arrays
| Operations and Expressions
|
Manipulation
| Value Assignment
|
| SWAP
|
| REDIM
|
|
| Input/Output of Array Data
|
|
|
|
|
|
|
| Composite Type
|
| Global Key-Value Pairs
|
|
READ, DATA, RESTORE 2
| READ
|
| DATA
|
RESTORE
| line identifiers
|
Program Structure Elements
|
|
| End of Data Markers
|
|
More Input and Output
Input and Output 2
| Clipboard
|
| screen
|
| CLS, INKEY
|
| Positioning Text on the screen
|
|
| Input and Output 3
|
|
|
Formatted Output
| CHARACTER SET
|
| SCREEN
|
| WIDTH
|
| CLS
|
| LOCATE
|
| COLOR
|
| PRINT
|
| PRINT USING
|
|
Modular Programming I
| User-Defined Functions
|
Subroutines
| GOSUB-RETURN
|
|
| ON GOSUB-RETURN
|
Decision-Making
|
| SUB
|
|
|
|
The Good Programmer and Good Programming
Program Structure and Style
Program Structure Elements
| Single Line, Multiple Statements
|
| Line Continuation
|
| Indentation
|
| Blank Lines
|
| Spaces
|
| Line Identifiers
|
| Comments
|
|
| Single entry and single exit points
|
|
Fundamentals of programming in BASIC : a structured approach (p.180)
| Meaningful Identifiers
|
Line Numbers of same length
|
DATA statements after main program
|
| Brackets in complex expressions
|
Indentation
|
GOTO
|
| Avoid too many levels of nesting
|
Remarks
|
|
|
Properties of Good Programs
| https://en.wikipedia.org/wiki/Computer_programming#Modern_programming
|
| Reliability, Robustness, Usability, Portability, Maintainability, Efficiency/Performance
|
|
| Programming in BASIC : problem solving with structure and style (Chapter 6)
|
|
Testing, Debugging, and Error Messages
Errors Debugging
| Error Detection and Correction
|
| Error Routines and Logic Tests?
|
|
|
|
|
Book 2) Graphics, Animation and Sound
Text Graphics
| ASCII Character Set 3
|
References
| Programming in BASIC : problem solving with structure and style (Chapter 12)
|
|
|
Topics
| Screen Graphics Coordinates and Pixels
|
| Plotting Individual Points
|
| Drawing a Line
|
| Sketching a Figure
|
| Animation
|
| Detecting Collisions
|
|
Pixel Graphics
| SCREEN
|
| COLOR
|
| CLS
|
| PSET, PRESET (or PLOT UNPLOT)
|
| LINE
|
|
| DRAW
|
References
| Structured basic programming-- with style! (Chapter 14)
|
| Using BASIC : an introduction to computer programming (Chapter 30)
|
|
|
Book 3) BAM IDE and User Guide
|
Book 4) MetaProgramming
|
Book 5) BAM + TiddlyWiki Integrations
|