Approaches to Teaching the Programming Languages Course - PowerPoint PPT Presentation

Loading...

PPT – Approaches to Teaching the Programming Languages Course PowerPoint presentation | free to download - id: fc2c5-ZDc1Z



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Approaches to Teaching the Programming Languages Course

Description:

A combination of incongruous things: 'In the minds of many, the real and ... direct, counterexample, contraposition, contradiction; mathematical induction ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 18
Provided by: csGen
Learn more at: http://cs.geneseo.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Approaches to Teaching the Programming Languages Course


1
Approaches to Teaching the Programming Languages
Course
  • A Potpourri

2
Potpourri
  • A combination of incongruous things In the
    minds of many, the real and imagined causes for
    Russia's defeats quickly mingled into a potpourri
    of terrible fears (W. Bruce Lincoln).
  • A miscellaneous anthology or collection a
    potpourri of short stories and humorous verse.
  • A mixture of dried flower petals and spices used
    to scent the air. AND
  • French pot pourri(translation of Spanish olla
    podrida)  pot, pot see potiche pourri, past
    participle of pourrir, to rot (from Old French
    purir, from Vulgar Latin putr re, from Latin
    putr scere. See putrid).
  • http//dictionary.reference.com/browse/potpourri

3
Panelists (alphabetically)
Elizabeth Adams Harrisonburg Virginia Doug Baldwin Geneseo New York Judith Bishop Pretoria South Africa
John English Brighton England Pamela Lawhead Oxford Mississippi Daniel Stevenson Eau Claire Wisconsin
4
Computing Curricula 2001 Computer Science
  • http//acm.org/education/curric_vols/cc2001.pdf

5
Why this panel?
  • Important course
  • Somewhat slighted in Computing Curricula 2001
  • Variety of approaches to teaching it
  • Emphasis on formal notations and specifications
  • Affected by object oriented beginnings
  • Focus on historical perspective
  • Paradigms
  • Features
  • Reductionist approach

6
PL. Programming Languages (21 core hours)
  • PL1. Overview of programming languages (2)
  • PL2. Virtual machines (1)
  • PL3. Introduction to language translation (2)
  • PL4. Declarations and types (3)
  • PL5. Abstraction mechanisms (3)
  • PL6. Object-oriented programming (10)
  • PL7. Functional programming
  • PL8. Language translation systems
  • PL9. Type systems
  • PL10. Programming language semantics
  • PL11. Programming language design
  • From Computing Curriculum 2001

7
Programming Languages (PL)
  • PL1. Overview of programming languages core
  • PL2. Virtual machines core
  • PL3. Introduction to language translation core
  • PL4. Declarations and types core
  • PL5. Abstraction mechanisms core
  • PL6. Object-oriented programming core
  • PL7. Functional programming elective
  • PL8. Language translation systems elective
  • PL9. Type systems elective
  • PL10. Programming language semantics elective
  • PL11. Programming language design elective
  • From Computing Curriculum 2001

8
Figure 9-1. Advanced courses by area
  • CS340. Compiler Construction
  • CS341. Programming Language Design
  • CS342. Programming Language Semantics
  • CS343. Programming Paradigms
  • CS344. Functional Programming
  • CS345. Logic Programming
  • CS346. Scripting Language

From Computing Curriculum 2001
9
Why its important
  • Languages shape the way you think
  • Familiarity with a variety of languages makes it
    possible to select the best one for solving a
    particular problem
  • Languages have common elements
  • Such as data structures, control structures,
    subprograms, parameter passing modes, and
    identifying these elements is worthwhile
  • Learning many languages makes it easier to learn
    new ones
  • And theres always a new one to master

10
Class Languages
  • Everyone in the class learns and writes programs
    in
  • FORTRAN IV
  • Pascal or Ada
  • Lisp or Scheme
  • Prolog
  • Alice

11
Project Languages
  • Each student learns another language and makes a
    presentation to the class about it
  • BURKS excellent resource for compilers
  • Web provides free compilers and tutorials
  • Some selected languages
  • ABC, Algol, APL,AWK, Beta, C, Eiffel, Euphoria,
    Haskell, Icon, ML, Modula2, Oberon, Perl, PHP,
    PL/I, Python, Rebol, REXX, Ruby, SETL,Smalltalk,
    Snobol4, Titanium,

12
Useful Links
  • Dictionary of Programming Languages
    http//cgibin.erols.com/ziring/cgi-bin/cep/cep.pl
  • Programming Languages http//www.cs.waikato.ac.nz/
    marku/languages.html
  • The Open Directory Project is the largest, most
    comprehensive human-edited directory of the Web.
    It is constructed and maintained by a vast,
    global community of volunteer editors.
    http//www.dmoz.org/Computers/Programming/Language
    s/

13
And
  • Fun course to teach
  • Biggest problems
  • Not enough time
  • Too much material to choose from
  • Greatest satisfaction
  • former students comments about how useful the
    course turned out to be

14
Curriculum 2001
  • Additional extracts on following three slides

15
Figure 7-2. Units covered by all six of the
introductory tracks
  • Units for which all topics must be covered
  • DS1. Functions, relations, and sets
  • DS2. Basic logic
  • DS4. Basics of counting
  • DS6. Discrete probability
  • PF1. Fundamental programming constructs
  • PF4. Recursion
  • PL1. Overview of programming languages
  • PL4. Declarations and types
  • PL2. Virtual machines
  • PL5. Abstraction mechanisms
  • SP1. History of computing
  • From Computing Curriculum 2001

16
Units for which only a subset of the topics must
be covered
  • DS3. Proof techniques The structure of formal
    proofs proof techniques direct, counterexample,
    contraposition, contradiction mathematical
    induction
  • PF2. Algorithms and problem-solving
    Problem-solving strategies the role of
    algorithms in the problem-solving process the
    concept and properties of algorithms debugging
    strategies
  • PF3. Fundamental data structures Primitive
    types arrays records strings and string
    processing data representation in memory
    static, stack, and heap allocation runtime
    storage management pointers and references
    linked structures
  • AL1. Basic algorithmic analysis Big O notation
    standard complexity classes empirical
    measurements of performance time and space
    tradeoffs in algorithms
  • AL3. Fundamental computing algorithms Simple
    numerical algorithms sequential and binary
    search algorithms quadratic and O(N log N)
    sorting algorithms hashing binary search trees
  • AR1. Digital logic and digital systems Logic
    gates logic expressions
  • PL6. Object-oriented programming Object-oriented
    design encapsulation and informationhiding
    separation of behavior and implementation
    classes, subclasses, and inheritance
    polymorphism class hierarchies
  • SE1. Software design Fundamental design concepts
    and principles object-oriented analysis and
    design design for reuse
  • SE2. Using APIs API programming class browsers
    and related tools programming by example
    debugging in the API environment
  • SE3. Software tools and environments Programming
    environments testing tools
  • SE5. Software requirements and specifications
    Importance of specification in the software
    process
  • SE6. Software validation Testing fundamentals
    test case generation
  • From Computing Curriculum 2001

17
Computing environments From Computing Curriculum
2001
Concept Description Associated Activities
Programming languages and paradigms Role of programming languages the translation process the existence of multiple programming paradigms Outline the program translation process identify at least two programming paradigms and describe their differences
About PowerShow.com