introduction to computer science
play

Introduction to Computer Science Computer Science Programming - PowerPoint PPT Presentation

Introduction to Computer Science Xuefeng Cui Course Description Introduction to Computer Science Computer Science Programming Languages Xuefeng Cui Group Discussion Tsinghua University 0 Contact Information Introduction to Computer


  1. Introduction to Computer Science Xuefeng Cui Course Description Introduction to Computer Science Computer Science Programming Languages Xuefeng Cui Group Discussion Tsinghua University 0

  2. Contact Information Introduction to Computer Science Xuefeng Cui Course Description Instructor: Xuefeng Cui Computer Office hour: 2:00-3:00PM Thursdays Science Programming Office: FIT 4-606-2 Languages Email: xfcui.uw@gmail.com Group Discussion Website: iiis.tsinghua.edu.cn/ ∼ xfcui/intro2cs 1

  3. Course Description Introduction to Computer Science Xuefeng Cui Course Description Goal: to provide foundational knowledge about Computer Computer Science (CS) Science Programming Variety topics in CS Languages Not a programming course Group No university-level pre-requirement Discussion 2

  4. Course Outline Introduction to Computer Science Xuefeng Cui Course Description Computer 1 Introduction lecture Science 2 Invited lectures Programming Languages 3 Tutorials Group Discussion 3

  5. Part 1: Introduction Lecture Introduction to Computer Science Xuefeng Cui Course Description Computer Science What is CS? Programming Which programming languages to learn? Languages Group Discussion 4

  6. Part 2: Invited Lectures Introduction to Computer Science Xuefeng Cui Course Description By invited pioneer researchers Computer One topic per lecture Science Cryptography Programming Languages Algorithms and data structures Group Machine learning Discussion Computational biology 5

  7. Part 3: Tutorials Introduction to Computer By the TA: Da Wei Science Xuefeng Cui One chapter per tutorial Read the chapter before attending a tutorial Course Description Help your understanding instead of teaching Computer Self-learning practice Science Programming Languages Group Discussion 6

  8. Course Outline Introduction to Computer Science Xuefeng Cui Course Description Computer 1 Introduction lecture: today Science 2 Invited lectures: by invited researchers Programming Languages 3 Tutorials: by the TA Group Discussion 7

  9. Marks Introduction to Computer Science Xuefeng Cui Attendance: 10% Assignments: 20% Course Description 6 assignments Computer Science Midterm exam: 30% Programming November 1, 2016 Languages Final exam: 40% Group Discussion December 27, 2016 Pass requirement: Total mark > 60% Midterm + final > 42% 8

  10. Introduction Lecture Introduction to Computer Science Xuefeng Cui Course Description What is Computer Science (CS)? Computer Definition Science Examples Programming Languages Which programming languages to learn? Group Discussion Group discussion 9

  11. What is Computer Science? Introduction to Computer Science Xuefeng Cui Course Description Definition: the scientific and practical approach to Computer computation and its applications Science Theoretical: to understand the nature of computation Programming Languages Applied: to solve real world problems Group Discussion Scope: variety topics in CS 10

  12. Example 1: Casino Lawsuit Introduction to Computer Science Xuefeng Cui Course Description Computer Science Programming Languages Group Discussion Simplified: who has the bigger number? 11

  13. Example 1: Casino Lawsuit Introduction to Computer Science Xuefeng Cui Course Scenario: you lost a lot of money after 100 games Description Casino: 6, 6, 6, 6, 6, 6, ... Computer Science Probability: 1 / 6 100 Programming Argument: cheating? Languages You: 2, 6, 4, 3, 1, 3, ... Group Discussion Probability: 1 / 6 100 Argument: fair? 12

  14. Example 1: Casino Lawsuit Introduction to Computer Science Xuefeng Cui Kolmogorov complexity: a random sequence cannot be Course Description compressed Computer Casino: 6, 6, 6, 6, 6, 6, ... Science Programming Description: 100 numbers of 6 Languages Conclusion: cheating Group Discussion You: 2, 6, 4, 3, 1, 3, ... Description: 2, 6, 4, 3, 1, 3, ... Conclusion: fair 13

  15. Example 2: Public-Key Cryptography Introduction to Computer Science Xuefeng Cui Scenario: Alice sends message m to Bob Course Description Goal: Chris cannot know m Computer Science Theorem: m k ( p − 1)( q − 1)+1 ≡ m (mod pq ) Programming Languages Bob’s keys: a, b, n Group ab = k ( p − 1)( q − 1) + 1 Discussion n = pq Observation: ( m a ) b ≡ m ab ≡ m (mod n ) 14

  16. Example 2: Public-Key Cryptography Introduction to Computer Science Xuefeng Cui Course Procedures: Description 1 Alice says “Hello” to Bob. Computer Science 2 Bob says “a and n” to Alice 3 Alice calculates e = m a mod n Programming Languages 4 Alice says “e” to Bob Group 5 Bob calculates d = e b mod n Discussion Observation: d ≡ e b ≡ ( m a ) b ≡ m (mod n ) 15

  17. Example 2: Public-Key Cryptography Introduction to Computer Science Xuefeng Cui Chris knows a, n and e Course Description Chris also knows public-key cryptography m = e b mod n Computer Science ab = k ( p − 1)( q − 1) + 1 Programming Languages n = pq Group Chris does not know b Discussion How could Chris possibly know m? What if p and q are large (2 2048 )? 16

  18. Theoretical Computer Science Introduction to Computer Science Xuefeng Cui Course Description Definition: to understand the nature of computation Computer Topics: Science Kolmogorov complexity Programming Languages Cryptography Group Algorithm and complexity Discussion Computability 17

  19. Example 3: Tor Project Introduction to Computer Scenario: Alice sends a message to Bob Science Xuefeng Cui Goal: nobody can know Alice is talking to Bob Course Description Computer Science Programming Languages Group Discussion 18

  20. Example 3: Tor Project Introduction to Computer Tor circuit from Alice to Bob Science Xuefeng Cui How much does everyone know? Course Description Computer Science Programming Languages Group Discussion 19

  21. Example 3: Tor Project Introduction to Computer Tor circuit from Alice to Jane Science Xuefeng Cui Why 3 Tor nodes? Course Description Computer Science Programming Languages Group Discussion 20

  22. Example 4: IKEA Kitchen Demonstration Introduction to Computer Science Xuefeng Cui Virtual reality (VR): using computer-generated graphics Course and sounds to replicate reality Description Computer Science Programming Languages Group Discussion 21

  23. Example 4: IKEA Kitchen Demonstration Introduction to Computer Science Xuefeng Cui Course Description Applications of VR: Computer Science Retail Programming Video games Languages Education and training Group Computer-aided design Discussion 22

  24. Applied Computer Science Introduction to Computer Science Xuefeng Cui Course Description Definition: to solve real world problems Computer Topics: Science Tor project Programming Languages Virtual reality Group Augmented reality Discussion Computational biology 23

  25. Summary Introduction to Computer Science Xuefeng Cui Course Description Today: what is CS? Computer Science Theoretical Programming Applied Languages Group Next week: cryptography Discussion 24

  26. Introduction Lecture Introduction to Computer Science Xuefeng Cui Course Description What is Computer Science? Computer Which programming languages to learn? Science Programming As your first programming language Languages For a specific task Group Discussion Group discussion 25

  27. What is A Programming Language? Introduction to Computer Science Definition: a language to communicate instructions to a Xuefeng Cui computer Course Popular programming languages: Description Computer Science Programming Languages Group Discussion 26

  28. Which programming languages to learn? Introduction to Computer Science Xuefeng Cui As your first programming language: Java, Python Course Description Popularity Computer Generality Science Simplicity Programming Languages For a specific task: no simple answer Group Execution time ⇔ productivity Discussion Available library (or software) Available hardware 27

  29. Argument 1: Execution Time ⇔ Productivity Introduction to Computer Science Xuefeng Cui Course Description Twitter: an online social networking service Computer Science Implementation: Programming Languages Ruby (2006-2009) ⇒ Scala, Java (2009-2011) Group Did Twitter make a mistake? Discussion 28

  30. Argument 1: Execution Time ⇔ Productivity Introduction to Computer Science Xuefeng Cui What was changed in 2009? Course Description Start-up ⇒ large company Productivity (length of program) ⇒ execution time Computer Science 200-300 ⇒ 10,000-20,000 requests per second per host Programming Languages Group Ruby v.s. Java Discussion Length of program 1 : 7 Execution time 50 : 1 29

  31. Argument 2: Available Library Introduction Donald J. Trump’s tweets: to Computer Science Android v.s. iPhone (different?) Xuefeng Cui David Robinson’s sentiment analysis: Course Tasks: tweets download, sentiment analysis Description Length of program: < 350 lines Computer Science Programming Languages Group Discussion 30

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend