Welcome to the Computer and Information Technology program - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Welcome to the Computer and Information Technology program

Description:

I prefer 'Dave' or 'Dr. Dave' I'm the director of the MCIT program ... Money is a necessity. Being rich isn't a necessity (but it sure is nice) ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 33
Provided by: davidma
Category:

less

Transcript and Presenter's Notes

Title: Welcome to the Computer and Information Technology program


1
Welcome to the Computer and Information
Technology program
  • http//www.cis.upenn.edu/matuszek

2
Who am I?
  • David Matuszek (muh-TOOZ-ik)
  • I prefer Dave or Dr. Dave
  • Im the director of the MCIT program
  • Im here to teach, not to do research
  • My most important courses are CIT 591 and CIT 594

3
Who are you?
  • Most of you are in the new MCIT program. You are
    here because
  • You are extremely bright
  • You do not have a BA or BS in computer science
  • The rest of you are in other programs
  • You have a very wide range of backgrounds

4
What is this course?
  • This is a beginning programming course
  • The language we are using is Java 5
  • The primary audience is MCIT students
  • This is one of six required MCIT courses
  • It is also a service course for other students
    who need to learn to program
  • CIT 591 replaces CIS 500 in this role
  • If I can lure you into computing, I will!

5
Why are you here?
  • There are two good reasons for getting into
    computer science
  • The job market is (usually) very good
  • Computer programming can be extremely satisfying
    and enjoyable
  • Which of these is more important?
  • Money is a necessity
  • Being rich isnt a necessity (but it sure is
    nice)
  • You spend about 1/4 of your adult life working
  • Its important to find work that you enjoy

6
What are you getting yourself into?
  • Programming is intellectually challenging
  • It can be tremendous fun
  • if you like that sort of thing!
  • Lifelong learning is essential
  • The technology is constantly changing
  • We cannot teach you all you need to know
  • We can point you in the right direction and give
    you a good, hard push--but the rest is up to you!

7
Programming can be fun
  • Programming is puzzle-solving
  • Very little is mechanical, routine work
  • You always have to be thinking
  • If you like solving puzzles, theres a good
    chance you will like programming
  • Some puzzles are hard
  • You need a tolerance for frustration
  • Solving hard puzzles can be very satisfying

8
Computer Science
  • Computer science is the study of
  • what we can do with computers
  • how we can best do it
  • If we really understand how to do something, we
    can write a program to do it
  • We do a lot of things without really
    understanding how we do them
  • Walk upright
  • Recognize faces
  • Talk, and understand someone elses speech
  • Computer science is all about how to do things
  • Programming is about how to make the computer do
    the things that we ourselves know how to do
  • Computer science is about figuring out how to do
    additional things

9
CIT 591 is a programming course
  • Programming is teaching the computer how to do
    something
  • Programming, like woodworking, is a craft
  • To master a craft, you need both knowledge and
    experience
  • Even a poor woodworker can produce a useable
    chair
  • A master craftsman can produce a chair that is
    strong, comfortable, and beautiful

10
Beauty in computer science
  • Programs can be beautiful or ugly
  • I am not speaking metaphorically
  • Usually,
  • Blind people cant appreciate fine paintings
  • Deaf people cant appreciate good music
  • Non-mathematicians cant appreciate elegant
    proofs
  • Non-programmers cant appreciate the beauty in
    programs (but can often feel the lack of it!)

11
Basic esthetics
  • People have different tastes in music, but
  • A two-year old pounding on a piano is not making
    music
  • Very few musicians disagree on what notes make up
    a chord, or a chord progression
  • People have different tastes in programming, but
    many values are held in common
  • Programming is an art as well as a craft

12
Elegance
  • Powerful software can do everything you want to
    do--for example, Microsoft Word
  • Complex software is hard to learn and hard to
    use--for example, Microsoft Word
  • More power usually means more complexity
  • Elegant software somehow manages to be both
    simple and powerful

13
Elegance in mathematics
  • In school, the mathematician Johann Carl
    Friedrich Gauss was told to add up the numbers
    from 1 to 100
  • Gauss realized that 1 100 101,
    2 99 101,
    3 98 101, and so on
  • There are fifty such pairs
  • The answer must be 50 x 101, or 5050
  • This is elegant it saves work, and its easy to
    understand

14
Beauty in programming
  • Outer beauty in programs consists of
  • Doing a job the way the user wants it done
  • Providing a simple, intuitive set of controls
  • Working reliably, without crashes or glitches
  • Inner beauty in programs consists of
  • Simple, elegant, efficient solutions to problems
  • Code that is easy to read, understand, and modify
  • Good commenting and coding style

15
Elegance in programming
  • Consider the following problem
  • You are given a stack of cards, allegedly
    containing the numbers 1 through 100...
  • but there are only 99 cards
  • How do you determine which card is missing?
  • One solution
  • Go through all the cards looking for 1, then do
    it again looking for 2, etc.
  • Is there a better way?

16
Elegance, again
  • Suppose you are given a deck of 51 playing cards
  • How do you decide which card is missing?
  • Can you adapt Gausss solution to this problem?
  • Suppose you are given five decks, each missing
    one (not necessarily all the same) card
  • You want to find how many complete decks you can
    form
  • Can you adapt Gausss solution to this problem?
  • Suppose you are given one thousand decks, each
    missing one card
  • You want to find how many complete decks you can
    form
  • Would the large number of decks change the way
    you solve the problem?

17
What CIT 591 and 594 are about
  • You need to learn the craft of programming
  • How to design and write programs that work
  • How to write clear code and documentation
  • This is a skill, and it requires a lot of
    practice
  • In CIT 591 we study programming
  • You learn a language (Java 2) and some basic
    skills
  • You learn how to use the language to tell the
    computer how to do things
  • In CIT 594 we concentrate more on computer
    science
  • Remember what I said If you really understand
    how to do something, you can write a program to
    do it
  • Computer science is all about how to do things

18
Out with the old, in with the new
  • Geometry is about 2300 years old
  • Its all based on straight lines and circles
  • These were viewed as idealizations of nature
  • There are no straight lines or circles in nature
  • Didnt anybody notice?
  • Benoit Mandelbrot developed fractal geometry
    starting in about 1977
  • Even in a 2300 year old subject, things change!

19
Fractals are everywhere
20
Changes in computer science
  • Computer science is only about 60 years old
  • Its changing much faster than geometry!
  • Java was first introduced in 1995
  • We will be covering Java features that didnt
    exist this time last year
  • Change is rapid and accelerating
  • Dominant language of the 1990s C
  • Dominant language of early 2000s Java
  • Dominant company IBM to Microsoft to ?
  • First GUI Macintosh, 1984
  • First web browser Mosaic, 1992
  • Web pages HTML to DHTML to XML

21
Whats ahead?
  • Half-life of CS knowledge about 5 years
  • Typical length of career about 40 years
  • What does this tell you?
  • Nobody expected personal computers, graphical
    user interfaces, the mouse, the World Wide Web,
    the popularity of Java, the ascendance of XML,
    etc.
  • There is only one safe prediction
  • You will be taken by surprise!

22
Maybe you should learn accounting instead?
  • What can we possibly teach you that will do you
    any good five years from now?
  • Many underlying programming concepts and
    mathematical foundations dont change
  • Programming paradigms change slowly
  • Each new language you learn will be easier to
    learn than the previous one, because most of the
    ideas in it will be familiar

23
But more importantly...
  • The attitude you need doesnt change
  • Always be prepared to learn
  • Take pride in your work, but--
  • Realize that your work is not, and can never be,
    perfect
  • Learn to welcome corrections and criticisms as
    helping you to perfect your work do not take
    them personally
  • Seek out and fix problems, dont avoid them
  • Be responsive to the realities of the situation

24
A little problem
A
4
M
9
  • I know each of the above cards has a letter on
    one side and a number on the other
  • My theory is if a card has a vowel on one side,
    it has an even number on the other
  • I want to test my theory, but...
  • I want to turn over as few cards as possible
  • Which cards must I turn over ?

25
Answer to the cards problem
  • Theory If vowel, then even
  • You have to look for things that show you are
    wrong, not things that show you are right!
  • This is part of what I mean by attitude

2
K
8
E
dontneed
need
dont need
need
26
Small projects
  • You can build a doghouse in a few hours
  • You dont need a blueprint
  • The materials dont cost much
  • A little knowledge of tools is enough
  • Imperfections are no big deal

27
Medium-sized projects
  • You can build a house in a year or so
  • You really do need blueprints
  • Excess materials mean wasted money
  • House building requires more skills plumbing,
    bricklaying, electrical work, carpentry, etc.
  • Imperfections matter you dont want a leaky
    roof!
  • Its easier if you arent doing it all by yourself

28
Large projects
  • You cannot build a skyscraper by yourself
  • Its just too much work for one person
  • You dont have the money
  • You dont have all the skills
  • Imperfections could be costly or even fatal
  • Skyscrapers can only be built by a team
  • Communication is essential
  • A paper trail is essential

29
What does that mean for CS?
  • What can we ask you to build in your classes?
  • What will be expected of you in industry?
  • We teach skyscraper-level skills, but
  • we ask you to apply those skills to doghouses
  • its silly, but what alternative do we have?
  • Its up to you When you leave here,
  • will you be able to build skyscrapers?
  • or will you just be very good at building
    doghouses?

30
Why am I here?
  • My personal goals are
  • For the MCIT students
  • get everybody through this program
  • with the skills and attitudes you need to succeed
  • into a career that you will enjoy
  • For the non-MCIT students
  • give you a solid understanding of basic
    programming
  • try to lure you into learning more about the
    field
  • For the program
  • Produce really competent graduates that reflect
    well on the MCIT program

31
How to get a good grade in here
  • Start your assignments early!
  • This is the first and most important way to
    improve your grades
  • Programming takes a lot of time
  • Its not easy to predict how long a program will
    take
  • Test your programs thoroughly
  • One or two simple tests are not enough
  • We often provide simple but incomplete tests,
    just to get you started
  • We will do thorough testing, even if you dont!
  • Read the assignments carefully
  • Do what is assigned, not something like what is
    assigned
  • Learn to use your tools (BlueJ, JUnit, etc.)
  • Use comments and good style right from the
    beginning, not as a last-minute addition
  • To prepare for tests, review and understand the
    lectures

32
The End
  • He who works with his hands is a laborer.
  • He who works with his hands and his head is a
    craftsman.
  • He who works with his hands and his head and his
    heart is an artist.
  • -- St. Francis of Assisi
Write a Comment
User Comments (0)
About PowerShow.com