Professional Documents
Culture Documents
Inft1004 Lec1 Introduction Small
Inft1004 Lec1 Introduction Small
TUESDAY
WEDNESDAY THURSDAY
FRIDAY
8:00 - 9:00 9:00 - 10:00 10:00 - 11:00 11:00 - 12:00 12:00 - 1:00 1:00 - 2:00 2:00 - 3:00 3:00 - 4:00 4:00 - 5:00 5:00 - 6:00 6:00 - 7:00
3
INFT1004 Tut 5
ICT3.44
David
Consultation
ICT3.20
INFT1004 Tut 2
ICT3.37
INFT1004 Tut 5
ICT3.44
Ilung
INFT1004 Lecture
GP 201
INFT1004 Tut 3
ICT3.44
INFT1004 Tut 6
ICT3.44
Ilung
LECTURE TOPICS
My Contact Details
Course coordinator / Lecturer / Tutor
Keith Nesbitt
Mid Semester Recess Period More Picture Techniques Sound and Arrays More Sound and Arrays Program Design and Strings Lists, Files and Modules Web, Representations, Steganography Turtles and Other Classes Revision and Look Ahead No formal classes - MUST be available normal & supplementary period
Assignment due 3:00 Tuesday May 21 Practical Test 2 in Lab class Practical Test 1 in Lab class
keith.nesbitt@newcastle.edu.au ICT3.20 www.knesbitt.com Perception and cognition Visualisation / Sonification Computer games Virtual reality Algorithms and Patterns Creativity
5
Research Interests
Lecture Topics and Lab topics are the same for each week
Tutor
Ilung Pranata ilung.pranata@newcastle.edu.au ICT3.17
Tutor
David Cornforth david.cornforth@newcastle.edu.au
Research Interests
Research Interests
Data Mining Neural Networks Evolutionary Computation Health informatics Complex Systems Multi agent system
7
Assessment
Practical test
(in lab class week 5) worth 15% practice test in week before
Practical test 1 15%
11
Assessment
Practical test
(in lab class week 5) worth 15% practice test in week before
Practical test 1 15%
Assessment
Practical test
(in lab class week 5) worth 15% practice test in week before
Practical test 1 15% Assignment 20% Practical test 2 15%
Programming assignment
Practical test 2 15%
(due by start of week 11 lecture) worth 20% students may work in pairs for this assignment
Practical test 2
(in lab class week 9) worth 15%
Practical test 2
(in lab class week 9) worth 15%
12
13
Assessment
Practical test
(in lab class week 5) worth 15% practice test in week before
Practical test 1 15% Assignment 20% Practical test 2 15%
Assessment
Practical test 1 15% Assignment 20% Practical test 2 15%
Programming assignment
(due by start of week 11 lecture) worth 20% students may work in pairs for this assignment
Practical test 2
(in lab class week 9) worth 15%
Final exam
worth 50% make sure you ve available for the whole of the exam period (normal and supplementary)
14
15
Text Book
Introduction to Computing and Programming with Python (3rd edn) Mark Guzdial & Barbara Ericson (Pearson, 2013)
Text Book
Every Week Read and understand the explanations. Complete the examples and activities. Be sure you have a comfortable command of the language features
16
17
Myth Busters #1
I don't need a Textbook
Myth Busters #2
I am a Teacher
The lectures will sometimes use completely different examples, to offer you alternative explanations of the topic. Therefore you should both attend the lectures and read and work through the book.
18
No - I am a Lecturer If you look in a mirror you will see the teacher. The textbook is very handy to help this process.
19
Myth Busters #3
Email works well
Myth Busters #3
Email works well
20
21
Myth Busters #3
Email works well
Blackboard
Note - lectures and tutorial information is here. It contains weekly lab notes and exercises (even for week 1) - It contains lecture slides
This is not an online course although many materials will be available on Blackboard. It is assumed that you are attending lectures and labs. You should see me during these times.
You will submit assignments through blackboard (Cover sheets will be submitted as hard copy). It contains an electronic copy of the course outline
22
23
Blackboard
Course outline
Note the bits about handing in work late. Note the bits about what to do if your work is affected by illness or other acceptable adverse circumstances. (You will follow the same process for all assessment items) The lecture topics in the course outline are indicative only and may vary so you should check the course Blackboard website weekly for course updates, bulletins, and additional resources
24 25
Problem solving
Making a piece of toast What are the steps involved? (sequence) Are there decisions to make? (selection) What if you work in a breakfast bar and need to make 10 pieces of toast?
(iteration)
31
How to Surf ?
1. Paddle really fast when a wave is coming. 2. Stand up when you have caught the wave. 3. Turn a bit, get tubed, do some air etc. 4. If the wave closes out then jump off!
33
How to Surf ?
Who feels like they can surf now? Well programming is just like this I can tell you how to do it and it might even seem pretty easy (its not) - YOU NEED TO PRACTICE!
34 35
Programming
Programming is deciding on a set of instructions that will get the program to do the required job, then writing those instructions in the form required by the computer (recipe). It often also involves a debugging process intended to eliminate problems in the program (which can sometimes be a frustrating and lengthy experience). You cannot learn to program by reading and watching; it takes incredible amounts of practice. Programming courses almost always take more time per week than any other courses.
36
Programming
Programming is deciding on a set of instructions that will get the program to do the required job, then writing those instructions in the form required by the computer. It often also involves a debugging process intended to eliminate problems in the program (which can sometimes be a frustrating and lengthy experience). You cannot learn to program by reading and Implement Test the code Analyse the Design the watching; it takes incredible amounts of the practice. and document solves problem problem solution the code and meets standards Programming courses almost always take more time per week than any other courses.
37
Programming
Programming is deciding on a set of instructions that will get the program to do the required job, then writing those instructions in the form required by the computer. It often also involves a debugging process intended to eliminate problems in the program (which can sometimes be a frustrating and lengthy experience). You cannot learn to program by reading and watching; it takes incredible amounts of practice. Programming courses almost always take more time per week than any other courses.
38
Programming
Programming is deciding on a set of instructions that will get the program to do the required job, then writing those instructions in the form required by the computer. It often also involves a debugging process intended to eliminate problems in the program (which can sometimes be a frustrating and lengthy experience). You cannot learn to program by reading and watching; it takes incredible amounts of practice. Programming courses almost always take more time per week than any other courses.
39
Traditional or object-oriented
Traditional programming a program is a long sequence of instructions, often involving choice and repetition.
PROGRAM Triangle_Area IMPLICIT NONE TYPE triangle REAL :: a, b, c END TYPE triangle TYPE(triangle) :: t PRINT*, 'Welcome, please enter the& & lengths of the 3 sides.' READ*, t%a, t%b, t%c PRINT*,'Triangle''s area: ',Area(t) CONTAINS FUNCTION Area(tri) IMPLICIT NONE REAL :: Area ! function type TYPE(triangle), INTENT( IN ) :: tri REAL :: theta, height theta = ACOS( (tri%a**2 + tri%b**2 - tri%c**2) / (2.0*tri %a*tri%b) ) height = tri%a*SIN(theta); Area = 0.5*tri%b*height END FUNCTION Area END PROGRAM Triangle_Area
Traditional or object-oriented
Traditional programming a program is a long sequence of instructions, often involving choice and repetition.
PROGRAM Triangle_Area IMPLICIT NONE TYPE triangle REAL :: a, b, c END TYPE triangle TYPE(triangle) :: t PRINT*, 'Welcome, please enter the& & lengths of the 3 sides.' READ*, t%a, t%b, t%c PRINT*,'Triangle''s area: ',Area(t) CONTAINS FUNCTION Area(tri) IMPLICIT NONE REAL :: Area ! function type TYPE(triangle), INTENT( IN ) :: tri REAL :: theta, height theta = ACOS( (tri%a**2 + tri%b**2 - tri%c**2) / (2.0*tri %a*tri%b) ) height = tri%a*SIN(theta); Area = 0.5*tri%b*height END FUNCTION Area END PROGRAM Triangle_Area
Object-oriented programming consists of lots of objects (things), each of which can have its own little sequences of instructions.
Picture width height Picture width height Picture width height
Object-oriented programming consists of lots of objects (things), each of which can have its own little sequences of instructions.
Picture width height Picture width height Picture width height
40
41
10
Python is object-oriented
Object-oriented programming consists of lots of objects (things), each of which can have its own little sequences of instructions. Python is object-oriented (well be dealing with objects right from the start)
42
43
pLecturer
Some are easy to learn; others are widely used professionally; others are for very specific purposes . .
44 45
11
which includes lots of features for programming with pictures and sounds
46
47
Downloads
You can download JES (ver 4.3) and related bits and pieces from the Media Computation site at Georgia Tech, where the textbooks authors work http://code.google.com/p/mediacomp-jes/ Its all pretty easy to install (Windows or Mac) More detail is given on the notes for week 1
command area program area
JES
48
mac version
49
12
program area
program area
command area
50
command area
53
13
y x
54
x=y
55
x=y
57
14
58
59
60
61
15
Exploring pictures
You probably still have file1 and pic1; if not, go back and get them again (see the slide called JES and objects) explore(file1) JES knows that this is a file, and cant be explored explore(pic1) See how the explore tool lets you check out each individual pixel of a picture
62
getPixel
pix = getPixel(myPic, 7, 7)
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
65
16
67
Exploring Sounds
file2 = pickAFile() This time pick a .wav file try ThreeWords.wav sound2 = makeSound(file2) print(sound2) explore(sound2) print(getSampleValueAt(sound2,14193)) setSampleValueAt(sound2,14193,0) explore(sound2)
Exploring Sounds
file2 = pickAFile() This time pick a .wav file try ThreeWords.wav sound2 = makeSound(file2) print(sound2) explore(sound2) print(getSampleValueAt(sound2,14193)) setSampleValueAt(sound2,14193,0) explore(sound2)
This is just a taste of things; well explain it more later
68
69
17
Weekly Notes
Every week, in addition to the lecture slides and occasional demo programs, there will be a set of notes. These will explain whats to be done in the lab class, and give you any additional information we think you might require. Youll need to do a lot of your programming at home. The textbook tells you how to get hold of the software well be using, but theres a simplified set of instructions in this weeks notes.
70
Read through chapters 1 & 2 of Guzdial & Ericson: Read my notes, (on blackboard), which correct or comment on things the textbook says
Dont just read the examples from Guzdial & Ericson; do them Have a go at the problems at the end of each chapter
71
Myth Busters #4
Uni is just a place to party
You are strongly advised to bring a USB drive to the labs, so that you can transfer your programming work between the lab, other computers at uni, and home
It's good to have fun. But you need to work hard. I would advise you work hard first and play after the work is done (its hard to catch up get ahead) Dates on the Calendar are much closer together than they seem.
72
73
18