Welcome to CIT 590LabsAbout this courseVersions of JavaWhat’s ahead?What does that mean for CS?Java is a terrible languageComparison with other languagesHow to get a good grade in hereThe EndJan 14, 2019Welcome to CIT 590http://www.cis.upenn.edu/~matuszek/cit590-2009.html“Duke”2LabsOn 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 207Before you come to lab on Friday, go to Moore 207 and make sure you can log in thereIf you can’t, contact CETS immediatelyThe lab is a required part of this courseIf you cannot make it to a particular lab, you must let me know in advance, otherwise it will cost you points3About this courseI’m your instructor, David Matuszek (muh-TOOZ-ik)I prefer “Dave” or “Dr. Dave”This is a beginning programming courseThe programming language we are using is Java 6The 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)•This is a skill, and requires practice2. Teach you to program well (that is, write programs that aren’t total crap)•This is more nearly an art4Versions of JavaJava 1Java 2Java 5.0Oak: Designed for embedded devicesJava 1.1: Adds inner classes and a completely new event-handling modelJava 1.2: Includes “Swing” but no new syntaxJava 1.3: Additional methods and packages, but no new syntaxJava 1.4: More additions and the assert statementJava 1.5: Generics, enums, new for loop, and other new syntaxJava: Original, not very good version (but it had applets)Java 6 (=1.6): A few new features, mostly at the advanced level5What’s ahead?Half-life of CS knowledge: about 5 yearsTypical length of career: about 40 yearsWhat 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!6What 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, butwe ask you to apply those skills to doghousesit’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?7Java is a terrible language...That is, Java is a terrible first languageYour first programming language should be simple, so that you can concentrate on learning the conceptsJava is designed primarily for power, and only secondarily for simplicityJava is relatively elegant, for the amount of power it hasThis means:Java is more difficult to learn than many other languagesIn exchange, Java is a workhorse language that you can use in the so-called “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 curve8Comparison with other languagesJava is somewhat less complex than C++ and C#Java is more complex than C, but in different waysJava is much more complex than Basic or PascalIt is mathematically provable that anything you can compute in one programming language, you can compute in (almost) any other programming languageHence, Java = C++ = C# = Basic = Pascal = C = Python =...However, “possible” “practical”In practical terms, you can do a lot more in Java than in BasicJava is a powerful general-purpose languageIn the future you are likely to use many special-purpose languages that are better for certain tasks than Java or its competitors9How to get a good grade in hereStart your assignments early!This is the first and most important way to improve your gradesProgramming takes a lot of timeIt’s not easy to predict how long a program will takeWork with your partner--help, and let yourself be helpedTest your programs thoroughlyOne or two simple tests are not enoughWe often provide simple but incomplete tests, just to get you startedWe will do thorough testing, even if you don’t!Read the assignments carefullyDo what is assigned, not “something like” what is assignedLearn to use your tools (Eclipse, JUnit, etc.)Use comments and good style right from the beginning, not as a last-minute additionTo prepare for tests, review and understand the lectures10The EndHe 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
View Full Document