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 2 - Oct 14 2014

No description

Arman Suleimenov

on 4 July 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Lecture 2 - Oct 14 2014

'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
Now let's talk about the 2nd example - linear feedback shift register
A pseudo-random number generator is a deterministic machine that produces a long sequence of pseudo random bits.
Deterministic: given the current state of the machine, we know the next bit. An absolute requirement: Alice and Bob need the same sequence.
Random: we never know the next bit.
Pseudo-random: the sequence of bits appears to be random.

Ex. 1: No long repeats
Ex. 2: About the same number of 0s and 1s
Ex. 3: About the same number of 00s, 01s, 10s, and 11s
Task for you: the first 10 steps of [5,4] LFSR with initial fill 00001.
• Very simple encryption method.
• Decrypt with the same method.
• Scalable: 20 cells for 1 million bits; 30 cells for 1 billion bits.
• Widely used in practice, e.g. military cryptosystems.
• Easily breakable if seed is re-used.
• Still need secure key distribution.
• Experts can crack LFSR encryption.
Let's get into the basics of programming. Finally.
Why do you need to know how to program?
Natural language instructions
Apps are great when they do what you want
Programming enables you to make a computer do anything (almost) you want
“Instead of imagining that our main task is to instruct a
computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do". -Donald Knuth, author of 'The Art of Computer Programming', father of analysis of algorithms, Turing Award, Stanford University
not just for experts, or selected few
natural, satisfying and creative experience
new intellectual endeavor
an opportunity to change the world
Need to learn what computers can do
Need to learn a programming language
We choose Java
widely used and available
under continuous development since early 90s
full set of modern abstractions
automatic checks for mistakes in the programs
Why Java?
You need to start with some language
No language is perfect!
“There are only two kinds of programming languages: those people always complain about and those nobody uses.” -Bjarne Stroustrup, creator of C++
We'll use the minimal subset of Java and develop general programming skills applicable to many languages.

The point: it's not about the language!
Full transcript