Computer Science I: Fundamentals...
Transcript of Computer Science I: Fundamentals...
ComputerScienceI:Fundamentals(CS1210)
Spring2017
Professor:JamesCremer
TAs:JeffHajewski,SikderHuq,ShanuGandhi,ZachMeyer,AdrianPereira
Lecture1,Jan.18,2017
WelcometoCS1!
• ThisisanexciSngSmetobeacomputerscienSst!Computa(onalThinkingisbecomingpartofallaspectsoflife:– Healthcare,Biology,Pharmacy,BiomedicalEngineering
– Economics,Finance– Sociology,Psychology– Physics,Astronomy– Music,Film– HumaniSes(e.g.DigitalHumaniSesIniSaSveatUI)
CoreComputerScienceareasarefullofexciSngdevelopmentsandacSvity• Dataminingandmachinelearning(manycompanieswant
experSseinmachinelearningtoenable“mining”ofcustomerandotherdata)
• Computergraphics,animaSon,virtualreality(e.g.OculusRi^,Microso^Hololens,GoogleGlass,…)
• Human-computerinteracSon(HCI)• NetworksanddistributedcompuSng• Naturallanguageprocessing• Computervision• RoboScs• ArSficialIntelligence• Algorithms
SearchEngines
• ExemplifyamazingcomputersciencecontribuSons
• Advancesinalgorithms,networking,distributedcompuSng,machinelearningallcombinetosupport– millionsofsimultaneoussearchesof– billionsofwebpages,with– responsesinmilliseconds
Justafewotherrecentdevelopments• IBM’sWatsondefeatedthebesthumanJeopardyplayersin2010–substanSalprogressinnaturallanguageunderstanding
• In1997,IBM’sDeepBluebecamefirstcomputertobeatreigningworldchesschampion.In2016,AlphaGosurprisedmanyexpertsbybecomingfirstcomputerprogramtodefeatatopprofessionalGoplayer(LeeSedol,ranked#2ininternaSonalStles)
• Microso^Kinectsensor–add-onforXboxgamingconsole.Veryimpressivetechnologyfor$149.Distanceandcolorsensorsplusalgorithmsenablingdetailedtrackingof20+jointsof6humansatonce
• Nextbigthing:self-drivingvehicles.MajoradvancesinAI(deeplearning),sensing(don’thitpeople,animals,stuff!),etc.
ThisCourse• Thiscoursehasoneprimarygoal-toprovideacoreofcomputerscienceprogrammingconceptsandskills,andenoughpracSceusingthem,thatstudentswilldevelopconfidenceintheirabilitytothinkcomputaSonallyandtosolveproblemsviaprogramming.
• Beyondbasicprogrammingconcepts,thecourseprovidesanintroducSontoobject-orientedprogramming,algorithmicdesignandanalysis,webprogramming,andgraphicaluserinterfaces.
• CSismuchmorethanprogrammingbutthisisaskillsorientedprogrammingcourseratherthanabroadoverviewofCS.ItteachesprogrammingprinciplesnecessaryformoreadvancedworkintheComputerScience.CS1020andCS1110providebroaderintroducSonstotheoverallfieldofComputerScience.
Me• 24yearsatIowa.PhDfromCornellUniversity,1989.Livedmanyplacesbeforethat-13in17years,alloverUSandalsoinEurope.
• Teaching:datastructures,computergraphics,virtualreality,algorithms.MostrecentlyhaveregularlytaughtiOS/iPhone/iPadAppDevelopmentclass(incljointclasswithVietnam),andProgrammingforInformaScs(alotlikethiscourse).
• Research:previously,theHankVRresearchgroup.Now,theComputaSonalEpidemiologygroup.
• Outsideofwork:whennothangingoutathome,I’msomewhereintheworldridinganEllipSGO
ICON/thesyllabus/coursewebsite• ICON:usedforthreethrings– Submiqnghomeworks– PosSng/readingquesSonsaboutassignments/lectures(ICONDiscussions)
– PosSngallscores/grades• Syllabusandallcourseannouncements,homeworkassignments,andlecturesnoteswillbepostedonexternalcoursewebsite:– hrp://homepage.cs.uiowa.edu/~cremer/courses/cs1210/
Therestoftoday’slecturediscussestheinforma9ononthecoursewebsite.
• Manypeoplefindthiscoursedifficult.Ibelievethatifyouworkatitsteadily,notjustlast-minute,youcandowellwithoutsuffering.
• Thecoursecanbeveryrewarding–from(forsomeofyou)noprogrammingskilltorealconfidenceandabilitytomakecomputerdocoolstuffforyou.
• Cometoclass,doyourownwork,readandthink(veryvaluablebeforesiqngkeyboardprogramming),workhardonthehomeworks.Ifyoudothehomeworkswell,theexamswilltakecareofthemselves.
BeforenextSme:• Read:Chapter1ofthetext.Itisshortandeasy.• Do:InstallPythononyourmachine.EvaluatesomePythoncodeintheinterpreter
NextSme:beginningPython,someinteresSngproblems
Tothinkabout:examplesofcomputa9onalcomplexity
• EulervsHamiltoniancircuitsandTSP.Graphsincomputerscience:differentnoSonthanthegraphicalplotstaughtinhighschool
0
2
4
6
2010 2011 2012 2013
VS.
• Canyoufindapaththattraverseseveryedge(connecSon)exactlyonce?
• Canyoufindapaththatvisitseverynode(vertex)exactlyonce?
• Iftheedgesareassigned“weights”(represenSngdistance/costtotraverse),canyoufindpathofminimumcostthatvisitseverynodeexactlyonce?
Arethesesimilarlycomputa9onallyhardoreasy?