CSE 160 Wrap-Up - University Of Washington

2y ago
11 Views
2 Downloads
965.46 KB
21 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Amalia Wilborn
Transcription

CSE 160 Wrap-UpRuth AndersonUW CSE 160Winter 20201

Progress in 10 weeks10 weeks ago: you knew no programmingGoals:––––Computational problem-solvingPython programming languageExperience with real datasetsFun of extracting understanding and insight from data,and of mastery over the computer– Ability to go on to more advanced computing classesToday: you can write a useful program to solve areal problem– You can even pose the problem yourself2

Thanks!3

Why do you care about processing data? The world is awash in data Processing and analyzing it is the difference betweensuccess and failure– for a team or for an individual Manipulating and understanding data is essential stsPolitical scientistsZoologists and many more!4

Programming Concepts VariablesAssignmentsTypesPrograms & algorithmsControl flow: loops (for), conditionals (if)FunctionsFile I/OPython execution model– How Python evaluates expressions, statements, andprograms5

Data structures: managing data ListSetDictionaryTupleGraph List slicing (sublist) List comprehension: shorthand for a loop6

f(x) x2Functions Procedural abstraction– avoid duplicated code– the implementation does not matter to the client Using functions Defining functions7

Data abstraction Dual to procedural abstraction (functions) A module is: operations An object is: data operations– Operations: create, query, modify– Clients use the operations, never directly access data– The representation of the data does not matter to theclient– Programmer defines a class.Each instance of a class is an object.8

Testing and debugging Use small data sets to test your program Write enough tests:– Cover every branch of each boolean expression especially when used in a conditional expression (if statement)– Cover special cases: numbers: zero, positive, negative, int vs. float data structures: empty, size 1, larger Assertions are useful beyond tests Debugging: after you observe a failure– Divide and conquer In time, in data, in program text, in development history this is also a key program design concept– The scientific method state a hypothesis; design an experiment; understand results Think first (“lost in the woods” analogy)– Be systematic: record everything; have a reason for each action9

Data analysis Statistics– Run many simulations– How uncommon is what you actually saw? Graphing/plotting results10

Program designHow to write a function:1.2.3.Choose name, arguments, and documentation stringWrite testsWrite body/implementationHow to write a program:1.Decompose into parts (functions, modules) Each part should be a logical unit, not too large or small2.Write each part Define the problemChoose an algorithmIn English first; test it via manual simulationTranslate into codeWhen necessary, use wishful thinking– Assume a function exists, then write it later– Can test even before you write it, via a stub11

Bonus Material - Recursion Base case: does all the work for a smallproblem Inductive case:– Divide the problem, creating one or more smallerproblems– Ask someone else to solve the smaller problems Recursive call to do most of the work– (Maybe) Do a small amount of postprocessing onthe result(s) of the recursive call(s)12

Speed of algorithms Affected primarily by the number of times youiterate over data Nested looping matters a lot13

Data! DNAImagesSocial Networks2D points and Handwriting SamplesElection Results14

There is more to learn! Data analysis, data science, and data visualization Scaling up:– Larger and more complex programs– Algorithm selection– “Big data”: out-of-memory data, parallel programming, Ensuring correctness– Principled, systematic design, testing, and programming– Coding style Managing complexity––––Programming tools: testing, version control, debugging, deploymentGraphical User Interfaces (GUIs), user interactionData structures and algorithmsWorking in a team15

What you have learned in CSE 160Compare your skills today to 10 weeks agoBottom line: The assignments would be easy foryou 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. Edison16

Why the Python language?PythonExcelMATLABRC/C JavaReadable syntax Easy to get started Powerful libraries 17

Comparison of Python with Java Python is better for learning programming Python is better for small programs Java is better for large programsMain difference: dynamic vs. static typing Dynamic typing (Python): put anything in any variable Static typing (Java):– Source code states the type of the variable– Cannot run code if any assignment might violate the type18

Courses:What comes next?– Python: CSE 163 Intermediate Data Programming– Java: CSE 142 (you might skip – your will know a lot of the ideas),CSE 143, CSE 143X– HDCE 310: Python for interactive systems– MATLAB, other programming languages– Self-study: books & websitesData analysis: classes, research, jobs– In programming and software engineering– In any topic that involves softwareHaving an impact on the world– Jobs (and job interviews)– Larger programming projects19

More UW Computer Science Courses!!You could take any of these now! CSE 163 Intermediate Data Programming CSE 142, 143, 143x Programming in Java (143x only in fall) CSE 154 Web Programming CSE 416 Intro to Machine Learning (requires Stat 311/390) INFO/STAT/CSE 180 Intro to Data Science (some Math pre-req) (all year)Require CSE 143: CSE 373 Data Structures & Algorithms (all year) CSE 414 Databases CSE 374 Intermediate Programming Concepts & ToolsRequire CSE 373: CSE 410 Computer Systems(Operating Systems & Architecture) CSE 413 Programming Languagesand their Implementation CSE 415 Artificial Intelligence CSE 417 Algorithms and ComplexityNote: These classes are all open to NON-majors.You may also be interested in applying for the CSE major!20

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 effectively21

UW CSE 160 Winter 2020 1. Progress in 10 weeks . What you have learned in CSE 160 Compare your skills today to 10 weeks ago Bottom line: The assignments would be easy for you today This is a measure of how much you ha

Related Documents:

92 vipul sharma it 93 rishabh jain cse 94 manik arora cse 95 nishant bhardwaj cse . 96 rajit shrivastava it 97 shivansh gaur cse 98 harsh singh cse 99 shreyanshi raj cse 100 rahul bedi cse 101 pallavi anand cse 102 divya cse 103 nihal raj it 104 kanak

cse-148 kuriakose jijo george n t george cse-149 kusum joshi ramesh chandra joshi cse-150 m mithun bose n k mohandasan cse-151 madhuri yadav rajbir yadav cse-152 malini shukla r s sharma cse-153 manisha khattar sunil kumar khattar cse-154 m

160-dddd Forms . 160-eeee Denial of registration . 160-ffff Expiration of license . 160-gggg Fees . 160-hhhh Owner requirements . 160-iiii Controlling persons . 160-jjjj Employee requirements . 160-kkkk Restrictions . 160-llll Recordkeeping . 160-mmmm Appraiser independence; unlawful acts

(Note: Tape and caulk should only be used for securing purposes and should not be used as primary flashing material.) BARRICADE BUILDING WRAP APPLICATION WITH EXISTING WINDOWS 2 3 4 HOUSE WRAP INSTALLATION FOR BARRICADE WRAP BARRICADE WRAP PLUS BARRICADE R-WRAP 1 BARRICADE BP.COM BARRICADE INSTALLATION GUIDE: HOUSE WRAP / FLASHING

CSE 440: Introduction to HCI CSE 441: Advanced HCI CSE 510: Advanced Topics in HCI CSEP 510: Human-Computer Interaction CSE 332: Data Structures. Who We Are You Computing. Who We Are Eunice Jun Prefer: Eunice / She / Her Background: BS,Cognitive Studies & Computer Science Vanderbilt, 2016

1 CSE 474 Introduction 1 CSE 474 – Introduction to Embedded Systems n Instructor: q Bruce Hemingway n CSE 464, Office Hours: 11:00-12:00 p.m., Tuesday, Thursday n or whenever the door is open n bruceh@cs.washington.edu q Teaching Assistants: q Cody Ohlsen, Kendall Lowrey and Ying-Chao (Tony) Tung CSE 474 Introduction 2

2 160-00682 Steering wheel 3 160-00683 Steering wheel cover 4 104-00002 ZENN steering wheel logo 5 160-00511 Lock barrel ignition/door(Ignition 2 door lock cylinder and 2 keys) 6 160-00097 Steering shaft 7 160-00142 Steering tie rod washer (inner tie rod) 8 160-00258 Steering ball tie rod end (Outer tie rod) 9 160-00259 Rack & pinion boot

Introduction, Description Logics Petr K remen petr.kremen@fel.cvut.cz October 5, 2015 Petr K remen petr.kremen@fel.cvut.cz Introduction, Description Logics October 5, 2015 1 / 118. Our plan 1 Course Information 2 Towards Description Logics 3 Logics 4 Semantic Networks and Frames 5 Towards Description Logics 6 ALCLanguage Petr K remen petr.kremen@fel.cvut.cz Introduction, Description Logics .