cse 341 programming languages winter 2000 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CSE 341 Programming Languages Winter 2000 PowerPoint Presentation
Download Presentation
CSE 341 Programming Languages Winter 2000

Loading in 2 Seconds...

play fullscreen
1 / 12

CSE 341 Programming Languages Winter 2000 - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

CSE 341 Programming Languages Winter 2000. Instructor: Steve Tanimoto email: tanimoto@cs.washington.edu Teaching assistant: Jeremy Baer email: jbaer@cs.washington.edu. Purpose: To explore three programming languages in depth and learn fundamental concepts of programming languages.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CSE 341 Programming Languages Winter 2000' - carrieann-thompson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cse 341 programming languages winter 2000
CSE 341 Programming LanguagesWinter 2000

Instructor: Steve Tanimoto

email:tanimoto@cs.washington.edu

Teaching assistant: Jeremy Baer

email:jbaer@cs.washington.edu

Purpose: To explore three programming languages in depth and learn fundamental concepts of programming languages.

CSE 341 -- S. Tanimoto Introduction

reasons to study programming languages
Reasons to Study Programming Languages

Improve our understanding of computation and problem solving; our thoughts are shaped by our language (Whorfian hypothesis).

Be able to choose the best language for the task.

Gain facility at learning new languages.

Gain access to great programming “literature”.

Build an appreciation for rich programming environments and libraries.

Be able to create “little languages” for specific purposes.

CSE 341 -- S. Tanimoto Introduction

languages and major topics to be covered
Languages and Major Topics to be Covered
  • Lisp
  • Java
  • Perl

Functional programming

Object-oriented design.

Scripting.

CSE 341 -- S. Tanimoto Introduction

detailed topics with lisp
Detailed Topics with Lisp
  • Interactive programming
  • Functional programming, referential transparency, recursive functions
  • Functions as first-class objects, closures
  • List processing, uniformity of programs and data
  • Polymorphism
  • Pattern matching
  • Web-based interaction

CSE 341 -- S. Tanimoto Introduction

detailed topics with java
Detailed Topics with Java
  • Object-oriented design
  • Inheritance, interfaces, information hiding.
  • Security and exception handling
  • Portable graphics library: AWT
  • Support for networking
  • Support for multiple threads

CSE 341 -- S. Tanimoto Introduction

detailed topics with perl
Detailed Topics with Perl
  • Scripting languages
  • Pattern matching with regular expressions
  • Associative arrays.
  • CGI programming for web-based services
  • Integration with operating system and databases.

CSE 341 -- S. Tanimoto Introduction

detailed topics in v isual p rogramming
Detailed Topics in VisualProgramming
  • History of visual programming
  • execution models: control flow, data flow, visual rules, direct manipulation, algorithm animation
  • Example systems: Agentsheets, Prograph, KidSim
  • Scalability
  • Program visualization

CSE 341 -- S. Tanimoto Introduction

textbooks
Textbooks
  • Steven Tanimoto: Symbols, Programs, Interaction: An Introduction to Common Lisp.
  • Timothy Budd: Understanding Object-Oriented Programming with Java, 2d ed.
  • Michael Schilli: Perl Power! : A Jumpstart Guide to Programming in Perl 5

CSE 341 -- S. Tanimoto Introduction

evaluation
Evaluation
  • Java programs 15%. Java Quiz 5%.
  • Lisp programs 15%. Lisp Quiz 5%.
  • Other assignments 15%.
  • Mini-project 30%.
  • Final exam 15%.

CSE 341 -- S. Tanimoto Introduction

history of programming languages
History of Programming Languages
  • FORTRAN 1954-57 numeric
  • ALGOL 60 1958-60 numeric
  • COBOL 1959-60 business
  • APL 1956-60 vector/matrix math
  • LISP 1956-62 symbols
  • SNOBOL4 1962-66 strings
  • PL/1 1963-64 general
  • BASIC 1964 educational
  • PASCAL 1971 educational

CSE 341 -- S. Tanimoto Introduction

history of prog languages continued
History of Prog. Languages (continued)
  • PROLOG 1972 AI/logic with rules
  • C 1972 general
  • Scheme 1975 educational
  • Ada 1979 general
  • Smalltalk 1971-80 applications/objects
  • C++ 1982-86 general/objects
  • CLOS 1983-84 LISP/objects
  • Perl 1989 scripting
  • Java 1991 applets, general/objects

CSE 341 -- S. Tanimoto Introduction

orthogonality
Orthogonality
  • Every combination of two constructs of a language is meaningful.
  • The meaning of a construct does not depend on its context.
  • Pro: Makes learning a language easier, since there tend to be fewer constructs and there are fewer special cases.
  • Con: Because every combination of constructs must be allowed, nonsensical combinations will compile without error.

CSE 341 -- S. Tanimoto Introduction