Programming Languages Dan Grossman 2013 Optional: Course-Motivation Introduction.

Slides:



Advertisements
Similar presentations
Programming Languages Xiaojuan Cai
Advertisements

CSE341: Programming Languages Lecture 12 Equivalence Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 28 Victory Lap Dan Grossman Fall 2011.
CSE341: Programming Languages Lecture 7.5 Course Motivation Dan Grossman Fall 2011.
CSE341: Programming Languages Lecture 1 Course Mechanics ML Variable Bindings Dan Grossman Fall 2011.
CSE341: Programming Languages Lecture 2 Functions, Pairs, Lists Dan Grossman Fall 2011.
Families of Software Systems Notkin: 3 of 3 lectures on change.
CSE341: Programming Languages Interlude: Course Motivation Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Winter 2013.
PPAS 3190: Introduction to Library Research Timothy Bristow – Scott Library Political Science & Public Policy Librarian.
CSE341: Programming Languages Lecture 11 Type Inference Dan Grossman Winter 2013.
Introduction to Ruby CSE 413 Autumn 2008 Credit: Dan Grossman, CSE341.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Speech Analysing Component in Automatic Tutoring Systems Presentation by Doris Diedrich and Benjamin Kempe.
CSE-321 Programming Languages Overview POSTECH March 3, 2011 박성우.
CSE341: Programming Languages Lecture 1 Course Mechanics ML Variable Bindings Dan Grossman Spring 2013.
Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Introduction Copyright © Software Carpentry This work is licensed under the Creative Commons Attribution License See
“It’s the most important sentence of your entire essay!” THE THESIS.
Economics 2301 Lecture 37 Constrained Optimization.
The fundamental problem in education What the Teacher would like to teach.
Programming Languages Dan Grossman 2013 ML Expressions and Variable Bindings.
Programming Languages Dan Grossman 2013 Datatype-Programming in Racket Without Structs.
CSE341: Programming Languages Lecture 26 Course Victory Lap
Programming Languages Dan Grossman 2013
CSE341: Programming Languages Interlude: Course Motivation
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Spring 2016.
Programming Languages Dan Grossman 2013
CSE341: Programming Languages Lecture 11 Type Inference
Programming Languages Dan Grossman 2013
Programming Languages Dan Grossman 2013
Programming Languages Dan Grossman 2013
Programming Languages Dan Grossman 2013
Programming Languages Dan Grossman 2013
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Winter 2013.
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Spring 2017.
Programming Languages Dan Grossman 2013
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Spring 2017.
Programming Languages Dan Grossman 2013
CSE341: Programming Languages Lecture 1 Course Mechanics ML Variable Bindings Dan Grossman Spring 2017.
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Autumn 2017.
CSE341: Programming Languages Interlude: Course Motivation
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Winter 2013.
CSE341: Programming Languages Interlude: Course Motivation
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 1 Course Mechanics ML Variable Bindings Dan Grossman Fall 2017.
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Autumn 2018.
Programming Languages 2nd edition Tucker and Noonan
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Spring 2016.
CSE341: Programming Languages Lecture 12 Equivalence
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Autumn 2017.
CSE341: Programming Languages Interlude: Course Motivation
CSE341: Programming Languages Lecture 12 Equivalence
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Autumn 2018.
CSE341: Programming Languages Lecture 11 Type Inference
Principles of Programming Languages
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
Principles of Programming Languages
CSE341: Programming Languages Lecture 11 Type Inference
CSE341: Programming Languages Lecture 11 Type Inference
Programming Languages 2nd edition Tucker and Noonan
CSE341: Programming Languages Interlude: Course Motivation
Brett Wortzman Summer 2019 Slides originally created by Dan Grossman
CSE341: Programming Languages Lecture 14 Thunks, Laziness, Streams, Memoization Dan Grossman Spring 2019.
CSE341: Programming Languages Lecture 21 Dynamic Dispatch Precisely, and Manually in Racket Dan Grossman Spring 2019.
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
Presentation transcript:

Programming Languages Dan Grossman 2013 Optional: Course-Motivation Introduction

Course Motivation (Did you think I forgot? ) Why learn the fundamental concepts that appear in all (most?) languages? Why use languages quite different from C, C++, Java, Python? Why focus on functional programming? Why use ML, Racket, and Ruby in particular? Jan-Mar 20132Dan Grossman, Programming Languages

Caveats Will give some of my reasons in terms of this course My reasons: more personal opinion than normal lectures –Others may have equally valid reasons Partial list: surely other good reasons In terms of course: Keep discussion informal –Not rigorous proof that all reasons are correct Will not say one language is “better” than another –May omit “your favorite language” without malice Jan-Mar 20133Dan Grossman, Programming Languages

Summary No such thing as a “best” PL Fundamental concepts easier to teach in some (multiple) PLs A good PL is a relevant, elegant interface for writing software –There is no substitute for precise understanding of PL semantics Functional languages have been on the leading edge for decades –Ideas have been absorbed by the mainstream, but very slowly –First-class functions and avoiding mutation increasingly essential –Meanwhile, use the ideas to be a better C/Java/PHP hacker Many great alternatives to ML, Racket, and Ruby, but each was chosen for a reason and for how they complement each other Jan-Mar 20134Dan Grossman, Programming Languages