SlideShare a Scribd company logo
1 of 2
Download to read 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.

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

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.