SE250:March 6

From Marks Wiki
Jump to navigation Jump to search

Announcement

The First SESA Annual General Meeting

What: SESA AGM

When: Thursday, 6th of March at 12pm. (Just after SE251 Lab)

Where: 5th floor Common Room, Computer Science building. (Just take the lifts near the Compsci labs i.e. GTL to the 5th floor. Directions to the common room will be displayed on the 5th floor.)

If you would like to continue being a SESA member this year then please come along and sign up for 2008. Other issues that will be covered are:

Election of treasurer (A 2nd year SE)

• A review of events this year.

• Frequency of club meetings.

• SE t-shirt.

If you can't make it to the AGM and would still like to be a member then just contact me.

Hope to see you all there.

Cheers,

Umang Parikh

Founding Member of SESA


Agenda

SESA Membership::Visit http://www.sesa.org.nz/user/register to be a member

  • Discuss how to use emacs - tutorial
  • Overview of the course topics --Mabd065 10:23, 8 March 2008 (NZDT)

Minutes

UoA Engineering 
SOFTENG 250
Meeting 3 - Course Expectation Overview, EMACS Tutorial
March 6, 2:05pm

Course Overview:

  • Every week's lab will lead to introduction of new material for the week
  • Compilation of all the resources (links, thoughts, talk etc.) and contribution to the HTTB would be sufficiently cover whatever would be asked in the test and exam
  • A slightly deeper look into the content to be covered:

Lab 1 : Introduction to C, simple loops, concept of measurement

Lab 2 : Pointers and arrays

Lab 3 : Array based lists

Lab 4 : Hashing

Lab 5 : Binary search trees

Lab 6 : Balanced binary trees

| MID SEMESTER BREAK |

Lab 7 : State-space search

Lab 8 : Parsing

Lab 9 : ??

Lab X : ??

(course schedule subject to change)

- "Big-O" concept would be covered in the weeks of Labs 3 through to 7

[ FIRST HALF OF SEMESTER 1 ]

ARRAY BASED LISTS

  • Are the most common and easy form of structuring data given that we know the number of items
  • Can have 0 or more elements/items/entities
  • We are interested in managing lists when we DON'T know what the upper limit => lists that can deal with large numbers
  • In a nutshell >> Array based list is a memory block with 'Reference' at the start, a 'Used space' and a 'Free space'

LINKED LISTS

  • Made of cells/blocks that are linked together - store new value with link to saved value
  • Have a lot of reference pointers

HASH TABLES / HASHING

  • Have a MAP structure compared to the the array like structure of lists
  • Has keys to find data (eg. Map of student ID from student database)
  • Is quick in finding data
  • Hash functions:

- Introduce 'randomness'

- Meausure 'randomness'

- Cover statistical and probability theories and Entropy

  • In a nutshell >> Hash tables are a combination of arrays with linked lists

BINARY SEARCH TREE

  • Has a cell with 2 elements and a pointer "inbetween" and the first cell branches of something like a family tree
  • Built on the notion of ordering (left-right ordering)
  • Is quick in searching data
  • Is a common data structure type
  • Is most efficient - minimum time, minimum resources

[ SECOND HALF OF SEMESTER 1 ]

PARSE TREE

  • Commonly used for representing structure of computer programs
  • User has quick access to all components
  • Converts text to a something that is easier to manipulate

STATE SPACE SEARCH

  • Very large implicit graph (eg. map for a puzzle like sudoku or game like chess)
  • Is made of 2 main components:

- Node = state of problem

- Children = states that are 1 move/step away

--- 25 minute nutshell of course content ---

!! Arrays and Pointers will be covered next Tuesday (11 March) onwards

GNU EMACS Tutorial

  • Helpful resource for setting up useful software related to SOFTENG250
  • Screencast on creating installing EMACS available (note: Shockwave player required to view the screencast)
  • An initial configuration of EMACS is required:

- Under OPTIONS tab, folllowing features are useful:

-- Active region

-- Highlighting

-- Parantheses matching

- Under CUSTOMISE:

-- Shell file name (for windows: change to >> C:/cygwin/bin/bash.exe

  • The editor is designed for programmers - has built in language tools and options
  • Has some naming conventions:

- C- : Hold down CTRL key

- M- : Hold down ALT (meta) key

- M-/ : Expands dynamic abbreviation (press the / key while ALT is held down, OR press and release ESC, then press the / key)

- TAB : Indents current line

- C-g : to Quit or Revert back to normal

  • Example of compiling a file:
-gcc -g -o demo demo.c && ./demo

-gcc : GNU C Compiler

-g : Enables debugging

-o : Output to

demo : Name of output program

demo.c : Source file

  • Help < Tutorial - mainly obsolete
  • C-hr - for complete manual
  • Has lots of operations for text
  • Tools < Version Control - good for reviewing changes
End of Meeting

Taken by State4PlasmaTalk 00:39, 7 March 2008 (NZDT)

Minor Edits and checking by ChineselegolasTalk 00:57, 7 March 2008 (NZDT)

Corrections

  • In terms of Binary Search Trees I think the given note is wrong. Binary trees are a value "in between" 2 pointers which point to the previous value and the next value. Please comment. Rbha033 13:21, 16 April 2008 (NZST)