This is CS 50. Harvard College s Introduction to Computer Science I \ DAVID J. MALAN 99 WEEK 2

Podobne dokumenty
Stargard Szczecinski i okolice (Polish Edition)

Zarządzanie sieciami telekomunikacyjnymi

Pobieranie argumentów wiersza polecenia

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Sieciowa komunikacja procesów - XDR i RPC

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Tychy, plan miasta: Skala 1: (Polish Edition)

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna

Wybrzeze Baltyku, mapa turystyczna 1: (Polish Edition)

How to Connect a Siretta Industrial Router to a VPN Tunnel Using OpenVPN Protocol

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Laboratorium Programowania Kart Elektronicznych

Uzupełnienie dot. przekazywania argumentów

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Arrays -II. Arrays. Outline ECE Cal Poly Pomona Electrical & Computer Engineering. Introduction

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Moduł odtwarzacza plików MP3 audio

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Blow-Up: Photographs in the Time of Tumult; Black and White Photography Festival Zakopane Warszawa 2002 / Powiekszenie: Fotografie w czasach zgielku

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Wstęp. Ale po co? Implementacja

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science

Installez un certificat ssl par l'intermédiaire du CLI sur un ESA

Projektowanie klas c.d. Projektowanie klas przykład

C++ język nie dla ludzi o słabych nerwach. Małgorzata Bieńkowska

Logika rozmyta typu 2

Kielce University of Technology.

2018 Marcin Kukliński. Niesforne bity i bajty

DODATKOWE ĆWICZENIA EGZAMINACYJNE

INSTRUKCJE JAK AKTYWOWAĆ SWOJE KONTO PAYLUTION

What kind of. Data Scientist do you need?

you see decision. oznacza to, Whenever kiedy widzisz biznes, someone once made Za każdym razem, który odnosi sukces,

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

photo graphic Jan Witkowski Project for exhibition compositions typography colors : : janwi@janwi.com

Dzisiejszy wykład. Przestrzenie nazw (namespaces) Funkcje o zmiennej liczbie argumentów

Ukryte funkcjonalności w oprogramowaniu i urządzeniach elektronicznych. mgr inż. Paweł Koszut

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Programowanie obiektowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

it = 0; memset((void *)ptr, 0, items*sizeof(double)); cout << "Konstruktor sparametryzowany " << title << " adres: " << ptr << "\n";

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

ELF. system: pokój młodzieżowy / teenagers room MEBLE MŁODZIEŻOWE / YOUTH ROOM FURNITURE ELF

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Programowanie Komputerów

Pytania cudzoziemców zwiedzających Kamienicę Szołayskich;

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

deep learning for NLP (5 lectures)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Machine Learning for Data Science (CS4786) Lecture 11. Spectral Embedding + Clustering

Zajęcia z języka angielskiego TELC Gimnazjum Scenariusz lekcji Prowadzący: Jarosław Gołębiewski Temat: Czas Present Perfect - wprowadzenie

Ćwiczenia na egzamin - zaliczenie różnic programowych

Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Machine Learning for Data Science (CS4786) Lecture 24. Differential Privacy and Re-useable Holdout

Microsoft IT Academy kurs programowania

Programowanie Proceduralne

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk

Wykład :37 PP2_W9

Perspektywy PDF. ==>Download: Perspektywy PDF ebook By 0

tradycyjna normalny multicache bardzo du y mobilna

Krótkie wprowadzenie do korzystania z OpenSSL

Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający. Pakiety wrapfig i listings. 1. Pakiet wrapfig. 21 marca 2015

archivist: Managing Data Analysis Results

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to teachers

2 nd ClimMani EU COST Action Meeting Poznań, Poland September, 2015

Programowanie. Sylwester Arabas. prowadzący ćwiczenia: Magdalena Kuich, Krzysztof Piasecki, Łukasz Dulny. Wydział Fizyki Uniwersytetu Warszawskiego

ROSSO. system: pokój dzienny / living room MEBLE POKOJOWE / SITTING ROOM FURNITURE ROSSO

Wprowadzenie do języka Java

OpenPoland.net API Documentation

Platformy Programistyczne Podstawy języka Java

część 16 struktury rekurencyjne i ich zastosowania drzewa binarne, algorytmy rekurencyjne dla drzew binarnych

METHOD 2 -DIAGNOSTIC OUTSIDE

Wskaźniki. Pamięć dynamiczna

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 8: Structured PredicCon 2

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Transkrypt:

This is CS 50. Harvard College s Introduction to Computer Science I COMPUTER \ SCIENCE 50 WEEK 2 DAVID J. MALAN 99 malan@post.harvard.edu 1

Or fher gb qevax lbhe binygvar! Image from http://www.questexperiences.com/quest2/movieadventures/default.asp. 2

ROT13 Double ROT13 is pretty good, but for extra security, quadruple ROT13 is available. It is probably pretty computationally expensive to pass it through the cipher than many times, but security is worth it. http://channel9.msdn.com/forums/coffeehouse/221675-can-someone-translate-this-please/ 3

Academic Honesty 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 4

Mobile Phones 5

Mobile Carriers 6

And you are... 7

Dorms 8

Houses 9

Best House 10

Operating Systems 11

Why 50? 12

Comfort Levels 13

Prior Courses 14

How to Write a Program in... C++ Java LISP Perl PHP... see hai.{cc,lisp,php,pl}, Hai.java 15

Bugs see buggy{1,2}.c Image from http://www.history.navy.mil/. 16

Casting int i = (int) 'A'; char c = (char) 65; see ascii{1,2,3}.c, battleship.c 17

Functions Parameters and Arguments 99 bottles of beer on the wall, 99 bottles of beer, Take one down, pass it around, 98 bottles of beer on the wall. see beer{1,2,3,4}.c Image from http://.about.com/d/tvcomedies/1/7/n/5/-/-/homer_simpson.jpg. 18

Functions Scope, Local Variables, Temporary Variables void swap(int a, int b) { int tmp; } tmp = a; a = b; b = tmp; see buggy3.c 19

Functions Scope, Global Variables void increment() { x++; } see buggy4.c, global.c, buggy5.c 20

The Stack Frames 21

Memory Management Sneak Preview 22

Functions Return Values int cube(int a) { return a * a * a; } see return{1,2}.c 23

Arrays see array.c, buggy6.c, string{1,2}.c, capitalie.c Image from http://computer.howstuffworks.com/c10.htm. 24

Free Resources http://www.howstuffworks.com/c.htm http://www.cs50.net/resources/cppreference.com/ 25

Command-Line Arguments argc, argv int main(int argc, char *argv[]); see argv{1,2}.c 26

CS 50 s Library (Memory Leaks) bool string char GetChar(); double GetDouble(); float GetFloat(); int GetInt(); long long GetLongLong(); string GetString(); see http://www.cs50.net/pub/releases/cs50/ 27

Cryptography Or fher gb qevax lbhe binygvar! Image from http://www.radioarchives.org/annie/. 28

Cryptography Enigma Machine Image from http://en.wikipedia.org/wiki/enigma_machine. 29

Cryptography Secret (Symmetric) Keys Image from http://www.nuitari.de/crypto.html. 30

Cryptography Caesar Cipher Image from http://commons.wikimedia.org/wiki/image:hw-caesar.jpg. 31

Cryptography Caesar Cipher c i = (p i + k) % 26 Image from http://en.wikipedia.org/wiki/caesar_cipher. 32

Cryptography Vigenère Cipher c i = (p i + k i ) % 26 p H E L L O, W O R L D + + + + + + + + + + k F O O B A R F O O B c M S Z M O, N T F Z E 33

Cryptography DES 72,057,594,037,927,936 Figure from Larry Nyhoff s C++: An Introduction to Data Structures 34

Cryptography Public and Private (Asymmetric) Keys Figure from http://www.nuitari.de/crypto.html. 35

Cryptography PGP - - - - - BEGIN PGP PUBLIC KEY BLOCK- - - - - Version: PGP Key Server 0.9.6 mqgibefmqourbadaifcksykpbmvsmvspdlhliasb0xe4cyoieca5lqcuzi9z+yxu OSMkbQ+VSAvtP31/7o9pNf6LsLU4ADA5knZVB+GfZZpiGnEd62qKDKNpjVo20NRH Xcd/4RpxE6aJWUWe2tPqLSCi3NFLPEhnfo5v9WyLRHjqdIQKc6vGAT41BQCg/5/1 vnpkhya6vrfdiuonwqkpaud/1lahxpxfxlyn8k/gv/wl0y97drdq0vsrqkh57it YKy/Xjv4qNWZ/dSXI7Fa/6xULRuYK6tcr5aI6bFVLBl4fIXn5tapcCdYLAMo2ap Uf/+PRJgSNUg4j50F5GjjiKco7FYldaF3oy6DVQjEtSHN2TFcVOMHJUax1Ip/U DRjIA/9vOO/MZ7FspAW1ZOdC13CxVSnig4oALGbNf76RViFGOl0bByVLVlBxMiIl v8wxsbydqxsvokpz/ucofsqedo+l9xmiep/luq4k2owkfyab2u33+hkfs8rm4j Wy1i8jXNEfyFsqmJ0RKfrJe7jXX34ZMfbPc3r39eR4w9lo+bQmUm9uYWxkIEwg Uml2ZXN0IDxyaXZlc3RAY3NhaWwubWl0LmVkdT6JAEYEEBECAAYFAkFMquoACgkQ 5DGedS1eYN7UGACgEZmCLhV2kc3/5curi183AiMAn3NOJx6SJOL3n2fNAAar 7B5M09ZiQBGBBARAgAGBQJBTK1BAAoJEKXuoAZ/b3Wi9oAoPYpdchyMLydUjh GxiwYxQEZS8uAJ91BLfY5FIIGYLgH/QkcUS+Ps2N4kAVAQQEQIAFAUCQUyqhQUJ AmpPgAQLAwIBAhkBAAoJEIdenepUv6CUvGQAoKNCajxfdNc1/Lf73xvQLq//YBRt AKCl5mvYi3D+w+4NikeXcA+tQe9korkEDQRBTKqFEBAA+RigfloGYXpDkJXcBWyH huxh7m1fhw7y4kn5xsncegus5d/jrps2mept13wcfkiatrxlkzmpnwd00//jocww IE6YZbjYDe4QXau2FxxR2FDKIldDKb6V6FYrOHhcC9v4TE3V46pGPvOF+gqnRRh 44SpT9GDhKh5tu+Pp0NGCMbMHXdXJDhK4sTw6I4TZ5dOkhNh9tvrJQ4X/faY98h8 ebbyhth1+/bbc8sdesyrq2dd4+jwcv2hkcylrqmus2upogbtaab81qujeh76dyro H3SET8rF/OkQOnX0ne2Qi0CNsEmy2henXyYCQqNfi3t5F159dSST5sYjvwqp0t8 MvZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Sgg2gGnVqMU6Y9AVfPQB8bLQ6mU rfdmzizj+aydvwxpf9sh01d49vlf3hzst09jdvomefxklnn/biude/f/ha8g8vh MGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2 ansoa1fhq98ilmcffstjvbyspaq/clwxinjrtvjlhdonm0/xwxv0ojhrhs3jmh LLUq/hsSlAGBGNfISnCnLWhsQDGcgHKXrKlQZlp+r0ApQmwJG0wg9ZqRdQZ+c fl2jsyizjrqrol7dves91hcaagip/0pnijshshyjl56yfftmotm2016xagermm b6ej2vhxqejjuaov+hz3odm2rva0xr9f4ru7afaiuedgmbet/zp5uit9cauwodrq wiapdxxas5hfesddwpc4ruigig3wu7unwq8kgy8gx+i0xgpvkumdwb+vcz0zrl0 LC/SvyXyPNb87RAN1ttuDspFQ4/puUox/ICurJbBWx09oc29yyXiGX8YHfF6NFa UCSJH5WlfS9uIQEdip6dmFB7Q2qvOYHLF5nAg2Xvg8LWI3dcxH0OXHVy2KkG1E bndutq8ci8y1+i6pdfqb0dwvmivvshjmltuzbuy1d8vsoz2k0//pcnmuqhu8zfh CAXwmrJAfYhU8TP6P4YKqa/W4Cxwy897yaaZHoR3iqhdDakMHrnDPAw4isGJ20j PEXpQ5H4i7PEqk+phVxiEhbLZbdd1y0ZK/5dub5ci5mCwGZBVb9XTecZruwOe7 ptwivbvyhgbltuufsf4wewvoaxcc6efrpeqbrm+tgcgcfwu1v9oywomhlqwb9ld VjnNkRoNuaEa2o8CnheehNU05NSASsSo42WWbkRGErZZaWiafLe+XhDC+hImWwO dl5zatkq5qjp3gufw0fldqayjly1knn9p+cplhpeq5hq27vculda1l5amnkibuss SrRP9MhWiQBMBBgRAgAMBQJBTKqFBQkCak+AAAoJEIdenepUv6CUbCkAn13adk2J HcZLgEhuNLZPTye4iNgRAKCtq+gBowVJ761YhVK2NMBi+8B3sw== =j2m - - - - - END PGP PUBLIC KEY BLOCK- - - - - Ron Rivest s public key from http://pgp.mit.edu/. 36

Cryptography RSA Public Key: (e, n) Private Key: (d, n) To Encrypt: - c = p e (mod n) To Decrypt: - p = c d (mod n) Ron Rivest s public key from http://pgp.mit.edu/. 37