600.105 M & Ms
(the CS freshman experience)
Fall 2015

Meetings : Tuesdays, 4:30-5:20p, Shaffer 303
Primary Instructor : Prof. Gregory Hager
Course Coordinator : Prof. Joanne Selinski
Course Web Page : http://www.cs.jhu.edu/~joanne/cs105/fall15.html

Overview: This course provides freshmen computer science majors with an introduction to the field and department. Classes will be grouped into several blocks with presentations by different faculty members, each focused on a central theme. Lectures will be interactive, enabling students to think about and explore topics in a fun way. Transfers into the major and minors may enroll by permission only.

Grading: Pass/Fail is the only grading method available for the course. Attendance is required. Students are expected to actively participate in each session. There will be readings and quizzes periodically throughout the course. You will also read a book related to the discipline and write a 2-3 page paper on it, due the last class day (12/1).

Text: The book for 2015 is "Blown to Bits: Your Life, Liberty and Happiness after the Digital Explosion", Hal Abelson, 2008. It is freely available on-line through a Creative Commons License: www.bitsbook.com/excerpts.

Recommended Reads: There are several other books that may be of interest to you as CS majors and we encourage you to explore them, now or later. Just do an internet search for sources.

Lecture Schedule: This table of topics and references will be updated as the semester progresses.

DateTopicReadings
9/1 & 9/8 History of Computing - People & Machines [slides] Alan Turing, see the slides for lots more!
9/15 Break-outs A) Scott Smith: The PLATO computer system and the evolution of computer technology

PLATO [1] was an experimental computer network built in the 1970’s which had many features that did not become mainstream until many years later: plasma panel graphics displays, touch screens, multiplayer and first-person shooter games, voice synthesis, etc. We will explore PLATO, and compare how the PLATO architecture solved various problems compared to the modern Internet/desktop/server architecture solution. A PLATO simulator exists [2] and we will log in to the simulator and show some of the amazing power of 70’s technology.

[1] Plato, Wikipedia, [2] simulator
B) Vladimir Braverman: Algorithms in our daily life

In this talk, we will (very informally!) learn how to use algorithms to address the following problems.

  • GPS and Navigation using Shortest paths: GPS Routes
  • Web search using Page Rank: article1, article2
  • Big Data Analysis using Clustering and Nearest Neighbor Search: article1, article2, video, coursera course
  • Other methods (if time permits): matrix multiplication, linear programming and the probabilistic method

(see links per topic)
C) Russ Taylor: Medical Robotics

This session will discuss ongoing research at the JHU Engineering Research Center for Computer-Integrated Surgical Systems and Technology (CISST ERC) to develop computer-integrated interventional systems (CIIS) that combine innovative algorithms, robotic devices, imaging systems, sensors, and human-machine interfaces to work cooperatively with surgeons in the planning and execution of surgery and other interventional procedures. The impact of CIIS on medicine in the next 20 years will be as great as that of Computer-Integrated Manufacturing on industrial production over the past 20 years. A novel partnership between human surgeons and machines, made possible by advances in computing and engineering technology, will overcome many of the limitations of traditional surgery. By extending human surgeons. ability to plan and carry out surgical interventions more accurately and less invasively, CIIS systems will address a vital need to greatly reduce costs, improve clinical outcomes, and improve the efficiency of health care delivery.

CIIS systems combine images and other information about an individual patient with .atlas. information about human anatomy to help clinicians plan how to treat the patient. In the operating room, the patient-specific plan and model are updated using images and other real-time information. The system has a variety of means, including robots and .augmented reality. displays to assist the surgeon in carrying out the procedure safely and accurately. The same technology will be used to assist in subsequent patient follow-up and in enabling statistical quality control to help improve the overall efficacy and safety of surgery and interventions.

Medical Robotics Survey
9/22 The Information Age [updated slides] Net Neutrality: article 1, article 2
9/29 Google & the Big Data Explosion (Yanif Ahmad) - slides Google search deconstruction
10/6 Break-outs - Current A) Peter Froehlich: Free Software

Software is everywhere: On your computer, your phone, possibly your toaster. Should you be free to run whatever software you want on your devices? Should you be free to study how the software in your life works? Should you be free to modify software, improve it, adapt to a different purpose? And should you be free to distribute software you have modified so that others can benefit from your work? Whose interest is served when you're NOT free to do these things? It's free as in freedom, not free as in beer.

Introduction to Free Software, What is Free Software?, Why Hackers Do What They Do
B) Matt Green: Practical Cryptography

Over the past several decades cryptography has become an indispensable tool for constructing secure electronic banking systems, Internet-based commerce, and secure mobile telephony. Due to the rapid adoption of this technology, many cryptographic systems have achieved widespread deployment without being subjected to proper design and evaluation. This has led to a number of widely-publicized .breaks.: reports of serious vulnerabilities, including flaws in WiFi encryption, GSM cellular networks, SSL, disk encryption, and deployed biometric systems. In this talk I will discuss the ways that real cryptographic systems fail in practice. My focus will be on the techniques used in practical security systems, the mistakes that lead to failure, and the approaches that might have avoided the problem.

C) Philipp Koehn: Can Computers Talk?

While computers already beat us in tasks such as playing chess or finding directions when driving, having a conversation with a computer still breaks down very quickly. We seem to be making progress these days with speech interfaces such as Siri, or automated language translation on the web, but these are far from perfect. Why is processing natural language so hard? What is it even good for?

Wikipedia NLP, article
10/13 & 10/20 Modern Computing [slides] Learning Article
10/27 Computing in Healthcare [slides] articles: Transforming Health Care, StepStream
11/3 Privacy [slides] A very brief overview of security vs. privacy: Security vs. Privacy, Target case (synopsis), Target full version, lecture on differential privacy
11/10 Future Implications: What Can't a Computer Do? [slides] Dreyfus, AI warning, The Singularity
11/17 Break-outs A) Abhishek Jain: Zero-Knowledge Proofs

Suppose you know a solution to a hard sudoku puzzle. How can you prove it to a friend without revealing the solution? Zero-knowledge proofs to the rescue! Zero-knowledge proofs, invented by Goldwasser, Micali and Rackoff in the 1980s, provide a way to prove any statement without revealing anything except the validity of the statement. In this session, I will introduce this seemingly magical and paradoxical idea.

Nature article on Zero-Knowledge Proof for Nuclear Warhead Verification, A primer on Zero-Knowledge
B) Xin Li: Randomness & Computation

Have you ever been to a casino? Have you played with coins and dice? Do you know that coin flips also help computation in many ways? In this session we will discuss situations where coin flips help a lot in computation, together with cases where we can get rid of them, and cases where we really need them.

Articles: Use of Randomness in Computation, Randomness and Computation
12/1 Book Discussion Paper due in class!

Computer Science Academic Integrity Code:

Cheating is wrong. Cheating hurts our community by undermining academic integrity, creating mistrust, and fostering unfair competition. The university will punish cheaters with failure on an assignment, failure in a course, permanent transcript notation, suspension, and/or expulsion. Offenses may be reported to medical, law or other professional or graduate schools when a cheater applies.

Violations can include cheating on exams, plagiarism, reuse of assignments without permission, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition. Ignorance of these rules is not an excuse.

Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at anyone else's solutions (including program code) to your homework problems. However, you may discuss assignment specifications (not solutions) with others to be sure you understand what is required by the assignment.

If your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.

Falsifying program output or results is prohibited.

Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor, TA or CAs, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.

On every exam, you will sign the following pledge: "I agree to complete this exam without unauthorized assistance from any person, materials or device. [Signed and dated]". Your course instructors will let you know where to find copies of old exams, if they are available.

For more information, see the guide on "Academic Ethics for Undergraduates" and the Ethics Board web site (http://ethics.jhu.edu).