SlideShare ist ein Scribd-Unternehmen logo
1 von 2
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Kürzlich hochgeladen (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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.