Featured Post

Moving my blog! New url is https://patitsas.github.io/

Hi everybody, I'm migrating my blog to https://patitsas.github.io/blog/ to take advantage of the simplicity of blogging with hexo. RS...

Saturday, February 25, 2017

Computer Science for Future Leaders

There's a great physics course out there called Physics for Future Presidents. For some time I've been mulling over what a Computer Science for Future Presidents (and Prime Ministers) would look like.

Last week I taught an introduction to online safety to a group of political activists (experience report here). Along the way I taught a lot of introductory computer science and saw opportunities to cover even more.

I've taught a number of introductory CS classes that are introductions to programming. Like a lot of computer scientists I appreciate coding as an important tool in CS, but don't like how so many students walk out of their first (and potentially only) CS class with the idea that CS == programming. Computational thinking classes make for a good step away from this misconception but still don't cover all the things I'd want future world leaders to know.

The internet and cybersecurity makes a great way to introduce computing --- and to cover what future world leaders need to know about computer science.

This is what I'd cover in a 12 week course. This course would complement an introduction to programming and the two could be taken concurrently.


Computer Science for Future Leaders

  1. Introduction to the course. Searching and sorting, and big O notation. I'd introduce binary and linear search, and insertion, selection, and merge sorts. Motivate searching/sorting as necessary for internet computing (indeed, 25% of the world's CPU time is estimated to be spent on sorting tasks.) Quick review of logarithms.
  2. Symmetric key encryption. How to encrypt, some approaches for breaking encryption (build on searching/sorting from last week). Big-O of encryption/decryption algorithms.
  3. Graph theory. Define edges/vertices. How to find a shortest path over a network, minimum spanning trees. Talk about costs on networks, congestion, resilience/redundancy. Talk about where you'd want to eavesdrop on a network for maximum coverage. Big-O of relevant graph algorithms.
  4. Early communication networks. Talk about how telegraphs worked, how data was encoded. Talk about pre-wireless phone networks and how that data is encoded. Introduce some coding theory: error detection and correction over networks.
  5. What is a file? Character encoding, numerical representation, file encodings. Code lives in files too: HTML as example. What is a file system?
  6. Midterm. What is a computer? Early computers; command-line interfaces.
  7. Pre-internet computer networks. Talk about packets, packet routing, packet switching. How routers work.
  8. Internetworking: how we can connect networks together. Internet infrastructure (ISPs, IXPs, etc), TCP/IP, DNS. Who governs the various components of the internet (ICANN, RIRs, etc).
  9. Asymmetric key cryptography. Why it was necessary for the internet to grow in popularity. Whitfield-Diffie, RSA, PGP. P and NP.
  10. Secure internetworking. SSL, HTTPS, TOR, VPNs, etc. Cookies. How internet surveillance and censorship work. Cyberwarfare. Dangers of online/computerized voting.
  11. Social networking. How social network websites work. What is their business model? AI and machine learning on the internet, filter bubbles and other biases resulting from machine learning.
  12. HCI of the internet. Usability issues on the internet. HCI approach to security: who is in your personal network and how can you stay safe?

The whole course covers a lot of computer science: algorithms, theory of computation, systems, networking, crypto, security, HCI, AI. You could add in a bit on databases if you wanted, too.

Some big advantages of this approach to introducing computer science are:
  • Students get a more accurate feel for what computer science is and what it's about than in an introductory programming course.
  • Students see computer science as a human endeavour. It's history is exposed, as well as motivations for the major stages in its development.
  • Similarly, students see how CS is not value neutral. We discuss topics like neocolonialism in technology development, the role of the military in advancing computer science, how the internet is governed, and how the internet affects politics.
  • Students learn about computer security and the internet that is useful to their daily lives in a way that empowers them. 
  • Improving the state of our democracy. We need leaders and community members to understand these issues to make informed decisions.

29 comments:

  1. Customer Help number Provides easy and quick solution for every problem associated with yahoo mail account. Dial Yahoo helpline Number UK 0800 046 5027 to get instant

    solution. Yahoo contact number 24 Hours is always available to give you instant fixes for your yahoo problem.

    Yahoo support phone number

    Yahoo helpline phone number

    ReplyDelete
  2. Hotmail support number is a technical support company of hotmail which is simply to connect with the Hotmail customer service provider. The main objective of a Hotmail customer service number is to provide all the answer associated with Hotmail contact number and additionally it provides the Hotmail support for the customers related to Internet/web and Telephone.

    ReplyDelete
  3. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  4. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  5. A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  6. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  7. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  8. A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  9. A Computer Science portal for geeks. It contains well written, well thought and well
    explained computer science and programming articles, quizzes and practice/competitive
    programming/company interview Questions.
    website: geeksforgeeks.org

    ReplyDelete
  10. I have recently read that according to the US Department of Labor, Bureau of Labor Statistics, employment of computer programmers is projected to grow 8 percent from 2012 to 2022. The future outlook, in terms of sustainability and relevance for computer science professionals is very positive compared to any other broad field.

    ReplyDelete
  11. Sometimes, you get stuck when you are unable to open Yahoo on Chrome. In that case, it is highly recommended to check that you are using the latest version of chrome. Also, clear cookies and cache from the chrome and restart your device then, re-launch the chrome browser.

    For more information about Yahoo visit :- http://www.yahoo-helpline.com/how-to-recover-forgotten-yahoo-mail-password/

    ReplyDelete
  12. In order to configure the Kaspersky firewall, it is advisable to get into the settings menu of the software and from there you can easily change the configuration settings. If you still need more information or help then ask for it from the team of experts as and when needed. The experts can be easily reached at Kaspersky support number UK.

    For more information about Kaspersky visit :- https://twitter.com/KasperskyOnline

    ReplyDelete
  13. In order to deal with Norton error code 8002, it is advisable to get the windows registration entries repaired after that the user should also conduct a malware scan on the system after that the user should also get the device drivers updated. In order to get more information the user should get connected with the team of trained technicians.

    For more information about Kaspersky visit :- https://www.facebook.com/nortonsupportnumberuk/

    ReplyDelete
  14. I really loved your blogs on computer science. Keep sharing it helps me to find new topics for my Computer Science Assignment.

    ReplyDelete
  15. My name is marinawilson and I will help you out with any of your Yahoo related queries and issues. I am a well-experienced technical expert working with the technical department of Yahoo mail.Yahoo Help Number UK

    ReplyDelete
  16. ketu in 11th house is a good sign. It means that the natives will attain prosperity and everything they desire. It is good for materialistic people.

    ReplyDelete
  17. eAstroHelp is India's leading website for Astrology-based resources. The Company aims at promoting ancient occult science from India across the globe. Aquarius pisces cusp

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. This comment has been removed by the author.

    ReplyDelete
  20. Great way, you explained about the greater leader of computer science because of fast changing connected world, computer science is a key area for future across the world. The term computing covers every kind of digital technology that we use to create, store, communicate, exchange and use information but students face many problems while it’s about writing computer science assignment, such as personal obligations, lack of sense of belonging, in-class confusion, and lack of confidence. In that case you can trust the experts to make your assignment like never before. Visit Myassignmentservices.com and acquire Computer Science assignment help in Australia, you will get reliable professional available 24*7 ensures the best written assignment.

    ReplyDelete
  21. Are you looking for c++ assignment help in USA? My Assignment Services have experts that can solve this problem. The experienced team here is skilled to remove any doubt and writing problems that students think have a burden on them. They also provide assignments within the time limit with the latest formats that help students to gain high marks in their exams.

    ReplyDelete
  22. Hello, Thanks for sharing an informative post with us. This post is very useful for the students. last 5 years it is becoming a very difficult task for the students to make the assignments. If you want Computer Science Assignment Help in USA at an affordable price then contact the My Assignment Services.

    ReplyDelete
  23. Thank You so much for this information I was confused at first but now I am much clear
    Computer Science Assignment Help

    ReplyDelete
  24. After reading this article, I have got a lot of information. if you want to read more, https://www.magzica.com/computer-science-vs-cyber-security/

    ReplyDelete
  25. Thanks for sharing this artice about computer science Private Tutor Bouldin Creek

    ReplyDelete
  26. This article is full of detailed information about Computer Science Private tutor Naples

    ReplyDelete