Computer Science at Carnegie Mellon Freshman IC Peter Lee Professor and Associate Dean.

Slides:



Advertisements
Similar presentations
Advanced Information Systems Development (SD3043)
Advertisements

IMPORTANT READ CAREFULLY BEFORE USING THIS PRODUCT LICENSE AGREEMENT AND LIMITED WARRANTY BY INSTALLING OR USING THE SOFTWARE, FILES OR OTHER ELECTRONIC.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Types, Proofs, and Safe Mobile Code The unusual effectiveness of logic in programming language research Peter Lee Carnegie Mellon University January 22,
CS 110 Lab Spring Outline >Computer Science Lab Overview (syllabus)< Why we're learning programming with Java How to succeed.
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 18.
CS 300 – Lecture 3 Intro to Computer Architecture / Assembly Language Digital Design II.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Computers in Society History of Computing. Homework Assignment #3 is ready to go – let’s have a look. Questions about HW1? More people to schedule for.
CSCD 555 Research Methods for Computer Science
Lectures on Proof-Carrying Code Peter Lee Carnegie Mellon University Lecture 1 (of 3) June 21-22, 2003 University of Oregon 2004 Summer School on Software.
Computability to Practical Computing - and - How to Talk to Machines.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Computer Science 101 Introduction to Programming.
Artificial Intelligence & Cognitive Science By: Andrea Pope, Cindy Burdine, and Kazumi Inoue.
Chapter 01 Nell Dale & John Lewis.
Programming Languages
USS Yorktown (1998) A crew member of the guided-missile cruiser USS Yorktown mistakenly entered a zero for a data value, which resulted in a division by.
Mobility, Security, and Proof-Carrying Code Peter Lee Carnegie Mellon University Lecture 1 Course Overview July 10, 2001 Lipari School on Foundations of.
Chapter 14 Education. Chapter Outline  Education: A Functionalist View  The Conflict Theory View  Issues in American Education.
Middleware Promises Warranties that Don’t Indemnities that Won’t Stephen Rubin, Esquire
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Bienvenue à l'atelier de Sakai.
Chapter 16 Designing Effective Output. E – 2 Before H000 Produce Hardware Investment Report HI000 Produce Hardware Investment Lines H100 Read Hardware.
Algorithms and Programming
Introduction to Programming Peggy Batchelor.
COMPUTER PROGRAMMING I SUMMER 2011 Programming Languages.
CS 430/530 Formal Semantics Paul Hudak Yale University Department of Computer Science Lecture 1 Course Overview September 6, 2007.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
Chapter 1 The Big Picture.
Computer Science 101 Introduction to Programming.
CS101 Introduction to Computing Lecture Programming Languages.
PROGRAMMING. Objectives Define the term program List and explain the steps involved in developing a program.
Representation of Symbolic Expressions in Mathematics Jay McClelland Kevin Mickey Stanford University.
CS/ECE 3330 Computer Architecture Kim Hazelwood Fall 2009.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Digital Design and Computer Architecture Dr. Robert D. Kent LT Ext Lecture 1 Introduction.
CSE 311 Foundations of Computing I Lecture 8 Proofs and Set Theory Spring
“The study of algorithms is the cornerstone of computer science.” Algorithms Fall 2011.
Database Systems Microsoft Access Practical #3 Queries Nos 215.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Liang, Introduction to C++ Programming, (c) Chapter 1 Introduction to Computers, Programs, and C++
How a Computer Processes Data With today’s technology a little knowledge about what’s inside a computer can make you a more effective user and help you.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Getting Started with MATLAB (part2) 1. Basic Data manipulation 2. Basic Data Understanding 1. The Binary System 2. The ASCII Table 3. Creating Good Variables.
A Java implementation of Peirce’s Existential Graphs* faculty advisors: Bram van Heuveln (Philosophy) Dennis Higgins (Math & Computer Science) student.
Mobility, Security, and Proof-Carrying Code Peter Lee Carnegie Mellon University Lecture 1 Course Overview July 10, 2001 Lipari School on Foundations of.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
CSE 311 Foundations of Computing I Lecture 9 Proofs and Set Theory Autumn 2012 CSE
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
 Computer Languages Computer Languages  Machine Language Machine Language  Assembly Language Assembly Language  High Level Language High Level Language.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
CSE 311: Foundations of Computing Fall 2013 Lecture 8: Proofs and Set theory.
CS1428 Foundations of Computer Science I The Basics.
Dr. M. Al-Mulhem Introduction 1 Chapter 6 Type Systems.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Introduction to Software Engineering
Chapter 1 Introduction to Computers, Programs, and C++
CS101 Introduction to Computing Lecture 19 Programming Languages
C++ Programming: From Problem Analysis to Program Design
Programming Languages and Translators
Introduction to Software Engineering
The Top 10 bugs
Java objects: a first view
Presentation transcript:

Computer Science at Carnegie Mellon Freshman IC Peter Lee Professor and Associate Dean

Envy

A Good Time to be Alive My career Your life

LIMITED WARRANTY. Microsoft warrants that (a) the SOFTWARE PRODUCT will perform substantially in accordance with the accompanying written materials for a period of ninety (90) days from the date of receipt, … LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, …) ARISING OUT OF THE USE OF … THE SOFTWARE PRODUCT… MICROSOFT’S ENTIRE LIABILITY … SHALL BE LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE SOFTWARE PRODUCT OR U.S. $5.00; PROVIDED...

“If the automobile had followed the same development as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and...

“If the automobile had followed the same development as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year killing everyone inside." - Robert Cringely

Arianne 5

“Better, Faster, Cheaper”

The USS Yorktown “After a crew member mistakenly entered a zero into the data field of an application, the computer system proceeded to divide another quantity by that zero. The operation caused a buffer overflow, in which data leaked from a temporary storage space in memory, and the error eventually brought down the ship's propulsion system. The result: the Yorktown was dead in the water for more than two hours.”

Some Advice

“Objects in calendar are closer than they appear”

Fail fast

“It was a dark and stormy night…”

Learn to express yourself in code

Hi!

Don’t be afraid of the faculty

Be a good team member and leader

“Students learn first and foremost from each other, and bringing them all together is the most important role of the university.” — From “Quality Communication through Time and Space” James Morris, 1982

Think for yourself

History

:-)

Gates Center for Computer Science

Multimedia MIME Andrew Message System Mulberry Cyrus …

Wired campuses And free internet access Established by CMU in

Java, Common Lisp Design projects started at CMU...

Who are you? >26 different states, >12 countries Median SAT near 1500 ~40 novice/beginner programmers ~33% women 96% predict graduating in the top half of the class The best students ever to walk the CMU campus.

Early curriculum Very intensive Attempts to give everyone a basic CS background in first two years Very open second two years Three different programming languages

“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson and Sussman

“Programming is an explanatory activity.” — Robert Harper

“If we spoke a different language, we would perceive a somewhat different world.” — Wittgenstein

“C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg.” —Bjarne Stroustrup

“The problem with using C++... is that there's already a strong tendency in the language to require you to know everything before you can do anything.” — Larry Wall

“If you want a language that tries to lock up all the sharp objects and fire- making implements, use Pascal or Ada: the Nerf languages, harmless fun for children of all ages, and they won't mar the furniture.” — Scott Fahlman

Be open-minded and have fun

“Once a logical formalism is established one can expect that a systematic, so-to-say computational, treatment of logic formulas is possible, which would somewhat correspond to the theory of equations in algebra.” — Hilbert, 1908

“I expect that digital computing machines will eventually stimulate considerable interest in symbolic logic… The language in which one communicates with these machines … forms a sort of symbolic logic.” — Alan Turing

Formal Proofs Write “x is a proof of P” as x:P. Examples of predicates P: (for all A, B) A and B  B and A (for all x, y, z) x<y and y<z  x<z What do proofs look like?

Inference Rules We can write proofs by stitching together inference rules. An example inference rule: If we have a proof x of P and a proof y of Q, then x and y together constitute a proof of P  Q. Or, more compactly:  Given x:P, y:Q then (x,y):P*Q.

More Inference Rules Another inference rule: Assume we have a proof x of P. If we can then obtain a proof b of Q, then we have a proof of P  Q. Given [x:P] b:Q then fn (x:P) => b : P  Q. More rules:  if x:P*Q then fst(x):P  if y:P*Q then snd(y):Q

Types and Proofs So, for example: fn (x:P*Q) => (snd(x), fst(x)) : P*Q  Q*P We can develop a full metalanguage based on this principle of proofs as programs. Codified in languages such as ML. Typechecking gives us proofchecking!

ML-like Programming Languages The class of ML-like programming languages is based on this notion that proofs are programs and propositions are types. Research on this class of languages actually pre-dates the invention of computers by several decades!