Welcome to CIT 590 http www cis upenn

  • Slides: 10
Download presentation
Welcome to CIT 590 http: //www. cis. upenn. edu/~matuszek/cit 590 -2009. html “Duke”

Welcome to CIT 590 http: //www. cis. upenn. edu/~matuszek/cit 590 -2009. html “Duke”

Labs n n n On Fridays we have lab (not “recitation”) in Moore 207

Labs n n n 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 n n n 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 n n n I’m your instructor, David Matuszek (muh-TOOZ-ik) I prefer

About this course n n n I’m your instructor, David Matuszek (muh-TOOZ-ik) I prefer “Dave” or “Dr. Dave” This is a beginning programming course n n n 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

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? n n Half-life of CS knowledge: about 5 years Typical length of

What’s ahead? n n Half-life of CS knowledge: about 5 years Typical length of career: about 40 years n n n 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: n You will be taken by surprise! 5

What does that mean for CS? n n n What can we ask you

What does that mean for CS? n n n What can we ask you to build in your classes? What will be expected of you in industry? We teach skyscraper-level skills, but n n n 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, n n will you be able to build skyscrapers? or will you just be very good at building doghouses? 6

Java is a terrible language n . . . That is, Java is a

Java is a terrible language n . . . That is, Java is a terrible first language n n This means: n n n 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! n Java may be nearing the end of its popularity curve 7

Comparison with other languages n n Java is somewhat less complex than C++ and

Comparison with other languages n n 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 n n However, “possible” “practical” n n 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 n 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 n Start your assignments early! n

How to get a good grade in here n Start your assignments early! n n n Work with your partner--help, and let yourself be helped Test your programs thoroughly n n n 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 n n 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

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