Wednesday, March 4, 2015

COMP6021 Class 05.3



We looked at digitisation.

We considered quantisation of temperature and then temperature over time. We looked at how B&W images are digitized.


This video may also be of use

SOFT6008 Class 05.3

Students continued coding check sums for input validation. 

We will have to move on from this soon

SOFT6008 Class 05.2

I gave back the corrected exam solutions with feedback.

We looked at a solution to the question and examined some of the pitfalls and common errors. 

We decided that the exam will be held on Thursday 19 March during the 1300 class.  This will be a one-sheet exam. Student will be permitted to bring a single A4 sheet of notes to the exam. Students may not share sheets during the exam.

Students should think about what gave them trouble in Tuesdays exam and use that as a guide when filling up the one-sheet.

Tuesday, March 3, 2015

COMP6021 Class 05.2

I gave students two exam questions from past papers on LZW. Student worked on them alone, and then we worked out the answers on the board.

SOFT6008 Class 05.1

We will have an in-class exam in 2 weeks worth 40% of the module.

Today students did a sample exam.

COMP8035 Class 05.1

I met with some of the student to discuss their topics for the research paper but I didn't get to everyone. I outlined that students need to move beyond the "x is fab!" phase, and do some critical analysis.

I want student to decided on a research paper topic by the end of this we and get started on it.

I updated the schedule for the blog posts. The post expected in Week 08 is now due in Week 07

SOFT6002 Change Blindness

This site illustrates the issue of change blindness very well.

http://www.gocognitive.net/demo/change-blindness

What lessons can we draw from this?

Monday, March 2, 2015

COMP6021 Class 05.1 LZW



We looked at the Lempel-Ziv-Welch algorithm for encoding text

Thursday, February 26, 2015

SOFT6002 Week 04

We looked at Human Memory (slides: W05-L1) and Mental Models (W06-L1)

After coffee we went to the lab and examined three websites for usability issues.

SOFT6008 Class 04.4

I gave students a quick tour of Photoshop. Some basic Photoshop skills will be required for the assignment. Some students had fun with Photoshop.

We looked at the Mr. Spud Head example and I thought it wold be a good exercise for students to go make something similar. Understanding layers is key to getting that working. I forgot to point out that JPEG does not support transparency, so the images must be saved as PNG files.

COMP8035 Classes 04.1 & 04.2

I met with each student and gave feedback on the blog posts. Different students make different kinds of errors. So hopefully they can be avoided. The first of those posts isn't due until tomorrow. So there is time for corrections.

I discussed paper topics with each student.

Wednesday, February 25, 2015

COMP6021 Class 04.4 - tutorial

Students had very few questions so once we were done we left early

COMP6021 Class 04.3





We did two examples of Huffman coding with 8 symbols.

SOFT6008 Classes 04.2 & 04.3

Students continued coding checksum calculations. These will be incorporated into the assignment eventually.

Tuesday, February 24, 2015

COMP6021 Class 04.2

I planned to do exercises on generating UTF-8 and on Huffman coding. However the UTF-8 proved tricker than we expected, so we will do the Huffman in the next class.

We converted the following to UTF-8, but it took us a while to figure out how do deal with padding zeros.

Gemoji image for :cupid
1F498 
11110000:10011111:10010010:10011000 
f09f9298



Gemoji image for :couple
1F46B 
11110000:10011111:10010001:10101011 
f09f91ab




Gemoji image for :grinning
1F600
11110000:10011111:10011000:10000000 
 f09f9880


SOFT6008 Class 04.1

Apologies for the late start. My calendar led me astray and I obeyed.

We reviewed various JavaScript versions of the Luhn algorithm found online. Some we didn't like. 

From https://gist.github.com/DiegoSalazar/4075533 (modified by Colin slightly)

This code addresses the problem of strings of unknown length by starting at the end and counting down and keep track of what to do by toggling bEven. However we were initially puzzled by the (nDigit *= 2)  which is both a test and a statement.
function valid_credit_card(value) {
// The Luhn Algorithm. It's so pretty.
var nCheck = 0, nDigit = 0, bEven = false;
 
for (var n = value.length - 1; n >= 0; n--) {
var cDigit = value.charAt(n),
nDigit = parseInt(cDigit, 10);
 
if (bEven) {
if ((nDigit *= 2) > 9) nDigit -= 9;
}
 
nCheck += nDigit;
bEven = !bEven;
}
 
return (nCheck % 10) == 0;
}
This code was interesting because it used the fact that JavaScript can add an internet to a string and get a string. That's a small bit strange.  The expected test to see if the product of the *2 > 10 isn't there, because the digits will get added up anyway in the second part of the code.
  // Run through each single digit to create a new string. Even digits
  // are multiplied by two, odd digits are left alone.

  t = "";
  for (i = 0; i < r.length; i++) {
    c = parseInt(r.charAt(i), 10);
    if (i % 2 != 0)
      c *= 2;
    t = t + c;
  }

  // Finally, add up all the single digits in this string.

  n = 0;
  for (i = 0; i < t.length; i++) {
    c = parseInt(t.charAt(i), 10);
    n = n + c;
  }



This code handles odd and even length strings even though it starts at the beginning and words forward. The i % 2 == parity) test looks like our i % 2 == 0, except the desired value 0 or 1 is set beforehand, depending on whether the length is ever or odd. 

function checkLuhn(input)
{
  var sum = 0;
  var numdigits = input.length;
  var parity = numdigits % 2;
  for(var i=0; i < numdigits; i++) {
    var digit = parseInt(input.charAt(i))
    if(i % 2 == parity) digit *= 2;
    if(digit > 9) digit -= 9;
    sum += digit;
  }
  return (sum % 10) == 0;
}


The following examples we considered to be too clever and too cryptic. I pointed out that short clever code isn't always a good thing, because the programmer that comes after might not be able to understand it.

https://gist.github.com/ShirtlessKirk/2134376

http://stackoverflow.com/questions/12310837/implementation-of-luhn-algorithm

http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers#JavaScript

SOFT6002 Interesting Video & Article


Worth a look

This article is also worth a read
http://www.theatlantic.com/product/archive/2014/08/the-hamburger-menu-debate/379145/

Monday, February 23, 2015

COMP6021 Class 04.1

[No recording of today's class. Sound too bad]

We played Hangman to illustrate the point that letters in English do not occur with the same frequencies.  We looked at how compression can be used to represent information using fewer bits.


We looked at Huffman's algorithm for devising optimal variable length codes.

To be honest, the video I made below says it better than I did in class anyway. (I hope my best work isn't behind me!)

Video on Variable Length Codes



I gave students an exercise to complete in time for the next class.

Thursday, February 19, 2015

SOFT6002 Week 03

We discussed the assignment a bit and assigned students to groups. But it's not really a group project.

We covered the Ecological Theory of Perception (slides W03-L2) and Graphical Coding (W04-L1).

You should have two sets of slides per week. If you are missing any please let me know.

SOFT6008 Class 03.4

Attendance was poor today. I'm told there are some pressing social engagements this week.

Students worked on checksum calculations. We'll be another week at least at those. Perhaps even longer.

Someone figured out the French checksum calculation. It is different from how I described. So if you are tackling that, talk to me first.