Tuesday 30 July 2013

Week two, algorithms

Tonights lecture was a difficult one for me, sections of it went way over my head and I contemplated how I would look in a lecture theatre of First year University Students working through these problems.

Though looking up, this is a Level One NCEA area, where students are to look basic computer science concepts and in this case
Demonstrate understanding of basic concepts from computer science involves:
• describing the key characteristics and roles of algorithms, programs and informal instructions
• describing an algorithm for a task, showing understanding of the kinds of steps that can be in an algorithm, and determining the cost of an algorithm for a problem of a particular size

We looked at the difference between algorithms, programs and informal instructions and how this could be taught to our students to meet the requirements.
The issue of describing an algorithm, it is a step by step process, to solve a problem, complete a task and always has a result. Where the difference between the program and algorithm is a program that has a specific implementation.
informal instruction, the simplest way to show this psudocode, that allows for the creator to use language that the computer may not be able to understand as it is informal. This allows for the developer to use language like "sort the list into order" in which the developer does not need to write the entire programming structure.

The focus of algorithms then comes into play. Schools are recommended to focus on three Linear, Binary and possibly Hashing, there are resources available through the csfieldguide(soon) and csunplugged that could help a teacher develop student voice.

Cost of algorithms is also required as part of the standard. We need to look not a just small numbers when doing algorithms, we need to look at more than 20 as most of the algorithms show little difference when that small.
Using tools from nzacditt that show various sorting algorithms in large numbers, shows number of items and time taken, these could be shown in a graph and talked about, discussed. The examples are written for python as well as scratch. Compare the costs, estimate how long 1 million, 10 million items could take, Or take as simple as your school library, combining it with another school library, how much longer will it take.

What needs to be talked about is what happens when a selections gets to a certain size, will it affect the way a program works. I love the video that shows a simple explanation of three algorithms.

There has been a number of discussions through tonights lecture that I am going to have to watch again on the course video. As I think I missed a number of key concepts and ideas. Or some concepts may have gone over my head

Though one thing that has come out is the possibly of a student instruction sheet for these standards that would assist teachers with a framework to help deliver to their students, Though on the front needs to be teacher guidance that this is not an exam or to be delivered as an exam.

One area that we looked at was wang tiles, could these tiles have an infinite size,
I had a teacher at my last school try to use an algorithm to see if he could solve the eternity II puzzle http://en.wikipedia.org/wiki/Eternity_II_puzzle although it was a physical puzzle it could be programmed into a computer, he tried using a brut force method to try and solve it.

I have tried to be careful not to give too many things away as I am sure students would search the internet for this.

One thing that I missed from my first post was the merit and excellence sections
Merit:
Demonstrate in-depth understanding of basic concepts from computer science involves: 
• explaining how algorithms are distinct from related concepts such as programs and informal instructions 
• showing understanding of the way steps in an algorithm for a task can be combined in sequential, conditional, and iterative structures and determining the cost of an iterative algorithm for a problem of size n

Excellence
Demonstrate comprehensive understanding of basic computer science concepts from computer science involves: 
• comparing and contrasting the concepts of algorithms, programs, and informal instructions 
• determining and comparing the costs of two different iterative algorithms for the same problem of size n

and from the Explanatory Notes:
3 The basic concepts from computer science are: the concept of an algorithm; the concept of a programming language; and the concept of a user interface and its usability. 

4 An algorithm is a precise unambiguous specification of how to accomplish some computational task in a finite number of well-defined steps. An algorithm is distinct from a computer program. An algorithm has a cost (the number of steps it will perform) for a task. Different algorithms for the same task may have different costs.

Wednesday: It has taken a while to get access to the video at school, RMTP protocol was not allowed through the firewall, thought with some work this has now been fixed. It has been great to access the video and work through the work at a pace where I could repeat sections and work through my notes. It is also interesting hearing myself. 

No comments: