/
CSE 160 Wrap-Up UW CSE 160 CSE 160 Wrap-Up UW CSE 160

CSE 160 Wrap-Up UW CSE 160 - PowerPoint Presentation

williams
williams . @williams
Follow
67 views
Uploaded On 2024-01-03

CSE 160 Wrap-Up UW CSE 160 - PPT Presentation

Winter 2017 1 Presentations on Monday 230420pm Monday 313 No more than 5 slides including title slide Time limit to be announced Both partners should speak Slides are due BY NOON 12pm on Mon 313 to catalyst ID: 1038576

data cse programming amp cse data amp programming program python write structures small testing test problem fun design 143

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "CSE 160 Wrap-Up UW CSE 160" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1. CSE 160 Wrap-UpUW CSE 160Winter 20171

2. Presentations on Monday2:30-4:20pm, Monday 3/13No more than 5 slides (including title slide)Time limit to be announcedBoth partners should speakSlides are due BY NOON (12pm) on Mon 3/13 to catalystIf you are submitting a video: slides and video are also due BY 12pm on Mon 3/13 to catalyst2

3. Progress in 10 weeks10 weeks ago: you knew no programmingGoals:Computational problem-solvingPython programming languageExperience with real datasets Fun of extracting understanding and insight from data, and of mastery over the computerAbility to go on to more advanced computing classesToday: you can write a useful program to solve a real problemYou can even pose the problem yourself3

4. Thanks!4

5. Why do you care about processing data?The world is awash in dataProcessing and analyzing it is the difference between success and failurefor a team or for an individualManipulating and understanding data is essential to:AstronomersBiologistsChemistsEconomistsEngineersEntrepreneursLinguistsPolitical scientistsZoologists… and many more!5

6. Programming ConceptsVariablesAssignmentsTypesPrograms & algorithmsControl flow: loops (for), conditionals (if)FunctionsFile I/OPython execution modelHow Python evaluates expressions, statements, and programs6

7. Data structures: managing dataListSetDictionaryTupleGraphList slicing (sublist)List comprehension: shorthand for a loop7

8. FunctionsProcedural abstractionavoid duplicated codethe implementation does not matter to the clientUsing functionsDefining functionsf(x) = x28

9. Data abstractionDual to procedural abstraction (functions)A module is: operationsAn object is: data + operationsOperations: create, query, modifyClients use the operations, never directly access dataThe representation of the data does not matter to the clientProgrammer defines a class.Each instance of a class is an object.9

10. Testing and debuggingUse small data sets to test your programWrite enough tests:Cover every branch of each boolean expressionespecially when used in a conditional expression (if statement)Cover special cases:numbers: zero, positive, negative, int vs. floatdata structures: empty, size 1, largerAssertions are useful beyond testsDebugging: after you observe a failureDivide and conquerIn time, in data, in program text, in development historythis is also a key program design conceptThe scientific methodstate a hypothesis; design an experiment; understand resultsThink first (“lost in the woods” analogy)Be systematic: record everything; have a reason for each action10

11. Data analysisStatisticsRun many simulationsHow uncommon is what you actually saw?Graphing/plotting results11

12. Program designHow to write a function:Choose name, arguments, and documentation stringWrite testsWrite body/implementationHow to write a program:Decompose into parts (functions, modules)Each part should be a logical unit, not too large or smallWrite each partDefine the problemChoose an algorithmIn English first; test it via manual simulationTranslate into codeWhen necessary, use wishful thinkingAssume a function exists, then write it laterCan test even before you write it, via a stub12

13. RecursionBase case: does all the work for a small problemInductive case:Divide the problem, creating one or more smaller problemsAsk someone else to solve the smaller problemsRecursive call to do most of the work(Maybe) Do a small amount of postprocessing on the result(s) of the recursive call(s)13

14. Speed of algorithmsAffected primarily by the number of times you iterate over dataNested looping matters a lot14

15. Data!DNAImagesSocial NetworksElection Results/PollsDetecting Fraudulent DataYour Choice!15

16. Your Projects!Trump’s TweetsAuditory Brainstem Responses Crop PricesFinding Lost PetsGlobal land useGas Flows & GalaxiesEffects of Stress Movies trends over timeHigh School drop out ratesMusic Styles over timeWeather ForecastingProteins and Genetic DisordersStocks and TrumpDepression Scores & Alzheimer'sYouth Habits & AlcoholAir PollutionCrime in WABook RecommendationsHospitals & MedicarePredicting StocksHappiness & InternetLetters & LanguagesCancer & RedditTraffic ViolationsCO2 EmissionsCar Fuel EfficiencyTSA ClaimsGlobal WarmingLatitude & AIDSHousing Prices & Weather16

17. There is more to learnData analysis, data science, and data visualizationScaling up:Larger and more complex programsAlgorithm selection“Big data”: out-of-memory data, parallel programming, …Ensuring correctnessPrincipled, systematic design, testing, and programmingCoding styleManaging complexityProgramming tools: testing, version control, debugging, deploymentGraphical User Interfaces (GUIs), user interactionData structures and algorithmsWorking in a team17

18. What you have learned in CSE 160Compare your skills today to 10 weeks agoBottom line: The assignments would be easy for you todayThis is a measure of how much you have learnedThere is no such thing as a “born” programmer!Your next project can be more ambitiousGenius is 1% inspiration and 99% perspiration. Thomas A. Edison18

19. Why the Python language?PythonExcelMATLABRC/C++JavaReadable syntaxEasy to get startedPowerful libraries19

20. Comparison of Python with JavaPython is better for learning programmingPython is better for small programsJava is better for large programsMain difference: dynamic vs. static typingDynamic typing (Python): put anything in any variableStatic typing (Java):Source code states the type of the variableCannot run code if any assignment might violate the type20

21. What comes next?ClassesJava: CSE 142 (you might skip), CSE 143, CSE 143XHDCE 310: Python for interactive systemsMATLAB, other programming languagesSelf-study: books & websitesData analysis: classes, research, jobsIn programming and software engineeringIn any topic that involves softwareHaving an impact on the worldJobs (and job interviews)Larger programming projectsThe purpose of computing is insight, not numbers. Richard W. Hamming Numerical Methods for Scientists and Engineers21

22. 22More Computer Science Courses!!You could take any of these now!CSE 142, 143, 143x Programming in JavaCSE 154 Web ProgrammingCSE 416 Intro to Machine Learning (requires Stat 311/390)Require CSE 143:CSE 373 Data Structures & AlgorithmsCSE 414 DatabasesCSE 374  Intermediate Programming Concepts & ToolsRequire CSE 373:CSE 410 Computer Systems (Operating Systems & Architecture)CSE 413 Programming Languages and their ImplementationCSE 415 Artificial Intelligence CSE 417 Algorithms and Complexity Note: These classes are all open to NON-majors. You may also be interested in applying for the CSE major!

23. Go forth and conquerSystem building and scientific discovery are fun!It’s even more fun when your system worksPay attention to what mattersUse the techniques and tools of CSE 160 effectively23