Unformatted text preview:

Welcome to the Computer and Information Technology program http www cis upenn edu matuszek Jan 14 2019 Who am I David Matuszek muh TOOZ ik I prefer Dave or maybe Dr Dave I m the director of the MCIT program I m here to teach not to do research My most important courses are CIT 591 and CIT 594 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 A few of you are in Bioinformatics The rest of you are in other programs You have a very wide range of backgrounds What is this course This is a beginning programming course The primary audience is MCIT students The language we are using is Java 2 This is the first 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 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 isn t a necessity but it sure is nice You spend about 1 4 of your adult life working It s important to find work that you enjoy 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 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 there s a good chance you will like programming Some puzzles are hard You need a tolerance for frustration Solving hard puzzles can be very satisfying Computer Science Computer science is the study of If we really understand how to do something we can write a program to do it what we can do with computers how we can best do it We do a lot of things without really understanding how we do them Computer science is all about how to do things 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 Beauty in computer science Programs can be beautiful or ugly I am not speaking metaphorically Usually Blind people can t appreciate fine paintings Deaf people can t appreciate good music Non mathematicians can t appreciate elegant proofs Non programmers can t appreciate the beauty in programs but can often feel the lack of it 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 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 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 it s easy to understand 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 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 Elegance again Suppose you are given a deck of 51 playing cards How do you decide which card is missing Can you adapt Gauss s solution to this problem Suppose you are given one thousand decks each missing one not all the same card For each deck you want to find which card is missing Would the large number of decks change the way you solve the problem What CIT 591 and 594 are about You need to learn the craft of programming In CIT 591 we study 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 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 Out with the old in with the new Geometry is about 2300 years old It s all based on straight lines and circles These were viewed as idealizations of nature There are no straight lines or circles in nature Didn t anybody notice Benoit Mandelbrot developed fractal geometry starting in about 1977 Even in a 2300 year old subject things change Changes in computer science Computer science is only about 55 years old It s changing much faster than geometry Java is about seven years old We will be covering Java features that didn t 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 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 etc There is only one safe prediction You will be taken by surprise Maybe you should learn accounting instead What can we possibly teach you that will do you any


View Full Document

Penn CIT 591 - CIT 591 LECTURE NOTES

Documents in this Course
Stacks

Stacks

11 pages

Arrays

Arrays

30 pages

Arrays

Arrays

29 pages

Applets

Applets

24 pages

Style

Style

33 pages

JUnit

JUnit

23 pages

Java

Java

32 pages

Access

Access

18 pages

Methods

Methods

29 pages

Arrays

Arrays

32 pages

Methods

Methods

9 pages

Methods

Methods

29 pages

Vectors

Vectors

14 pages

Eclipse

Eclipse

23 pages

Vectors

Vectors

14 pages

Recursion

Recursion

24 pages

Animation

Animation

18 pages

Animation

Animation

18 pages

Static

Static

12 pages

Eclipse

Eclipse

23 pages

JAVA

JAVA

24 pages

Arrays

Arrays

29 pages

Animation

Animation

18 pages

Numbers

Numbers

21 pages

JUnit

JUnit

23 pages

Access

Access

18 pages

Applets

Applets

24 pages

Methods

Methods

30 pages

Buttons

Buttons

20 pages

Java

Java

31 pages

Style

Style

28 pages

Style

Style

28 pages

Load more
Loading Unlocking...
Login

Join to view CIT 591 LECTURE NOTES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CIT 591 LECTURE NOTES and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?