Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start 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.


Lecture 1

No description

Arman Suleimenov

on 11 March 2017

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Lecture 1

Hello. I'm Arman.
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
We'll cover:
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".
-Albert Einstein
The course:
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

Online textbook:

Programming assignments
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.
Any disadvantages?
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
Arman Suleimenov
Full transcript