Welcome to the Computer and Information Technology program

advertisement
Welcome to CIT 590
http://www.cis.upenn.edu/~matuszek/cit590-2009.html
“Duke”
22-Mar-16
Labs



On Fridays we have lab (not “recitation”) in Moore
207 (not in Towne 313)
If you are registered for this course, you should be able
to log in in Moore 207
Before you come to lab on Friday, go to Moore 207
and make sure you can log in there



If you can’t, contact CETS immediately
The lab is a required part of this course
If you cannot make it to a particular lab, you must let
me know in advance, otherwise it will cost you points
2
About this course



I’m your instructor, David Matuszek (muh-TOOZ-ik)
I prefer “Dave” or “Dr. Dave”
This is a beginning programming course



The programming language we are using is Java 6
The IDE (Integrated Development Environment) we are using is
Eclipse (Classic version)
There are two basic goals:
1.
Teach you to program (that is, write programs that work)
•
2.
This is a skill, and requires practice
Teach you to program well (that is, write programs that aren’t total
crap)
•
This is more nearly an art
3
Versions of Java
Oak: Designed for embedded devices
Java: Original, not very good version (but
it had applets)
Java 1.1: Adds inner classes and a completely
new event-handling model
Java 1.2: Includes “Swing” but no new syntax
Java 1.3: Additional methods and packages, but
no new syntax
Java 1
Java 2
Java 1.4: More additions and the assert statement
Java 1.5: Generics, enums, new for loop,
Java 5.0
and other new syntax
Java 6 (=1.6): A few new features, mostly at the advanced level
4
What’s 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, the
DMCA, Amazon, Google, etc.
There is only one safe prediction:

You will be taken by surprise!
5
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
it’s silly, but what alternative do we have?
It’s up to you: When you leave here,


will you be able to build skyscrapers?
or will you just be very good at building doghouses?
6
Java is a terrible language

...That is, Java is a terrible first language




This means:



Your first programming language should be simple, so that you can
concentrate on learning the concepts
Java is designed primarily for power, and only secondarily for simplicity
Java is relatively elegant, for the amount of power it has
Java is more difficult to learn than many other languages
In exchange, Java is a workhorse language that you can use in the socalled “real world”
But this does not mean Java is the only language you will ever
need!

Java may be nearing the end of its popularity curve
7
Comparison with other languages




Java is somewhat less complex than C++ and C#
Java is more complex than C, but in different ways
Java is much more complex than Basic or Pascal
It is mathematically provable that anything you can compute in
one programming language, you can compute in (almost) any
other programming language


However, “possible”  “practical”


Hence, Java = C++ = C# = Basic = Pascal = C = Python =...
In practical terms, you can do a lot more in Java than in Basic
Java is a powerful general-purpose language

In the future you are likely to use many special-purpose languages that are
better for certain tasks than Java or its competitors
8
How to get a good grade in here

Start your assignments early!





Work with your partner--help, and let yourself be helped
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 don’t!
Read the assignments carefully


This is the first and most important way to improve your grades
Programming takes a lot of time
It’s not easy to predict how long a program will take
Do what is assigned, not “something like” what is assigned
Learn to use your tools (Eclipse, 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
9
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
10
Download