Programming: Difference between revisions

From Computer Science Wiki
(Created page with "<center> <blockquote style="padding: 5px; background-color: #FFF8DC; border: solid thin gray;"> File:Exclamation.png This is one of '''the most important ideas''' you c...")
 
 
(81 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<center>
[[file:computation.png|right|frame|Programming<ref>http://www.flaticon.com/</ref>]]
<blockquote style="padding: 5px; background-color: #FFF8DC; border: solid thin gray;">
  [[File:Exclamation.png]] This is one of '''the most important ideas''' you can remember:


  '''Decompose''' a problem into smaller parts, '''model''' a problem with flowcharts. Learn to think '''sequentially'''
</blockquote>
</center>


[[file:computation.png|right|frame|Computational thinking, problem-solving and programming<ref>http://www.flaticon.com/</ref>]]
= Introduction to programming =


Programming is the process of planning, writing, executing and testing instructions for a computer system.


=== Thinking procedurally ===
* [[What is a programming language?]]  [[File:Answer.png|This topic has formative assessment as part of the article.]]<ref name="formative">Icons made by https://www.flaticon.com/authors/eucalyp from https://www.flaticon.com/ </ref>
** [[Fundamental and compound operations]]
** [[Higher level and lower level languages]] [[File:Answer.png|This topic has formative assessment as part of the article.]]<ref name="formative">Icons made by https://www.flaticon.com/authors/eucalyp from https://www.flaticon.com/ </ref>
** [[Interpreted and compiled languages]]


* [[Procedural thinking]]
* [[Evaluating process]]
* [[Sub-process]]


=== Thinking logically ===
== What is the best programming language? ==  
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/RfWGJS7rckk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</html>


* [[Logical decisions]]
== Learning to Program ==
* [[Conditions and decisions]]
* [[Inputs and outputs]]
* [[Logical rules]]
* [[Variables]] [[File:Answer.png|This topic has formative assessment as part of the article.]]<ref name="formative">Icons made by https://www.flaticon.com/authors/eucalyp from https://www.flaticon.com/ </ref>
* [[Functions]]
* [[Data types]] [[File:Answer.png|This topic has formative assessment as part of the article.]]<ref name="formative">Icons made by https://www.flaticon.com/authors/eucalyp from https://www.flaticon.com/ </ref>
* [[Iteration]]  
* [[Conditionals | Selection]]


=== Thinking ahead ===
* [[Operators]]


* [[Inputs and outputs]]
== Primitive data types ==
* [[Pre-conditions]]
In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support various types of data, for example: real, integer or Boolean.<ref>https://en.wikipedia.org/wiki/Data_type</ref>
* [[Exceptions and pre-conditions]]


=== Thinking concurrently ===
The list below describes some of the more common primitive data types


* [[Concurrency]]
* [[Scalar type]]
* [[Boolean]]
* [[Int|Integers]]
** [[Signed integers]]
** [[Unsigned integers]]
* [[Float]]
* [[Char]]
* [[String]]


=== Thinking abstractly ===
== Common data structures ==


* [[Abstraction]]
A data structure is just some organization of data that we've built into an orderly arrangement. The organization and arrangement of data can make our programs run much more efficiently. Each data structure has advantages and disadvantages. There are common data structures and abstract data structures. In general abstract data structures are advanced and more specific to a specific task. 
* [[Applied abstraction]]


=== Connecting computational thinking and program design  ===
=== Common data structures which are assessed by the IB ===


* [[Linear arrays]]
* [[Arrays]]
* [[Pseudocode]]
* [[two-dimensional arrays]]
* [[Algorithms]]
* [[Collections]]
* [[Applied algorithmic thinking]]
* [[Linked list]]
* [[Objects]]  


=== Introduction to programming ===
=== Common data structures which are not assessed by the IB ===


* [[What is a programming language?]]
* [[Lists]]
* [[High level languages]]
* [[Dictionaries]]
* [[Compiler]]
* [[Sets]]
* [[Low level languages]]
* [[Tuple]]
* [[Translating high-level code to low-level code]]
* [[Control flow]]


=== Use of programming languages ===  
=== Abstract data structures which are assessed by the IB ===
For a deeper understanding of abstract data structures, please see this page: [[Abstract data structures]]
* [[stack]]
* [[queue]]
* [[linked list]]
* [[tree]]
* [[binary tree]]


* [[Variables]]  
= Python =
* [[Constants]]
 
* [[Objects]]
* Please visit our [[python]] programming page
* [[Operators]]
* [[Conditionals]]
= Programming Paradigms =
* [[Algorithms]]
 
* [[Arrays]]
* [[Object-Oriented Programming]] ([[Separation of concerns]])
* [[Collections]]
* [[Procedural programming]]
* [[Functions]]
* [[Declarative programming]]
* [[Loops]]
* [[Functional programming]]
* [[Imperative programming]]


== Other important ideas in programming ==
= Advanced Programming =


* [[Regular expressions]]
* [[Regular expressions]]
* [[Design Patterns]]
* [[Artificial Intelligence]]
* [[Object-Oriented Programming]]
* [[API]]
 
* [[Robotics]]
== Standards ==
* [[Working with files]]
{| style="width: 95%; font-size: 12px;" class="wikitable sortable"
* Working with [[Databases|databases]]
|-style="background-color:#E6F9E6;"
* [[GUI|Graphical User Interfaces]]
| colspan="2" | '''Computational thinking, problem-solving and programming'''
* [[Hashing]]
|-
* [[Blockchain]]
| Identify the procedure appropriate to solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
* [[Genetic Algorithms]]
|-
* [[Machine learning]]
| Evaluate whether the order in which activities are undertaken will result in the required outcome.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the role of sub-procedures in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify when decision-making is required in a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the decisions required for the solution to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the condition associated with a given decision in a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the relationship between the decisions and conditions of a system.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Deduce logical rules for real-world situations.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the inputs and outputs required in a solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify pre-planning in a suggested problem and solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the need for pre-conditions when executing an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the pre- and post-conditions to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify exceptions that need to be considered in a specified problem solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the parts of a solution that could be implemented concurrently.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Describe how concurrent processing can be used to solve a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Evaluate the decision to use concurrent processing in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify examples of abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain why abstraction is required in the derivation of computational solutions for a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct an abstraction from a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Distinguish between a real-world entity and its abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Describe the characteristics of standard algorithms on linear arrays.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the standard operations of collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Discuss an algorithm to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse an algorithm presented as a flow chart.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse an algorithm presented as pseudocode.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct pseudocode to represent an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Suggest suitable algorithms to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Deduce the efficiency of an algorithm in the context of its use.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Determine the number of times a step in an algorithm will be performed for given input data.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| State the fundamental operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Distinguish between fundamental and compound operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the essential features of a computer language.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the need for higher level languages.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the need for a translation process from a higher level language to machine executable code.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Define the terms: variable, constant, operator, object.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Define common operators.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse the use of variables, constants and operators in algorithms.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct algorithms using loops, branching.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Describe the characteristics and applications of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct algorithms using the access methods of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Discuss the need for sub-programmes and collections within programmed solutions.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-style="background-color:#E6F9E6;"
|}


== References ==
== References ==
<references />
<references />


[[Category:computational thinking]]
[[Category:programming]]
[[Category:programming]]

Latest revision as of 09:11, 10 October 2023

Programming[1]


Introduction to programming[edit]

Programming is the process of planning, writing, executing and testing instructions for a computer system.


What is the best programming language?[edit]

Learning to Program[edit]

Primitive data types[edit]

In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support various types of data, for example: real, integer or Boolean.[3]

The list below describes some of the more common primitive data types

Common data structures[edit]

A data structure is just some organization of data that we've built into an orderly arrangement. The organization and arrangement of data can make our programs run much more efficiently. Each data structure has advantages and disadvantages. There are common data structures and abstract data structures. In general abstract data structures are advanced and more specific to a specific task.

Common data structures which are assessed by the IB[edit]

Common data structures which are not assessed by the IB[edit]

Abstract data structures which are assessed by the IB[edit]

For a deeper understanding of abstract data structures, please see this page: Abstract data structures

Python[edit]

  • Please visit our python programming page

Programming Paradigms[edit]

Advanced Programming[edit]

References[edit]