SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
Course:       PROGRAMMING LANGUAGE DESIGN (CSc 600)
Instructor:   Dr. Jozo J. Dujmović (English spelling/pronunciation: Yozo Dooy-mo-vich)
              Office: Thornton 946, Tel. (415) 338-2207,
              Web site: http://cs.sfsu.edu/People/jozo/jozo.html. E-mail: jozo@sfsu.edu
              Office hours: MWF 1-2pm.

Recom-        1. J.J. Dujmović, Programming Languages. J. Wiley, 2003.
mended        2. A.B. Webber, Modern Programming Languages: A Practical Introduction. Franklin,
literature:      Beedle & Asso., 2002. http://www.webber-labs.com/mpl.html (downloadable ppt lectures)
              3. T.W. Pratt and M.V. Zelkowitz, Programming Languages Design and
                 Implementation. Fourth Edition. Prentice Hall, 2001.
              4. R. Sebesta, Concepts of Programming Languages. Fifth Edition. Addison Wesley,
                 2002.
              5. G. Springer and D.P. Friedman, Scheme and the Art of Programming. The MIT Press
                 and McGraw-Hill, 1989.
              6. D. Flanagan and Y. Matsumoto, The Ruby Programming Language. O’Reilly, 2008.
              7. Free books: http://computing.unn.ac.uk/staff/cgpb4/prologbook/
                                 http://rsusu1.rnd.runnet.ru/develop/fortran/prof77/prof77.html
                                 http://www.schemers.org/Documents/Standards/R5RS/r5rs.pdf
                                 http://www.freeprogrammingresources.com/ruby-tutorial.html
On-line:      iLearn (http://ilearn.sfsu.edu/) – all communication with the class and distribution of materials
               is based on iLearn

Syllabus:     1. Survey, Classification, History, and Concepts of Programming Languages. Imperative,
                 object-oriented, logic, and functional languages: concepts and applications. Procedural and non-
                 procedural programming. Syntax and semantics of programming languages.
                 Evaluation and comparison of programming languages. Systematic presentation of
                 programming language concepts. Selecting languages for specific applications.

              2. Presentation/survey and comparison of specific languages: Prolog, Scheme, Ruby, Fortran,
                 Cobol, Basic, Pascal and other languages. Program development in selected languages:
                 procedural programming (C, C++), logic programming (Prolog), functional programming
                 (Scheme), and OO programming (Ruby). Translation of programs from a source language to a
                 given target language. Reuse of legacy programs and program libraries. Software performance
                 issues.

              3. Design of languages and language processors. Macro processors and language
                 expansion techniques. Design and implementation of interpreters and virtual machines.

Final Exam    The final exam will be scheduled according to the University Calendar.
Attendance    The attendance in classes is mandatory and will be periodically checked by taking the class roll.
Notes         Take notes in the class. Class notes are extremely important for preparing for exams.
Effort        Approximately 1-2 hours of work every day during the semester.

Grading:      The total of 100 points is distributed as follows: programming assignments (20), midterm
              exam (30), and final exam (50). The total number of attained points is used for relative ranking
              of students. Letter grades are assigned taking into account three components: (1) the total score,
              (2) the relative ranking, and (3) the attendance of lectures and the class/iLearn activity.
Course Objectives and Role in Program

CSC 600 is the last course in the sequence of mandatory software courses 210-213-313-413-600. Since 210,
213, 313, and 413 are devoted only to object-oriented languages (C++ and Java), the objectives of CSC600 are
to uniformly present all categories of languages, focusing on procedural, nonprocedural, logic, functional, and
OO programming. Consequently, the objectives of this course include:
    • Develop detailed understanding of general concepts of programming languages.
    • Expose students to general language-independent algorithmic thinking and software development.
    • Promote performance awareness at all levels of program development.
    • Develop understanding for procedural and nonprocedural aspects of programming.
    • Present the history of programming languages and a spectrum of actual languages including Fortran,
        Pascal, Basic, Cobol, Prolog, Scheme, and Ruby.
    • Develop practical programming skills in procedural, nonprocedural, logic, functional, and object-
        oriented programming, exemplified with C, Prolog, Scheme, and Ruby.
    • Highlight outstanding features, and review programming in other languages (e.g. Fortran, Pascal,
        Basic, Cobol, and scripting languages)
    • Develop respect for language standards, and cooperative spirit of language communities.
    • Provide background for advanced work in a graduate program.


Learning Outcomes

At the end of this course students will
    • Approach software development using good programming concepts distributed in a spectrum of
        languages, as opposed to limit their activities to the frame imposed by their native programming
        language.
    • Be able to write effective (correct and efficient) procedural code to solve small to medium sized
        problems. In particular, students will be able to identify programming components that contribute to
        various aspects of performance of software products (algorithmic performance, speed, low memory
        consumption, reduction of complexity, and reduction of development effort).
    • Be able to read and understand selected legacy software, translate it to modern languages, and reuse.
    • Have comparative programming experiences in procedural, nonprocedural, functional, logic, and OO
        programming obtained through programming in C, Scheme, Prolog, and Ruby.
    • Be prepared to understand and evaluate the quality of software produced by other programmers, as a
        prerequisite for efficient management of programming teams.
    • Make educated selection of programming languages, and use multiple languages in the development of
        software products.

Mais conteúdo relacionado

Mais procurados

Assignment front sheet
Assignment front sheetAssignment front sheet
Assignment front sheetirrealimagens
 
The Nature of Learners Language
The Nature of Learners LanguageThe Nature of Learners Language
The Nature of Learners Languagenurifw
 
CpSc498b.doc
CpSc498b.docCpSc498b.doc
CpSc498b.docbutest
 
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...eMadrid network
 
Challenge to the assessment of speaking (derince cakmak)
Challenge to the assessment of speaking (derince   cakmak)Challenge to the assessment of speaking (derince   cakmak)
Challenge to the assessment of speaking (derince cakmak)eaquals
 
Software Analysis using Natural Language Queries
Software Analysis using Natural Language QueriesSoftware Analysis using Natural Language Queries
Software Analysis using Natural Language QueriesPooja Rani
 
Introduction to c
 Introduction to c Introduction to c
Introduction to cSatveer Mann
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1lakshmi kumari neelapu
 

Mais procurados (12)

Python-EMU-PCAP
Python-EMU-PCAPPython-EMU-PCAP
Python-EMU-PCAP
 
Assignment front sheet
Assignment front sheetAssignment front sheet
Assignment front sheet
 
The Nature of Learners Language
The Nature of Learners LanguageThe Nature of Learners Language
The Nature of Learners Language
 
CpSc498b.doc
CpSc498b.docCpSc498b.doc
CpSc498b.doc
 
resume
resumeresume
resume
 
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...
2015 03 19 (EDUCON2015) eMadrid URJC Computer Programming as an educational t...
 
Challenge to the assessment of speaking (derince cakmak)
Challenge to the assessment of speaking (derince   cakmak)Challenge to the assessment of speaking (derince   cakmak)
Challenge to the assessment of speaking (derince cakmak)
 
Software Analysis using Natural Language Queries
Software Analysis using Natural Language QueriesSoftware Analysis using Natural Language Queries
Software Analysis using Natural Language Queries
 
Introduction to c
 Introduction to c Introduction to c
Introduction to c
 
TiagoTuleski_CV ENG
TiagoTuleski_CV ENGTiagoTuleski_CV ENG
TiagoTuleski_CV ENG
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
 
Academia
AcademiaAcademia
Academia
 

Semelhante a 600Desc

Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxCobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxmehrankhan7842312
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1 ITNet
 
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languagesOluwafolakeOjo
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenationAshwini Awatare
 
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptSharmilaMore5
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacionVillalba Griselda
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Professor Lili Saghafi
 
Realization of natural language interfaces using
Realization of natural language interfaces usingRealization of natural language interfaces using
Realization of natural language interfaces usingunyil96
 
Ppt about programming in methodology
Ppt about programming in methodology Ppt about programming in methodology
Ppt about programming in methodology Vaishnavirakshe2
 
La 5 Programming1
La 5   Programming1La 5   Programming1
La 5 Programming1Cma Mohd
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming LanguagesManish Kharotia
 
Advanced_programming_language_design.pdf
Advanced_programming_language_design.pdfAdvanced_programming_language_design.pdf
Advanced_programming_language_design.pdfRodulfoGabrito
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesSchwannden Kuo
 

Semelhante a 600Desc (20)

week1.ppt
week1.pptweek1.ppt
week1.ppt
 
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptxCobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
Cobbbbbbbnnnnnnnnnnnnnnnnncepts of PL.pptx
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
 
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languages
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
 
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
 
1. reason why study spl
1. reason why study spl1. reason why study spl
1. reason why study spl
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacion
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Realization of natural language interfaces using
Realization of natural language interfaces usingRealization of natural language interfaces using
Realization of natural language interfaces using
 
Ppt about programming in methodology
Ppt about programming in methodology Ppt about programming in methodology
Ppt about programming in methodology
 
1504.00693
1504.006931504.00693
1504.00693
 
La 5 Programming1
La 5   Programming1La 5   Programming1
La 5 Programming1
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
 
Introduction to programing languages part 1
Introduction to programing languages   part 1Introduction to programing languages   part 1
Introduction to programing languages part 1
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 
Advanced_programming_language_design.pdf
Advanced_programming_language_design.pdfAdvanced_programming_language_design.pdf
Advanced_programming_language_design.pdf
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
 

Mais de tutorialsruby

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

Mais de tutorialsruby (20)

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Último

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

600Desc

  • 1. Course: PROGRAMMING LANGUAGE DESIGN (CSc 600) Instructor: Dr. Jozo J. Dujmović (English spelling/pronunciation: Yozo Dooy-mo-vich) Office: Thornton 946, Tel. (415) 338-2207, Web site: http://cs.sfsu.edu/People/jozo/jozo.html. E-mail: jozo@sfsu.edu Office hours: MWF 1-2pm. Recom- 1. J.J. Dujmović, Programming Languages. J. Wiley, 2003. mended 2. A.B. Webber, Modern Programming Languages: A Practical Introduction. Franklin, literature: Beedle & Asso., 2002. http://www.webber-labs.com/mpl.html (downloadable ppt lectures) 3. T.W. Pratt and M.V. Zelkowitz, Programming Languages Design and Implementation. Fourth Edition. Prentice Hall, 2001. 4. R. Sebesta, Concepts of Programming Languages. Fifth Edition. Addison Wesley, 2002. 5. G. Springer and D.P. Friedman, Scheme and the Art of Programming. The MIT Press and McGraw-Hill, 1989. 6. D. Flanagan and Y. Matsumoto, The Ruby Programming Language. O’Reilly, 2008. 7. Free books: http://computing.unn.ac.uk/staff/cgpb4/prologbook/ http://rsusu1.rnd.runnet.ru/develop/fortran/prof77/prof77.html http://www.schemers.org/Documents/Standards/R5RS/r5rs.pdf http://www.freeprogrammingresources.com/ruby-tutorial.html On-line: iLearn (http://ilearn.sfsu.edu/) – all communication with the class and distribution of materials is based on iLearn Syllabus: 1. Survey, Classification, History, and Concepts of Programming Languages. Imperative, object-oriented, logic, and functional languages: concepts and applications. Procedural and non- procedural programming. Syntax and semantics of programming languages. Evaluation and comparison of programming languages. Systematic presentation of programming language concepts. Selecting languages for specific applications. 2. Presentation/survey and comparison of specific languages: Prolog, Scheme, Ruby, Fortran, Cobol, Basic, Pascal and other languages. Program development in selected languages: procedural programming (C, C++), logic programming (Prolog), functional programming (Scheme), and OO programming (Ruby). Translation of programs from a source language to a given target language. Reuse of legacy programs and program libraries. Software performance issues. 3. Design of languages and language processors. Macro processors and language expansion techniques. Design and implementation of interpreters and virtual machines. Final Exam The final exam will be scheduled according to the University Calendar. Attendance The attendance in classes is mandatory and will be periodically checked by taking the class roll. Notes Take notes in the class. Class notes are extremely important for preparing for exams. Effort Approximately 1-2 hours of work every day during the semester. Grading: The total of 100 points is distributed as follows: programming assignments (20), midterm exam (30), and final exam (50). The total number of attained points is used for relative ranking of students. Letter grades are assigned taking into account three components: (1) the total score, (2) the relative ranking, and (3) the attendance of lectures and the class/iLearn activity.
  • 2. Course Objectives and Role in Program CSC 600 is the last course in the sequence of mandatory software courses 210-213-313-413-600. Since 210, 213, 313, and 413 are devoted only to object-oriented languages (C++ and Java), the objectives of CSC600 are to uniformly present all categories of languages, focusing on procedural, nonprocedural, logic, functional, and OO programming. Consequently, the objectives of this course include: • Develop detailed understanding of general concepts of programming languages. • Expose students to general language-independent algorithmic thinking and software development. • Promote performance awareness at all levels of program development. • Develop understanding for procedural and nonprocedural aspects of programming. • Present the history of programming languages and a spectrum of actual languages including Fortran, Pascal, Basic, Cobol, Prolog, Scheme, and Ruby. • Develop practical programming skills in procedural, nonprocedural, logic, functional, and object- oriented programming, exemplified with C, Prolog, Scheme, and Ruby. • Highlight outstanding features, and review programming in other languages (e.g. Fortran, Pascal, Basic, Cobol, and scripting languages) • Develop respect for language standards, and cooperative spirit of language communities. • Provide background for advanced work in a graduate program. Learning Outcomes At the end of this course students will • Approach software development using good programming concepts distributed in a spectrum of languages, as opposed to limit their activities to the frame imposed by their native programming language. • Be able to write effective (correct and efficient) procedural code to solve small to medium sized problems. In particular, students will be able to identify programming components that contribute to various aspects of performance of software products (algorithmic performance, speed, low memory consumption, reduction of complexity, and reduction of development effort). • Be able to read and understand selected legacy software, translate it to modern languages, and reuse. • Have comparative programming experiences in procedural, nonprocedural, functional, logic, and OO programming obtained through programming in C, Scheme, Prolog, and Ruby. • Be prepared to understand and evaluate the quality of software produced by other programmers, as a prerequisite for efficient management of programming teams. • Make educated selection of programming languages, and use multiple languages in the development of software products.