DOC PREVIEW
Penn CIT 591 - CIT 591 LECTURE NOTES

This preview shows page 1-2-15-16-31-32 out of 32 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Welcome to the Computer and Information Technology programWho am I?Who are you?What is this course?Why are you here?What are you getting yourself into?Programming can be funComputer ScienceCIT 591 is a programming courseBeauty in computer scienceBasic estheticsEleganceElegance in mathematicsBeauty in programmingElegance in programmingElegance, againWhat CIT 591 and 594 are aboutOut with the old, in with the newFractals are everywhereChanges in computer scienceWhat’s ahead?Maybe you should learn accounting instead?But more importantly...A little problemAnswer to the cards problemSmall projectsMedium-sized projectsLarge projectsWhat does that mean for CS?Why am I here?How to get a good grade in hereThe EndJan 14, 2019Welcome to the Computer and Information Technology programhttp://www.cis.upenn .edu/~matuszek2Who am I?David Matuszek (muh-TOOZ-ik)I prefer “Dave” or “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 5943Who 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 backgrounds4What 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!5Why 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 enjoy6What 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!7Programming 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 satisfying8Computer 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 else’s 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 things9CIT 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 beautiful10Beauty 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!)11Basic 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 craft12Elegance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 powerful13Elegance 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 understand14Beauty 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 style15Elegance 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?16Elegance, 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 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 Gauss’s 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?17What 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


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
Download CIT 591 LECTURE NOTES
Our administrator received your request to download this document. We will send you the file to your email shortly.
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 2 2 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?