Programming Core Elements

August 23, 2014

Let’s continue with the Computer Science course. Remember we are planning to make the computer do the work we want it to do and will eventually script repetitive tasks. This will become very valuable when i begin the Cyber Forensics portion. Though it can be applied to many different applications.

Please keep in mind that these should be used as mere reference, as the notes are written in what you could call “very notated” the use of full structured sentences is rare. If you need more info it can be found at MIT’s OpenCourseware.

Intergrated Developer Environment – IDE

  • Python uses IDLE
  • Specialised Text editor

Objects

  • Python is an “Object” including its code
  • Objects have a type which identify what it is (Two Types)
    • Scaler Type
    • Non-Scaler Type

Different Types

  • Intger – Number eg. 3
  • Float – floating point numbers eg. 4.1, these are not the same as real numbers
  • Boolean – True or False
  • None – NoneType is used for a temporary value
  • String – “This is a string”

Expressions

  • Is the sequence of operands and operators
    • Operands – objects
    • Operators – + – / x

You should remember to use floating point numbers to obtain real division also overloaded operators have a meaning that depend in the type of operands.

TypeErrors is performed by the program running type checking in order to avoid undesired results. It’s also good to know that Python programs can also be reffered to as “scripts”

  • Script – Sequence of commands
  • Variable – Name of an object
  • Assignments – state python binds a name to the object

Python Input State

  • Raw_input – Always expects a string from the user
  • Input – basically don’t use as it’s unavailable in Python 3.0

Straight Line Programs

  • Everything in the application is executed just once

Conditional Statements

  • if / else / elif

Programs are intended to be read not just executed, this helps debugging. This is the reason for indentation even when it’s not required.

Branching Programs

  • Due to the structure of the code in Python using statements. More interesting then straight line. Each command is executed at most once, program execution time is governed by the size of the program.

Looping Construct

  • Turing complete aka iteration provides the ability to execute a statement more then once.

 


Computer Science Intro

August 18, 2014

So along with reading the online book “Learn Python The Hard Way” by Zed A.Shaw i have also been taking a keen interest in the computer science course offered by MIT opencourse ware and also Cyber Forensics, of which i hope to be studying at uni during the first semester of 2015.

So for anyone interested here are some of the notes i have taken. I will also use them for my own reference later on.

Common Terms and types of Computers

Use of this knowledge to provide computational problem solving:

Declarative and Imperative Knowledge

  • Declarative – Statement of Fact
  • Imperative – How to solve problem

Algorithm – Describes how to perform something

So far there is instructions, with a “Flow of Control” and a Termination Condition, at which point the application is said to have converged.

The first computers where known as fixed programme computers. These computers where good at performing a single function. eg. Enigma machine used in WWII is an example of a fixed programme computer.

Then there where Stored Programme Computers, now these are way more useful to more people. They are flexible by design and have the ability to change the programme on demand and also are capable of creating programmes from other programmes.

Programming Language:

  • Is a set of “primitive” instructions/control structures and That’s IT

Common Terms:

  • Syntax – defines the sequences of characters and symbols that make up a “well formed string”
  • Static Semantics – Those ‘well  formed strings’ that have a meaning
  • Semantics –

What Programmes Do When They Fail:

  • Crash – They stop running and also indicate that it has stopped. Properly designed applications do not affect the overall system when they crash.
  • Never Stop – Typically an “infinite loop” aka iteration
  • Finish with the wrong/undesired results

This stuff will come together at the end, because at the end of the day we will want to make the computer do what we want it to.