Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
You can change this under Settings & Account at any time.
Transcript of Lecture 1
Introduction to CS in Java
Adopt and track daily habits from the most effective people in the world: from Benjamin Franklin and Ludwig van Beethoven to Bruce Lee and Haruki Murakami.
Reach goals in 7 areas of your life through the power of visualization and daily steps towards them
Coming in the App Store in November 2014
The goal is to learn programming in 8 weeks
What is your major?
Have you had any programming experience?
Your favorite book?
The person you admire?
My goal here is destroy the myth that programming is hard and not for everyone
Empower you to build amazing things which will change the world
programming in Java
theory of computation
applications in science, engineering + art, finance, music, etc.
"Computers are incredibly fast, accurate, and stupid; humans are incredibly slow, inaccurate, and brilliant; together they are powerful beyond imagination".
4 interactive lectures a week: Mon-Th, 3:45-5pm, 5:15-6:30pm, SB 209
1 programming assignment a week, due Mon, 11:59pm
Office hours with @rmansu, Fri, 2-6pm
2 two-part exams (written + programming): one in Nov, one in Dec
The course website is TBA :)
Online discussion: http://bit.ly/intro-to-cs
40% - programming assignments
50% - exams (25% - exam #1, 25% - exam #2)
10% - attendance
extra credit / prof's discretion to adjust for borderline cases
essential part of learning Computer Science
address important scientific/commercial problems
Sending a secret message with a cryptographic key
Alice wants to send a secret message to Bob
They exchanged a cryptographic key in the past
Alice uses the key to encrypt the message
Bob uses the same key to decrypt the message
Critical: w/o the key, Eve can't understand the message
We need to design a method to encrypt/decrypt data
1. Enigma encryption machine, German code, WWII, broken by Turing, broken code helped win Battle of Atlantic by providing U-boat locations
2. One-time pad
3. Linear feedback shift register
In the digital world, the basic unit of information is a bit
In modern computing, everything can be represented as a sequence of bits: text, numbers, sounds, pictures, computer programs
98 (decimal) = 1100010 (binary)
Now let's try to encrypt the message 'EASY' with the pad '0123'.
Alice's device uses XOR machine to encrypt the message
What kind of machine does Bob's device use to decrypt it?
Advantages of one-time pads
Very simple encryption method.
Decrypt with the same method.
Provably unbreakable if bits are truly random.
Widely used in practice.
Easily breakable if seed is re-used.
Truly random bits are very hard to come by, e.g. random.org
Need separate secure channel to distribute key.
Pad must be as long as the message, e.g. secret 1GB video
'Bill Gates's first company made software for traffic lights. Steve Jobs's first company made plastic whistles that let you make free phone calls. Both failed, but it's hard to imagine they were too upset about it. That's my favorite thing that changes today. You no longer carry around a number indicating the sum of all your mistakes. From now on, failure doesn't matter: you only have to be right once'. -Drew Houston, founder of Dropbox