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.

 

 

 


Great Advice – I’m Talking To You “Know it all”

August 17, 2014

Have you ever come across a fellow IT employee or even other technical minded peers and got that feeling they knew everything and anything that there is to ever know about the IT world ?

Well i have and too often then i would like to admit. There are alot of very skilled IT admins/engineers/programmers etc.. out there and i know for some of them they strive to learn everyday, even if they have been at it for 20years. The IT world is a dynamic one and the pace of it all can be definitely overwhelming at times. There will be those people out there that no matter what, they will make time to help and maintain an open mind to new ideas and solutions, these are the guys you want to work with, work for or have working for you.  Due to the pace of the industry we all specialise in one aspect and learn and learn and learn, as an IT worker i will be reading until the day i retire but most probably until the day i die, all in the name of knowledge.

Then there are those “Know it all’s” and it doesn’t discriminate, young, old,  fresh or experienced. Cause no matter what, nothing you offer is right or good enough, they tend to work alone and strive to take all the credit. They can also be found on forums criticising the OP about his or her’s lack of knowledge in the post and often tearing the technical flaws presented to shreds (probably after googling it first). They often keep their minds locked tight and trying to satisfy them (especially if they are superior or your boss) is like putting a square block in a round hole.  It will just never work. They are the trolls of the IT world i think, i would like to never have to work with such a person but the world is unique and diverse, so hey i like a challenge.

 

So the advice you ask ? well if any of you have read “Learn Python The Hard Way” by Zed A.Shaw you may have spotted this while reading the introduction.

 

Excerpt from “Learn Python Hard Way” Zed A.Shaw

Sometimes people who already know a programming language will read this book and feel I’m insulting them. There is nothing in this book that is intended to be interpreted as condescending, insulting, or belittling. I simply know more about programming than my intended readers. If you think you are smarter than me, then you will feel talked down to and there’s nothing I can do about that because you are not myintended reader.

If you are reading this book and flipping out at every third sentence because you feel I’m insulting your intelligence, then I have three points of advice for you:

  1. Stop reading my book. I didn’t write it for you. I wrote it for people who don’t already know everything.
  2. Empty before you fill. You will have a hard time learning from someone with more knowledge if you already know everything.
  3. Go learn Lisp. I hear people who know everything really like Lisp.

For everyone else who’s here to learn, just read everything as if I’m smiling and I have a mischievous little twinkle in my eye.

Source: http://learnpythonthehardway.org/book/intro.html

 

Now those three dot points, don’t you just think they are wonderful ? Well i do and i just wanted to share.