Friday 3 September 2010

Computer Vision – The Integral Image

The Integral Image or Summed Area Table, was first introduced to us in 1984, but wasn't properly introduced to the world of Computer Vision till 2001 by Viola and Jones with the Viola-Jones Object Detection Framework.

The Integral Imagine is used as a quick and effective way of calculating the sum of values (pixel values) in a given imagine – or a rectangular subset of a grid (the given imagine).

It can also, or is mainly, used for calculating the average intensity within a given imagine. If one wants to use the Integral Image, it is normally a wise idea to make sure the image is in greyscale first.

Tuesday 8 June 2010

Software Engineering - Summary

I didn't make these, but Nida has kindly made a summary for software engineering and asked me to publish it, so here it is!

Sunday 30 May 2010

Symbolic AI – Deep and Surface Structure Trees

Finally, you get to see a tree :D

This post will cover the basics of what Deep and Surface Structure trees are, as well as a little bit on moved words – only little though!

Symbolic AI – Basic Lambda Calculus 2

This is the second part to the Basic Lambda Calculus 1. In this we’ll go through a proper example.

Symbolic AI – Basic Lambda Calculus 1

This post will explain some of the basics of Lambda Calculus, mainly Alpha-Conversion and Beta-Reduction. We’ll also see a quick example of a simple sentence.

This post is being written with me being slightly ill… so some bits may make no sense whatsoever – sorry :(

Wednesday 26 May 2010

Nida’s Awesome Distributed Systems Notes

Hi everyone,

My name's Nida and I wrote some really awesome notes that James even uploaded to his webspace for me - but I forgot to put the link on the blog! Gah! Silly me!

Here's the link to them.

Tuesday 25 May 2010

ACID

This is going to be a very quick post, mainly because so many people have asked me what ACID means.

This post applies to a lot of topics / modules; but mainly to Databases and Distributed Computing.

Representation State Transfer - REST

Now for the final section about these architectures. This post will cover the aspects concerning the REST Architecture. It really simple to grasp the concept of it, so lets take a look!

Distributed Computing – SOAP

No, this post is not about the slippery block of nice smelling soap! SOAP in Distributed Computing is another form of message exchanging between peers, and here we describe how it does this.

Service Oriented Architecture – Part (2/2)

This is the second part to SOA’s, in this post we’ll have a look at Message-Oriented Middleware (MOM’s) and other various things to finish of this section.

Service Oriented Architecture – Part (1/2)

Over the next – possibly – 2 or 3 posts, i am going to be posting about SOA, Services and MOM’s. Then they’ll be a post about SOAP, then finally one about REST. All of which are Architectures for Computing in their own right.

However, this post will mark the start – explaining in detail what SOA really is, what a Service is, as well as MOM’s (i will try a reframe from ‘ya mom’ jokes)  :)

Monday 24 May 2010

This post is best displayed as a .pdf file which can be found HERE.



Distributed Systems


A complete revision summary by James Bedford.


This summary now contains everything.


Last updated:


11:38pm - 25/05/10.

Wednesday 19 May 2010

Algorithms – The 0/1 Knapsack Problem – Dynamic Programming method

Okay, I didn't see that James had made a video about the very same subject. Great minds think alike I guess? Sigh. Well, here it is: The Dynamic Programming method for solving a 0/1 Knapsack Problem explained, in depth, by me in under 11 minutes!







Bug 1: Ignore the "The cell with the green circle around has a capacity of" blah blah etc. because I uploaded the wrong version ._. The green circle should be around cell (3,1).
Bug 2: I circle item '1' when I should circle item '3' at the end when we're going through the keep array. I fail.
Bug 3: I say '2' somewhere instead of '3'. See if you can spot it.

Sorting – Quick Sort

A post dedicated to that oh so famous, Quick sort! ^^

Sorting – Merge Sort

A post all about the Merge sort :D

Shortest Path – Dijkstra’s Algorithm

We’ve all used those horrible SATNAV’s to get from one place to another. But how do they calculate the path we must follow in order to minimize the time needed.

This is a shortest distance problem, which shall be covered in this post via Dijkstra’s Algorithm.

Algorithms – Quick Graph Terminology

This post will be brief. It just contains a load of terminology for parts of graphs, such as:

  • Spanning Trees
  • Back Edges
  • etc…

Tuesday 18 May 2010

Dynamic Programming - Solving The Knapsack Problem

How do we fit the most valuable items from a selection of items into a knapsack? This... ladies and gentlemen, is the Knapsack problem.

Algorithms – Depth/Breadth First Search

We have seen some of the key concepts to Graphs; What a node is, an edge – as well as definitions for Digraphs and Undirected Graphs – and other bits ‘n’ bobs :) .

But one question stills looms; How do we traverse a Graph?

Here we shall look at two of the key traversing algorithms for Graphs:

  • Depth First Search (DFS), and
  • Breadth First Search (BFS).

Algorithms – Adjacency Lists and Matrices

Nodes can be connected to other nodes – otherwise it would be a bleeding useless graph! :D

But how do we know which node is connected to which nodes? Welcome to the wonderful world of Adjacency Lists and Matrices!

Also, i apologise for the long pause in posts! :(

Thursday 25 March 2010

Management Accounting - More Budgeting

More budgeting


Moving on from the last post, let's talk more about how budgets work and what they're made of.

Standard costs and variances


Standard costs are the planned cost (per unit) of products or services produced. You can also have standard revenues that work the same way.

Wednesday 24 March 2010

Management Accounting - Budgeting

Budgeting


Preparing budgets is what happens right after making long term strategic plans. Budget adjustment sometimes occurs after variances are observed.

A budget is pretty much three smaller budgets that combine to make a 'superbudget' of sorts:

Master budget


=


Budgeted balance sheet


AND


Budgeted income statement


AND


Budgeted cash flow statement


Budgets have 5 main benefits:




  1. Promote forward thinking

  2. Co-ordinate various business areas

  3. Provide an authorisation system

  4. Provides a system of control

  5. Motivates managers to perform better


We'll talk now about how a budget is made and then go through an example or two.

Monday 15 March 2010

Software Engineering – (System) Sequence Diagrams

Now it times to learn all about how to create a (System) Sequence Diagram (SSD).

Note: not to be confused with State Diagrams, hehe ;)

Software Engineering – Activity Diagrams

Its time to demonstrate how to produce an Activity Diagram – here we go.

Management Accounting - Pricing

Pricing


If you have a business you want to make sure that you price your products and services appropriately. Your prices should be consistent with the business strategy and also linked to the cost of producing the product or service.

Two pieces or terminology to remember:

  • Price makers: Set their own price

  • Price takers: Have to accept what the market dictates (this can be either a competitor or a customer)


You've probably heard of supply and demand before. The basic premise here with supply and demand is that if you sell lots of a product you can afford to reduce the price per unit, and conversely if your sales are low you'll have to increase the price.

Management Accounting - ABC

ABC


(It's as easy as 123)

ABC stands for Activity Based Costing. It has a few benefits, such as:

  • It provides more accurate costs for each unit of a product (or service)

  • It gives a better understanding of the business to managers


It's fairly simple to the more traditional costing methods we've looked at already, but with a key difference: ABC looks at activities as a way of accumulating costs, instead of the old method of using cost centres. So with ABC the costs will be driven by:

Management Accounting - Costs On A Departmental Basis

Dealing with overhead costs on a departmental basis


In previous posts we've addressed what full costing is and how overheads can be applied in different ways. Now it's time to talk about how the overheads can be sorted into departments.

Think about a medium to large sized business. They are often separated into departments, for example, sales, customer service, manufacturing etc. So what if, when a product's cost is calculated, the overheads were allocated depending on how long the product spends in a certain department?

Instead of departments, we'll refer to the different business areas as cost centres. There can be two types of these:

Sunday 14 March 2010

Software Engineering – Object-Oriented Modelling

So, this is it. This is the post that ties all the previous three together! That is:

  1. Class Modelling

  2. Functional Modelling

  3. Behavioural Modelling


So lets have a look then shall we at Object-Oriented Modelling :)

Software Engineering – The Behavioural Model

this post is the final post of the three main modelling systems in Software Engineering. So far we have seen Class and Functional Modelling; now it’s time to take a look at Behavioural Modelling! :)

Software Engineering – The Functional Model

In this post we talk all about Functional Modelling. This post is a semi-continuation from the previous one on Class Modelling.

Software Engineering – The Class Model

Hey everyone it’s Badgerati again :D Sorry i haven't exactly posted anything in 3 weeks… But if everything goes to plan, there should be 3 updates tonight!

So, lets get them all started with Class Modelling! :)

Globalisation - Skepticism

Skepticism


There are plenty of people who doubt that we live in a globalised society. There are 9 main points to their arguments. This post will outline each of the points in turn.

Globalisation isn't a new thing


The most famous text to give this argument is 'Globalization in Question' by Hirst and Thompson. One of their main points is that international trade has been around in history for a while and isn't new. You might they say have a point. Spices and fabrics and things of that nature have been shipped all over the world for centuries. The banana was first brought to Britain in the 1800s.

Saturday 13 March 2010

Globalisation - Introduction

Introduction to globalisation


http://en.wikipedia.org/wiki/Globalization

Globalisation (Note: You might see it spelt with a 'Z'.. American spelling) is pretty much the spread of a uniformity that eliminates cultural nuances and creates a standardisation.

Think about 40 years ago. If you lived in the UK, were out and wanted a hamburger, the only available fast food chain was Wimpy, famed for it's horribly named 'Bender Burger'. But basically, that was the only place you could go. And it was innately British: The food came with a knife and fork, and on a plate. I wasn't born back then but I can only assume it completed the British theme by having the food brought to you by a comically rude waiter who is inexplicably upper class. Basil Fawlty was probably involved. But what I'm trying to get at is that it was definitely a British thing.

Tuesday 23 February 2010

Management Accounting - Full Costing

Full Costing


In our list of ways to define cost, we're onto number 3:

  • Differential future cash flows (DFC)

  • Cost behaviour in relation to output

  • Assignment to cost object

  • Financial statement perspective

  • Business function

Thursday 11 February 2010

Distributed Computing - Architectures


This post is going to be mainly about the architectures employed by a distributed system and I don't mean this kind of architecture:



There are two main types of architectures that we shall be looking at those which are...




  • Tightly Coupled- several machines which are highly integrated, which may seem and work like a single computer.

Management Accounting - Operating Gearing, Marginal Analysis

Operating Gearing and Marginal Analysis


If you have an activity, and it has high fixed costs compared to it's variable costs, then that activity has high operating gearing.

When operating gearing (OG) is high, a small change in sales will have a much bigger effect on profit, so you can say that profits are more sensitive to activity volume when OG is high.

Tuesday 9 February 2010

Management Accounting - Fixed and Variable Costs

Fixed and Variable Costs


You'll remember from the previous post that there's more than one way to define cost. The methods were:


  • Differential future cash flows (DFC)

  • Cost behaviour in relation to output

  • Assignment to cost object

  • Financial statement perspective

  • Business function



The previous post focused on DFC, and this post is about cost behaviour in relation to output. What's that in english? We're on about fixed and variable costs.

Algorithms - Traversals

Traversals


What is a traversal? It's when you visit every node of a tree or graph using the edges.

Tree traversal


Let's talk about 3 methods of traversing trees (Note: Always start at the root)

  • Depth-First-Search: Visit all the descendants of a node before visiting the sibling nodes. You have to visit some nodes more than once in a DFS, this is called backtracking

  • Breadth-First-Search: Visit all children of a node before visiting sibling nodes

  • Priority Search: Nodes are given priorities, and the children of the node that haven't been visited yet with the highest priority are visited first


So let's try these on a tree. Here's one I made earlier:

Monday 8 February 2010

Algorithms - More graphs

More Graphs (yay)


Note: This is a direct follow on (or a sequel if you want) to this post, so you might want to read that first!

Representing graphs


So you've seen what graphs are and how they can be classified. But how do you represent them in code? For example, do we put them in an array, a vector or a linked list? There isn't one definite answer, so let's go through some of the methods of representing them.

CSS Funnies

A Post For All Our Boredom :)


Proxies and Caches:

Friday 5 February 2010

Management Accounting - Relevant Costs

Relevant Costs


Right, onto the proper lecture material!

What is cost?


Basically there isn't a single way to define cost, which is quite inconvenient for us. What you're going to use the cost to figure out should tell you how to calculate it however.

Management Accounting - Introduction

Management Accounting - An Introduction


Like most of the intro lectures, this is going to be quite brief, the real 'meat' is in the next lectures!

What is accounting?


Seems like an easy question...but it's something you need to learn! My answer at first was "erm it's you know money and stuff and balance sheets". This is not a model answer!

Thursday 4 February 2010

Using NetBeans 6.8 to Create a Tab View

Hey guys,

Here's a video that may come in useful when developing GUIs for Java application using NetBean's interface builder.

Symbolic AI - Subject Overview

Symbolic AI is very different from other Artificial Intelligence courses, as it attempts to solve the problem of how to get computers to validate a statement given a load of facts. We humans do it all the time:

That car is indicating.
Cars which indicate turn.


From this we're able to deduce that the car is going to turn. Getting computers to interpret these statements of fact and validate statements would be incredibly useful.

Tuesday 2 February 2010

Distributed Computing - Parallel Computation

Why would you even want to use 100’s or even 1000’s of computers? What would you do with such a large number of networked computers?

Well the simplest answer is that there are many applications that we utilize which require good response time, such as Search engines, and File sharing. By increasing the number of computers working in parallel we can actually increase the execution time, giving users faster responses to resource queries.

  • Parallel computing – utilizing multiple CPU’s within a single computer

  • Distributed Computing – utilizing several computers connected through a network


Distributed Computing - Challenges

Okay sooo distributed systems are spread out over vast distances. Due to this attribute there are many issues and challenges surrounding such distributed systems some of which are discussed below! Enjoy!

Challenge No.1 - Heterogeneity


Heterogeneity - “Describes a system consisting of multiple distinct components”

System Architecture - Subject Overview

It's a new semester, and we've got 3 modules to pick from 6, and getting your choices right can be tricky. This should be a brief introduction to System Architecture and why you should take it, or why you shouldn't, and hopefully make picking your modules slightly easier.

Monday 1 February 2010

Distributed Computing - Introduction



Introduction to distributed computing


As this is just an intro I'll keep it brief...

Sooooo, what is a distributed system? I'm going to 'borrow' the description that Matt used in his COMP10052 posts (this post to be precise):

Algorithms - Intro to Graphs

Intro to Graphs


What are graphs?


So while you might think that graphs are things like these:



..you're right! That is a graph. But when computer scientists talk about graphs, they actually mean these:

Thursday 28 January 2010

Machine Learning - Cluster Analysis

Cluster Analysis


I’m running my Machine Learning revision very late and struggling with the second part of the course. If anyone wants to get in touch about any part two stuff I’d be more than happy to chat any time before the exam as it really helps. I shall leave my laptop on overnight so emails (bedforj8@cs.man.ac.uk) and skype messages/calls (Starscent) will wake me up. Here’s what I’ve managed to grasp of cluster analysis.

Machine Learning – Support Vector Machines

Hopefully all of this should now be complete, if not tell me, hehe

Say we have the following graph with set of plotted points:

Machine Learning – Naive Bayes Classifier

Background

There are 3 methods to establish a classifier, these are:

Machine Learning - Decision Trees and Entropy

Decision Trees


If anyone requires further explanation, please get in touch with me (or anyone else for that matter)!

In machine learning, it can be desirable to come up with meaningful if-then rules in order to predict what will occur in the future. For example, "if this and if that then this will probably happen". Decision trees can be built automatically, which can then be used to come up with these if-then rules.

A decision tree is used to investigate huge amounts of data and come up with the most probable outcomes. Each condition is an internal node on the tree. Each outcome is an external node.

Saturday 23 January 2010

Current version is COMPLETED: 10:47pm - 24/01/10
Please note there have been BIG CHANGES to the 'Virtual Memory' section.


Well here are my notes for Operating Systems, if they help that's great! I'll continue revising them and working on the layout.

Sunday 17 January 2010

Summary completed and updated - 9:06pm - 20/01/10.


I had such a backlog of Computer Networks posts that I've decided to just post the entire thing up. A lot of what's here has been repeated but hopefully bits will be added and issues will be tackled in a different way. I don't know if this will help anyone but here it is and if it does that's great!


I'd like to thank a million people for helping me with networks so far too! :D


Monday 11 January 2010

Computer Networks - Multimedia

Multimedia


These are my notes... RAR! If there's any issues give me a buzz because some stuff might not be clear enough.

Most multimedia is transmitted via TCP or UDP. It may also be transmitted via RTP and RTCP, but they're just protocols built on UDP - in fact, sometimes they're classified as being part of the application layer. Anyway, let's find out what all of this means...

Financial Reporting - Corporate Governance

Corporate Governance


Let’s start with some more recapping from last time:

  • The gearing ratio measures what proportion of a business is funded by borrowing

  • Depreciation does not count as a cash expense

  • Current assets are usually only held during one operating cycle, so they are expected to be sold within a year

Algorithms - Analysis of Algorithms

Analysis of Algorithms


There are 2 ways of doing this:

  • Inspecting pseudo code.  This is the analytical approach

  • Implement the algorithm and time it. This is the experimental approach


The analytical approach is usually preferred because:

Algorithms - Complexity

Complexity


Note: You really need to read the algorithms text book chapters 1 to 3 as well as reading these notes!

Second note: This will probably be quite short as I'm cutting out all the exposition from the notes and just including the important information.

Sunday 10 January 2010

Machine Learning – Entropy

Entropy is a probability based measure.

Now, lets have a quick example:

Machine Learning – Decision Trees

I bet you thought that was going to say Decision Boundaries again :D – well… that is… if you’ve read the first 4 Machine Learning posts ;)

Nope, this time is Decision Trees, which are very similar to trees in programming – aka Binary Trees.

Maths / Logic and Modelling – CNF

This is going to be the first post I'm going to write that is valid for BOTH year 1 and year 2. Just in case you get confused as to who should be reading it ;)

CNF is short for Conjunctive Normal Form. A formula is in CNF if it is True (T) or False ( _|_ ) or a conjunction of disjunctions:

Logic and Modelling – Polarity

No, this a not a post about the North and South pole ;)

Friday 8 January 2010

Logic and Modelling – Splitting

Splitting a formula is not like splitting an atom, haha :)

Splitting a formula is a way of checking the satisfiability of a propositional formula – or a set of formulas. The way we do this is by considering the truth values for Boolean variables occurring in the given formula, and then simplifying the formula depending on these values.
From these simplifications, we may even discover that we don’t always need to find the truth values for all Boolean variables in the formula.

Algorithms – Trees

So what exactly is a Tree in programming?

Well, it is not a tree that you see every day when you walk through a park :P

Financial Reporting - (More) Financial Statement Analysis

More Financial Statement Analysis


Let's start with some recapping from the last section.

  • Let's say that a company's average debtor payback time in 2008 was 62 days, and in 2009 was 31 days. A possible reason for this is that the company has improved their credit control procedures, meaning they now collect their debts more quickly.

Thursday 7 January 2010

Financial Reporting - Financial Statement Analysis

Financial Statement Analysis


Who is interested in analysing a financial statement?

Machine Learning – Confusion Matrix

So what happens if our dataset only consists of 5 Cats but 95 Dogs? Well chances are you’ll get a 95% by just predicting everything as a Dog! So this means that you predicted 5 Cats as Dogs.
So what happens when we predict a Cat as a Dog and vice versa? Well chances are we won’t to know what's been predicted as what! This is where a Confusion Matrix comes in! :)

Machine Learning – Training and Testing

Splitting the Dataset

Hmm… Ah… Looking back at the graphs we used for the Cats and Dogs; I've just realised something, they have no units ^_^

Ah well, that’s about to change, haha!

Financial Reporting - Cash Flow Statement

Cash Flow Statement


What's the difference between cash and profit? Ok yeah, you know the answer, but could you actually say it in an exam question type way?

Wednesday 6 January 2010

Machine Learning – Artificial Neurons / Perceptrons (Part 2)

So then, time for part 2 of Perceptrons :D

Here im going to give a few examples of the algorithm working, then its onto the next part :)

Machine Learning – Artificial Neurons / Perceptrons (Part 1)

Quick Perceptron Example

Here we go… a Decision Boundary… again. Yes you may now kill me :)

Actually, this time it really isn't that bad, because a Perceptron literally IS a decision boundary. Lets take a look at a rounded decision boundary from KNN:

Machine Learning – More on Decision Boundaries

Okay, so as it turns out i forgot something… again! darn im getting good at this ¬.¬

On the post for K-Nearest Neighbour Part 2, I showed a Graph with a Decision Boundary. Well this is just one type of decision boundary. There are technically more but im going to show 3 of them here.

Machine Learning – K-Nearest Neighbour (Part 2)

Last Time


Last time we learnt about the algorithm that the K-Nearest Neighbour use’s, using Cats and Dogs, if you want more go here!:  Part 1

Machine Learning – K-Nearest Neighbour (Part 1)

Cats and Dogs

Lets take 2 example classes. Say we wanted to be able to recognise the difference between a Cat and a Dog, how would you do this?

Well, firstly we have to identify some features that can easily distinguish them both. Lets have a quick example of a cat and a dog – yeah, seriously :P

Monday 4 January 2010

Computer Networks - An Introductory Overview

What is a computer network?


To a user - something that allows applications to talk to each other. They have an idea as to what the infrastructure should allow them to do. Email and web browsing should be reliable. Internet banking should also be secure. Internet radio, voice over IP and video streaming should have quality. With VoIP however you also want low latency (delay) too, as opposed to internet radio. The demands of the network depend on what type of application you want to run.

Cocoa Framework Summary

A summary by James Bedford.

Cocoa is a framework of tools used for software development written in Objective-C, featuring modular, object-oriented and visual design. It was originally called NextSTEP and was developed by the company NeXT. When NeXT merged with Apple in 1996, the framework NextSTEP was renamed Cocoa. However, it still remains that all objects within this framework begin with the prefix "NS", which helps to distinguished them and prevent accident errors.


This summary is work-in-progress (which will be periodically updated) and may contain mistakes. Please let me know if there are any issues, or if anything needs clarifying.