Document Sample

```					    [L8] Be able to understand and select data types, design data structures and
program structures, and implement algorithms, for a program to meet specified
requirements; and demonstrate an understanding of user interface evaluation.
o Understand the properties and limitations of data types.
 For example, this could be done in the context of representing
numbers (binary, decimal and hexadecimal, floating point),
characters and strings, or images (e.g. 8-bit vs. 24-bit images).

Classroom Activities & Games
   CS Unplugged Activity 1 – Binary Numbers

   MaTHmaniaCS Lesson 1: Binary Numbers

   CS4FN has the following online activities/articles that demonstrates concepts
in binary and Gray code:
1. Locking a Dead Man’s Chest
2. The French Peasant's Lock and Gray Code

   Try also a binary game from Cisco at
http://forums.cisco.com/CertCom/game/binary_game_page.htm

   Wolfram has a demonstration of counting in binary at
http://demonstrations.wolfram.com/CountingInBinary/

   Steven Huss-Lederman has an activity for students on converting base 2, base
8, base 10 and base 16 numbers at
http://www.cs.duke.edu/csed/pltl/exercises/lessons/3/computers.pdf

   raft has a few resources that be used to teach concepts in binary numbers
and related topics below:
1. Binary Birthday Bracelet: Learning about binary numbers (Base 2)
incorporates number sense, exponents, and the conversion of
numbers between different bases.
2. Binary Bracelets for the 4th of July: Learning about binary numbers
(Base 2) builds an understanding of number sense, exponents, and
different base number systems
3. Binary Dots: This simple game creates an opportunity for your
students to practice counting in binary.
4. Binary Weaving: In this activity, students use the ASCII alphabet to
encode a message into woven band, and then other students can
decode the information.

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
Online Guides
   Wikipedia’s Numeral System page covers many of the bases numbers can be
represented in at http://en.wikipedia.org/wiki/Numeral_system

   For a complete webpage dedicated to Hexadecimal numbering, visit
http://intuitor.com/hex/index.html

   Ken Koehler has tutorials in related topics below:
Theory
3. Unsigned and Signed Integers
4. Floating Point Arithmetic
5. ASCII
Sample Problems
1. Practice with Base 2 and 16 Conversions
2. Binary Addition and Substraction Problems
3. Problems in Number Formats
4. Practice with Floating Point Numbers
5. ASCII Translation

   www.theteacher.info has a few free chapters from their textbook in A Level
Computing with some online tests for the modules at locations below:
1. Bits, nibbles, bytes and codes
Available tests: Test 1, Test 2, Test 3, Test 4, Test 5, Test 6, Test 7
2. Negative Binary Numbers
Available tests: Test 1, Test 2, Test 3, Test 4, Test 5

   ComputingStudents has sections on number systems at locations below:
1. Number Systems
2. Binary Numbers

   Do I.T. has a free course in IT that covers topics in Information, Number
Systems, Codes, and Computer Arithmetic at
http://doit.ort.org/course/inforep.htm

   Samuel A. Rebelsky has an introduction to the Binary numbering system
along with some useful operations such as adding, multiplying and division at
binary.html

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
   Joe Carthy offers a very clear explanation of representing numbers at
http://www.csi.ucd.ie/staff/jcarthy/home/FirstYear/Comp1001-L4-L5.pdf

   Joseph Mack covers concepts of representing data in Python to a great detail
in a section on programming for middle and high school students at the
following locations:

1. Introduction, Primitive Data Types
2. Variables, Conditionals, Iteration, Functions, Modules, Structured
Programming
3. Real Numbers, Square Roots, Numerical Integration

Visual Simulations & Demonstrations
   An applet that demonstrates how one can count in different numerical bases
other than 10 (binary, base six, decimal, BCD, or hex), download the applet at
http://intuitor.com/counting/

Videos
   MIT OpenCourseware lecture one in ‘Introduction to Computer Science and
Programming’ by Prof. Eric Grimson and Prof. John Guttag covers topics in
data types, operators and variables at

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
[L8] Be able to understand and select data types, design data structures and
program structures, and implement algorithms, for a program to meet specified
requirements; and demonstrate an understanding of user interface evaluation.
o Design programs to manipulate data stored in arrays or lists.
 These programs might use simple algorithms such as linear
and binary search.

Generic Resources

 A ‘Dictionary of Algorithms and Data Structures’ by Paul E. Black is at



Online Guides
   Tutorials by several developers from University of Saskatchewan cover
various searching and sorting algorithms in Computer Science as below. :

1. Breadth First Search - BFS
2. Depth First Search - DFS
3. Binary Search
4. Linear Search
5. Iterative Deepening Search - IDS
6. An Introduction to Sorting
7. Bubble Sort
8. Quick Sort
9. Selection Sort
10. Recursion

The above tutorials also come with demonstration applets that can be
run in Java enabled browsers.

   A complete set of lecture notes in Data Structures by Steven Skiena can
be viewed at http://www.cs.sunysb.edu/~skiena/214/lectures/

   A complete set of lecture notes in Data Structures by Dave Bacon can be
viewed at
http://www.cs.washington.edu/education/courses/326/07wi/lectures/cal
endar_wi07.htm

   Richard Ladner’s lecture notes in the course on Data Structures has the
following introductory materials:

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
1.   Introduction to Data Structures
2.   Fundamentals of Data Structures
3.   Sorting: Insertion Sort, Mergesort, Quicksort
4.   Pointers and Lists
5.   Trees
6.   Graph Algorithms, Graph Search
7.   Hashing
8.   See all lecture notes here

   Laurent Haan has an incomplete tutorial in data types and structures at
http://www.progressive-coding.com/pdf/datatypes.pdf

   View the video lecture by Larry Snyder and Mel Oyler on binary search at
http://www.cs.washington.edu/education/courses/100/99au/lectures/as
x/14-1.asx

   A complete course in Data Structures created by Paul Hilfinger discusses
fundamental dynamic data structures, including linear lists, queues, trees,
and other linked structures; arrays strings, and hash tables. Storage
management. Elementary principles of software engineering. Abstract
data types. Algorithms for sorting and searching. Introduction to the Java
programming language. Click to view the site for the lecture archive:
http://webcast.berkeley.edu/course_details.php?seriesid=1906978444

   Lecture notes and demonstrations of concepts from lectures in Data
Structures and Algorithms by Kevin Wayne and Robert Sedgewick can b
viewed at
http://www.cs.princeton.edu/courses/archive/fall08/cos226/lectures.ht
ml

   Sorting and searching algorithms are discussed with theory and exercises
at David Schmidt’s course in Data Structures at
http://people.cis.ksu.edu/~schmidt/CIS200/ch8V11.sort.search.html

   Some of the popular algorithms are explained in the following resources
from DENISON by Jessen Havill at locations below. Solutions to some of
these are shown in brackets written in Python:
1. Simple Iterative Algorithms (sum 1..n, sum array, array division)
2. Bubble Sort and Minimum of 1..n (bubble, bubbleImproved)
3. Recursive Algorithms (product(a,b); power(a,n); hanoi; see an
animation of Towers of Hanoi)
4. Maze Algorithms using Stacks (BFS: bfs, DFS: dfs searches)
Additional files required for Maze: sq.py, maze.dat

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
5.   Permutation Checking Algorithm
6.   Binary Search Tree Algorithms (create, sort, insert values)
7.   Python code for sequential and binary search
8.   Python code for merge sort
9.   Some long lists for sorting are here

   See an animation of the Towers of Hanoi algorithm at
http://users.encs.concordia.ca/~twang/WangApr01/RootWang.html

   You can try out the Towers of Hanoi algorithm yourself with feedback at
http://mazeworks.com/hanoi/hanoi.htm

   Sorting algorithms in Visual Basic are explained in detail by Rod Stephens
at http://www.vb-helper.com/tut1.htm

   www.theteacher.info has a few free chapters from their textbook in A
Level Computing with some online tests for the modules at locations
below:

Binary Trees
Available tests: Test 1, Test 2, Test 3, Test 4, Test 5

Classroom Activities & Games
   Steve Wolfman has a KLA activity for students understand the basic structure
of binary trees, have a feel for how binary tree computations work locally: as
recursive processes executed on a single node, "trusting" that child results
are correct and independent of parent computations, all on a tree with a
global form that is hidden from students, recognize that the typical graphical
representation of binary trees is just one of many possible abstractions for
understanding the trees. View here at
http://people.cs.ubc.ca/~kla/index.php?page=Human_Binary_Tree

   Dan Garcia and Emilio Barzini have designed a KLA activity which is an entire-
class activity to demonstrate the topological sort algorithm and the concept
of cycle detection. Students play the role of nodes and a single arm as a
directed edge, and the instructor simulates the topological sort algorithm on
this human graph. When the algorithm terminates, everyone either has a
labelling or there are cycles in the graph. View here at
http://people.cs.ubc.ca/~kla/index.php?page=Mob_Topological_Sort


Videos

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
[L8] Be able to understand and select data types, design data structures and
program structures, and implement algorithms, for a program to meet specified
requirements; and demonstrate an understanding of user interface evaluation.
o Understand and design programs with methods with parameters and
return values (or functions, procedures or subroutines as appropriate
to the context).

Online Guides

   Joseph Mack covers concepts of Subroutines, procedures, functions and
definitions in Python to a great detail in a section on programming for middle
and high school students at
http://www.austintek.com/python_class/python_class.sect_2.html



http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
   [L8] Be able to understand and select data types, design data structures and
program structures, and implement algorithms, for a program to meet
specified requirements; and demonstrate an understanding of user interface
evaluation.
o Be able to understand the concept of persistent data (such as files or
a database) and program structures for interacting with them.

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
[L8] Be able to understand and select data types, design data structures and
program structures, and implement algorithms, for a program to meet specified
requirements; and demonstrate an understanding of user interface evaluation.
o Understand and apply Human-Computer Interaction principles
(usability, design methodologies and models of interaction). [note:
principles would normally be applied to the evaluation of existing
interfaces, although students could design and evaluate their own
simple interfaces]

Textbooks

 Jacon Nielsen’s textbook ‘Homepage Usability: 50 Websites Deconstructed’
covers design guidelines, convention usage, screen real estate, navigation,
content presentation, search facilities, links, graphics and animation,
advertising, news, customization, and customer feedback.

This book can be purchased either via amazon.com at
http://www.amazon.com/exec/obidos/ASIN/073571102X/ref=nosim/useitco
musablein for approximately \$US50 or

http://www.fishpond.co.nz/Books/Computers/Internet/Web_Page_Design/9
780735711020/?cf=3&rid=594647295&i=1&keywords=Homepage+Usability+
nielsen at \$NZ97

   Sun Microsystems has a comprehensive and free online textbook Java Look
and Feel Guidelines dedicated to GUI development using Java at
http://java.sun.com/products/jlf/ed2/book/

http://java.sun.com/products/jlf/at/book/

   A guide to Apple User Interface Guidelines at
http://developer.apple.com/mac/library/documentation/UserExperience/Co
nceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html#//apple_ref/doc/uid/
TP30000894-TP6

http://developer.apple.com/mac/library/documentation/UserExperience/Co
nceptual/AppleHIGuidelines/OSXHIGuidelines.pdf

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
Classroom Activities & Games
   The book site for “Interaction Design: Beyond Human-Computer Interaction”
has an activity Using an interactive sketching tool that explains why creating
storyboards is a very useful, low cost design technique, allowing the
envisaged use of a new design to be quickly communicated and evaluated.
This interactivity will introduce you to DENIM, an interactive sketching tool
developed at the GUIR at the University of California at Berkeley. See the
complete site with instructions at http://www.id-
book.com/firstedition/interactive_denim.htm

   The book site for “Interaction Design: Beyond Human-Computer Interaction”
1. Chapter Summaries from the book (includes web resource links)
2. Powerpoint slides accompanying each chapter

   W3Schools.com has a tutorial in Javascript at http://www.w3schools.com/js/

   Gary Perlman has a website that explains "User Interface Usability Evaluation
with Web-Based Questionnaires” at
http://oldwww.acm.org/perlman/question.html

Activities relating to the above evaluation technique can be viewed at the
book site for “Interaction Design: Beyond Human-Computer Interaction” at
http://www.id-book.com/firstedition/interactive_perlman.htm

   Juan Gilbert has an introductory tutorial in Javascript at
http://www.eng.auburn.edu/~gilbert/JavaScript/index.html

   www.theteacher.info has a few free online tests that accompanies their
textbook in A Level Computing at locations below:

1.   A form-based interface
2.   Good interface design
4.   Forms, data entry, validation and verification.
5.   Command Line Interface



http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009
Theory

   James Hom’s ‘The Usability Methods Toolbox‘ is a collection of methods and
techniques used in usability evaluation at http://usability.jameshom.com/

Online Guides

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

    Juan Gilbert has a course in ‘User Interface Design and Evaluation’ which
covers basic concepts, evaluation tasks, assignments and more at
http://www.eng.auburn.edu/~gilbert/Comp6620/

   MIT Open Courseware in Electrical Engineering and Computer Science has the
following relevant lecture notes, assignments and solutions, projects and
exams by Robert Miller

1.   Selected lecture notes
2.   Projects (no examples)
3.   Assignments and solutions
4.   Exams (no solutions)

   The User Interface Design Group develops and studies new user interface
techniques

   US Department of Health and Human Services has a publication that provides
guidelines for web design and usability at
http://www.usability.gov/pdfs/guidelines.html#1

   Seagate Technology has a web style guide at
http://www.seagate.com/docs/pdf/branding/webStyleGuide.pdf

Visual Simulations & Demonstrations

Videos

http://www.cosc.canterbury.ac.nz/tim.bell/dt/
10 December 2009

```
DOCUMENT INFO
Shared By:
Categories:
Stats:
 views: 27 posted: 7/12/2011 language: English pages: 11