
1. Program Language Paradigms
1.1. Program Paradigm
1.1.1. - A model class for programmingl language that share common characteristics and differences
1.2. Common Programming Paradigms
1.2.1. - Imperative paradigm
1.2.1.1. * Sequential
1.2.1.2. * Variable memory locations
1.2.1.3. * To change the values of variables
1.3. Imperative Paradigm
1.3.1. - Describe how computer achieve solution
1.3.2. - Ex : C , Pascal , FORTRAN , ...
1.3.3. - Key features :
1.3.3.1. * Stored memory
1.3.3.2. * Mutable variables
1.3.3.3. * Sequencing , selection & iteration
1.3.3.4. * Pointers
1.4. Object Oriented Paradigm
1.4.1. - Imperative / procedural style with added data & code abstraction & encapsulation
1.4.2. - Concept that changed the rules in computer program developement
1.4.3. - OOP organized around object rather actions , data rather than logics
1.4.4. - Examples of language : C++ , SmallTalk /7 JAVA
1.4.5. Key features :
1.4.5.1. * Abstraction
1.4.5.2. * Encapsulation
1.4.5.3. * Inheritance
1.4.5.4. * Polymorphism
1.5. Logic Paradigm
1.5.1. - Declarative & relational style of programming
1.5.2. - Example language : Prolog
1.5.3. Key features :
1.5.3.1. * No mutable variable
1.5.3.2. * Statements are logical predicates or assertions
1.5.3.3. * Every statement can either be succeed or fails
1.5.3.4. * Few explicit control constructs
1.5.3.5. * Recursion
1.6. Functional Paradigm
1.6.1. - Concept of functions in mathematics
1.6.2. - Lambda calculus
1.6.3. - Written compact , but run slowly & require a lot of memory
1.6.4. Example language : Haskell , ML , LISP & Scheme
1.6.5. Key features :
1.6.5.1. * No mutable variables
1.6.5.2. * Everything is an expression
1.6.5.3. * Everything is function
1.6.5.4. * No iteration
2. Programming Language
2.1. - A system signs used of communicate a task/algorithm to a computer causing the task to be performed
2.2. - Task to be performed called computation
2.3. - Set of instruction , data and rules
2.4. - 3 levels of programming language
2.4.1. * Machine Languge
2.4.2. * Low level language (Assembly language)
2.4.3. * High level language
3. Machine Language
3.1. - Representation of a computer program that only can understand by the computer
3.2. - Instruction : Binary code
4. Assembly language
4.1. - Representation of machine language of a specific processor
4.2. - Converted a machine code by an assembler
4.3. - one to one correspondence
4.4. - Slow and error-prone but efficient for hardware performance
5. Computer Programs
5.1. - A set of instruction the computer needs to follow to process the data into information
6. Programming Aplication Domains
6.1. Scientific Application
6.1.1. Developed FORTRAN
6.1.2. -Included control structures , conditions , and input/output
6.2. Artificial Intelligence
6.2.1. - Deals with emulating human-style reasoning on a computer
6.2.2. - Involve symbolic computation , mostly names not numbers
6.2.3. - Common data structure is the list
6.2.4. - Requires more flexability
6.3. Systems Programming
6.3.1. - Assembly languages were used age ago because of its power and efficiency
6.3.2. - CPL , BCPL and C++ developed
6.4. Web software
6.4.1. Markup - annotating a document in a manner
6.4.2. Scripting _ enable the script to run this commands include control structures such as if-then-else & do-while
6.4.3. General purpose - used for a wide range of programming jobs