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
|