Intro to Studying Comp Sci
(viewing version)
Studying Computer Science at UNSW
John Shepherd
(former Co-ordinator of Computer Science Program)
... Studying Computer Science at UNSW
- Nerd pride and some role models
- Some terminology and some jargon
- The Computer Science program
- But what's it like at the "coal face"?
|
Nerd Pride
What's a nerd?
A geeky guy with thick glasses, no life and a computer obsession?
Like this guy?
So why is "nerd" a derogatory term ... ?
... Nerd Pride
Because other people are jealous ...
- that you know more about computers than them
- that you can do fun stuff all day and get paid for it
- that you have more chance to change the world than they do
- that you are way more likely to be a millionaire by age 30 than them
For example ...
Famous Nerds #1
Both are called "The Father of X" ... who are they?
(only one of them is computer-related)
... Famous Nerds #1
|
|
John von Neumann
- 1933-1953: Professor of Mathematics
Princeton University
Institute of Advanced Studies
- developed idea of "stored program"
- developed "memory/cpu" architecture
(now called the "von Neumann architecture")
- first computer called "MANIAC"
- provided computational support
for Manhattan Project (US atom bomb)
- early champion of scientific computing
- sceptical of "high-level programming languages"
|
Famous Nerds #2
Who is the one who's not the ex-President?
... Famous Nerds #2
|
|
Grace Hopper
- Admiral in U.S. Navy
- Most famous woman in CS
- Invented ...
- the first compiler
- the COBOL language
- the term "bug" (allegedly)
|
... Famous Nerds #2
And here's the bug itself ...
Famous Nerds #3
The guy in the middle invented something you used today ... what?
... Famous Nerds #3
|
|
Doug Engelbart
- 1940's, trained as Electrical Engineer
- 1950's, worked at NASA Ames and SRI labs
- 1960's and 1970's, invented ...
- the mouse
- 2-dimensional display editing (e.g. Notepad)
- windows-based interfaces (e.g. KDE, fvwm)
- hypermedia and collaborative groupware
- etc. etc. etc.
- had 2nd host on ARPANET, set up & ran NIC
- currently running Bootstrap Inc.
|
... Famous Nerds #3
Photo circa 1963
Famous Nerds #4
How did this mild-mannered guy change the world?
... Famous Nerds #4
|
|
Tim Berners-Lee
- Invented the Web
- distributed hypertext
- linking heterogeneous documents
- a universal naming scheme (URL)
- Founder of W3C
- Now Professor at MIT
|
... Famous Nerds #4
Tim Berners-Lee's diagram of the "Web"
(from his proposal document, 1989)
Famous Nerds #5
You have probably used something he developed. Who is he?
... Famous Nerds #5
|
|
Marc Andreesen
- Co-founder of Netscape Communications
- Age 29, Silicon Valley "veteran", $$$$$
- 1992: Mosaic project at Uni of Illinois
- 1994: co-founded Mosaic Communications
- 1994: changed name to Netscape
- Current project: Loudcloud (instant custom Web-sites)
- Quotable quotes:
- "I don't want to be like Bill Gates"
- "Email is ultimately the killer app"
|
Famous Nerds #6
Arguably the most famous Nerd of the 90's ... what did he write?
... Famous Nerds #6
Linus' Linux
- wanted O/S for his PC
- preferred Unix to Windows
- wrote own version of Unix
- released source code 1991
- the rest is history ...
|
|
Linus Torvalds
- native of Helsinki, Finland
- mid 1980's ... CS undergrad
- late 1980's ... CS Masters
- early 1990's ... wrote Linux
- late 1990's ... Open Source leader
- currently working for Transmeta
(Silicon Valley startup; new Crusoe chip)
- favourite beer: Guinness (on tap)
|
Who's the next Linus? ... One of you?
Famous Nerds #7
What does all of this equipment add up to?
UNSW United Won
the World Robocup2000 Championship!
The Team: |
Bernhard Hengst, Son Bao Pham, Darren Ibbotson |
The Scores: |
Semi Final |
UNSW: 12, Carnegie-Mellon: 1 (UNSW own goal) |
Grand Final |
UNSW: 10, Laboratoire Robotique de Paris: 0 |
Overall |
UNSW: 48, Other teams that we played: 1 |
Famous Nerds #8
And, of course, how could we forget ... ?
... Famous Nerds #8
|
|
William H. Gates
- Chairman, Microsoft Corporation
- Chief Software Architect, Microsoft
- World's richest man ($80 billion)
- Contributions to Computer Science
- Basic? ... (existed in mid-60's)
- MS-DOS? ... (bought it from Tim Paterson)
- Window-based GUIs? ... (copied from Apple)
- Explorer? ... (bought it from Spyglass)
- the Internet? ... (hah! he wishes)
- Technical contributions == ???
|
Terminology and Jargon
Information Technology
- overall term covering theory, practice and application
of information processing via digital computers
Information Systems
- application of IT to businesses/organisations
(how to apply packages)
Computer Science
- foundations and technological underpinnings of IT
(how to build packages)
... Terminology and Jargon
Training
- being taught specific skill-set for current products/packages
- knowledge that dates quickly as technology changes
- the kind of thing they do at TAFE and industry training-courses
Education
- being taught foundations on which products/packages are based
- knowledge that dates far less rapidly
(foundations change slowly)
- the kind of thing we do here at UNSW
- afterwards, we expect that you can train yourself
However, not just theory ... we do illustrate ideas by specific technologies.
... Terminology and Jargon
Course
- a single-semester (14-week) unit of study (aka "subject")
Program
- a collection of courses that make up a thorough study of an area
Degree
- the piece of paper (qualification) that you get when you finish a course
The Comp Sci Program
Foundations (1st year)
- introduction to programming and computer systems, mathematics
Core (2nd year)
- algorithms, data structures, computer hardware, software construction
Specialisations (3rd year)
- artificial intelligence, cryptography, databases, graphics, ...
- compilers, computer design, networks, operating systems, ...
- advanced algorithms, computation theory, software engineering, ...
... The Comp Sci Program
Computer Science has elective slots where you can study other areas.
Each year is composed of 8 courses (4 in each semester).
1st year |
| 2 Computing, 3 Maths, 3 electives |
2nd year |
| 4 Computing, 4 electives (Info Sys, COMP3) |
3rd year |
| 5 Computing, 3 electives (can be all Computing) |
What are COMP courses really about?
Many COMP courses have a number of goals:
- for you to learn about some aspect of computer technology
- for you to understand the theory/principles behind the technology
- for you to develop skills in using this technology
- for you to further develop your general problem-solving skills
- for you to learn how to learn about new technologies like this
What are our degrees really about?
Our overall goal is for ...
But what languages/systems do we learn?
Languages and Systems
We use languages/systems appropriate for the subject material, e.g.
- introductory programming: Haskell, C, Java
- software construction: Perl, Unix shell, HTML
- databases: SQL, Oracle, Java, JDBC
- artificial intelligence: Prolog
- networks: Java ... operating systems: C
Typically, we use the state-of-the-art (or research) technologies.
... Languages and Systems
Languages and pre-requisite structure of the CS program
How are courses run? What do we actually do?
Cast of Characters
Students
- should be at University because they are interested and want to learn
- required to perform in exams and assignments to demonstrate learning
Academic Staff
- should be at University because they are interested and want to learn
- required to do research, teaching, administration
... Cast of Characters
General Staff
- provide invaluable support for academics and students (under pressure)
- School Office, Computer Support Group, Admin Staff, Technicians, ...
- some advice: you can never be too nice to General Staff ...
University Admin
- some might say "a necessary evil"
- BUT see comments for General Staff ...
At the "coal face"
Lectures
- we present the "theory" via lots of on-line examples
(watch, listen, learn)
Tutorials
- clarify theory, practice abstract problem solving
(design skills)
Lab Classes
- write a small program, with the tutor there to help you
(practical skills)
... At the "coal face"
Assignments
- "write a program to do XYZ" ... you take home and solve on computer
Practical Exams
- "write n small programs" ... you have 2-3 hours to finish
Written Exams
- questions on a selection of topics ... multi-choice, programming, written
Learning Environments
Place |
Stude:Staff Ratio |
Hours/Week |
Lectures |
500 : 1 |
3 |
Tutorials |
15 : 1 |
1 |
Lab Classes |
15 : 1 |
2 |
Assignments |
1 : 0+ |
3 (in bursts) |
Self Study |
1 : 0+ |
?? |
Note: this is a substantial time commitment
and does not mix well with part-time work;
consider a 3/4 load if working >10 hours/week
How do you know you've succeeded?
You know you've succeeded when ...
- you leave the exam saying "Yes! ... Easy."
- you start adding bells and whistles to your assignment, a week before it's due
- you make suggestions to your tutor on how to improve their solution to a tough tute question
- your start-up IPO's and the share price increases 500% in the first hour :-)
... How do you know you've succeeded?
Don't ever say "I just want to pass this subject" ...
Why not?
- a mark of 50 means that you know only half of the material
- most courses lead onto others, so you've got shaky foundations
There are benefits available to people who maintain average > 65
You will have carte blanche of 4th-year thesis topics if your average > 80
How to succeed in CS
Practice, practice, practice
Explore, think, create
... and install Linux on your PC ...
How to fail in CS
Some sure-fire strategies for making sure you fail your course ...
- turn up to tutes/labs without reading the questions first
- don't even bother to attend tutorials or lab classes
- copy assignment solutions from other students
- don't practice before a Prac Exam
- spend the revision week in the Uni Bar
- assume that a fake medical certificate will get you a 2nd exam
Hacking into computer systems may get you respect from peers but ...
How to annoy people in CS
You won't fail by doing these, but you'll annoy everyone in CSE ...
- spend the lectures chatting on your mobile phone
- download 100's of MB of GIFs and print them in the labs
- spend hours on the lab workstations in ICQ chat rooms
- go around telling everyone that Bill Gates is great innovator
Want to know more?
Use the Web ... starting at http://www.cse.unsw.edu.au/
Course web pages are called e.g. http://www.cse.unsw.edu.au/~cs1011/
Most staff members have their own web pages ... which can be revealing ...
E.g. jas ... databases, teaching, beaches, beer, babies, Bay Area ...
Conclusion
Enjoy your computing studies at UNSW!
Produced: 4 Dec 2000