CS 227 meeting -*- Outline -*- * Why Scheme? ** a misconception It's a misconception that Com S 227, or Com S 228 is a course about a language (a trade or skills in that langugage course) - Com S 228 is about data structures (C++ is a vehicle) - Com S 227 is about programming (Scheme is a vehicle) Your first task is to find out what computing is about, and whether you like it - specific language skills can wait. Second task is to learn a framework for continued professional growth - specific skills will change over time even in 4 years Note: you will learn C++ in 228, can help you get that summer job (I never had a summer computing job until I was a senior) ** our purpose to get you interested in computer science to show you what programming is like develop programming skills for the future of programming this is best accomplished with Scheme (in our experience, at the present time): - best textbooks - do the most interesting things - look at more of the future of programming *** other schools teaching Scheme You don't just have to take our word for it... --------------------------------- WHAT SCHOOLS TEACH SCHEME FIRST? MIT Indiana Columbia U. Johns Hopkins Yale Gustavus Adolphus Coll. Rice University Helsinki U, Finland UCLA U. Cal., Berkeley U. Cal., Davis Ryerson Polytech. Inst. U. Oregon Royal Inst., Sweden Washington U. U. of Delaware U. Mass U. of Br. Colum. Iowa State Syracuse U. U. of Illinois U. of Chicago U. Geneva Princeton U. Queen's U. Canada St. Olaf Brussels Free U. San Jose St. U. Louisville Monash U., Aust Brandeis U. Clarkson U. Delft U., Netherlands Landler Coll. Northeastern U. Oberlin Coll. Northwestern U. Rowan Coll. Swarthmore Coll. Tampere U., Fin Technion, Israel Trinity U. Erlangen-Nuernberg, Ger. U. Florida U. Minnesota U. Oslo, Norw. U. Southhampton, Eng. Wesleyan U. U. Waterloo, Can. ------------------------------ Above data is as of Jan 1993 *** details on the above (omit in class) According to Terry Kaufman: colleges and Universities using Scheme are: 127 colleges/universities worldwide - 49 of these use Scheme in introductory courses 85 colleges/universities USA only - 35 of these use Scheme in introductory courses Sources: 1st group comp.lang.scheme and Richard Reid at MSU, or reliable info (personal reports); 2nd group comp.lang.scheme only (with course number) (Monash university is claimed by both Scheme and C++...) According to Richard Reid, 9 other Universities start with similar languages (SML = 5, ISETL = 2). According to Richard Reid, as of October 1992, only 8 universites were doing introduction in C++ Mich. State & Oregon State U. Santa Clara & U. of Birmingham, UK U. of Virginia & ITR, Switzerland Monash Univ. (?) & Wheaton U. with 21 others starting in C (including CMU, Duke, San Diego St., USC, Virginia Tech) 124 teach Pascal, 57 Ada, 50 Modula-x, 8 Fortran, 4 Turing, none BASIC ** how Scheme helps How does scheme help us have more fun. Basically by suppressing details *** suppressing syntactic details ------------------------------------- SCHEME HAS SIMPLER SYNTAX Scheme C or C++ ========================================= (+ 1 2) 1 + 2 (f 3) f(3) (compose f g) (if (= x 2) y (f y)) (x == 2) ? x : f(y) (define x 5) int x = 5; (define f int f (int x) { (lambda (x) x++; (add1 x))) } -------------------------------------- Notice how regular the left side is, and how many special things are on the right? So we don't need to spend lots of time on the complications of such a language. *** suppressing semantic details simpler execution model (the programming language does more of the boring details for you) evolution of technology - expensive features are developed to make humans more productive - eventually they become commonplace **** Cooking analogy show evolution of baking ovens open fire (flat irons placed on a rack) brick ovens (and ceramic (later tin) dishes) coal/oil/parafin/gas stoves electric stoves theromostats the point: these fancy new inventions allowed the cook to make more elaborate pastries, and although most advances were more expensive to begin with, they eventually became very common **** Car analogy also in autos expensive features make their way into popularity e.g., enclosed bodies (a luxury in 1903), electric starters, automatic transmissions, power steering, power brakes, etc. imagine learning to drive would you rather learn on an expensive to operate racing car or on a car that you can afford? **** programming languages ----------------- BRIEF HISTORY OF PROGRAMMING LANGUAGES 1945-50 machine language 1107: 46 1112 1061 1950s assembly language Loop: add 11,12 1957, Apr. FORTRAN I 1107 I = 11 + 12 1957, Sept. FORTRAN II subroutines 1960 LISP 1.5 recursion, if-exprs. 1963 FORTRAN IV 1975 Scheme lambda closures 1977 FORTRAN 77 structured primitives 1990 FORTRAN 90 recursion, array ops ----------------- moral: when you program it may always be called FORTRAN, but it will have more and more of the features of Scheme