Skip to main content

CS404: Programming Languages

Page path
  • Home /
  • Courses /
  • Course Catalog /
  • Computer Science /
  • CS404: Programming Languages /
  • Unit 1: Introduction to Programming Languages
Back to course 'CS404: Programming Languages'
  • Unit 1: Introduction to Programming Languages

    Programming languages are not very different from spoken languages. Learning any language requires an understanding of the building blocks and the grammar that govern the construction of statements in that language. This unit will serve as an introduction to programming languages, taking you through the history of programming languages. We will also learn about the various universal properties of all programming languages and identify distinct design features of each programming language. By the end of this unit, you will have a deeper understanding of what a programming language is and the ability to recognize the properties of programming languages.

    Completing this unit should take you approximately 17 hours.

    • Unit 1 Learning Outcomes Page
    • 1.1: Evolution of Programming Languages

      •  Wright State University: T.K. Prasad's "Evolution of Programming Languages" URL

        Read these slides, which provide a history of development of programming languages along the three major paradigms: Imperative, Functional, and Object-oriented. It also briefly discusses modern scripting languages.

      •  Johns Hopkins University: Mike Grant, Zachary Palmer, and Scott Smith's "Principles of Programming Languages" URL

        Read chapter 1, which provides an overview of the pre-history and the early history of programming languages and an introduction to lambda calculus.

      • Indian Institute of Technology, Delhi: S. Arun Kumar's "Introduction to Programming Languages" Page

        Watch this lecture, which provides a detailed introduction to programming languages.

        Write a few paragraphs describing the impacts of Internet on the evolution of programming languages. Which programming languages were developed specifically for the Web?

      •  99 Bottles of Beer URL

        This website collects code fragments for the song "99 bottles of beer" in 1500 different programming languages and variations. Write your own code to generate the lyrics for the song in a programming language that you know (for example, C or Java). The lyrics of the song can be found here. Check your code against what was submitted to the library for the language that you used. Compare that code with what was written for Prolog, Pascal, Scala, Scheme, Lisp, ML, C#, F#, and Haskel.

    • 1.2: Lambda Calculus

      •  University of Texas at Austin: Thomas Dillig's "Basic Lambda Calculus" URL

        Read these slides, which will introduce you to lambda calculus. Skip the first 8 slides, which are about the organization of the CS 312 course. What are the four expressions in lambda calculus?

      •  New York University: Chris Baker's "Lambda Tutorial" URL

        This is a great tutorial on lambda calculus. Browse to "Examples and practice," which have several exercises on lambda calculus. Guess the result of each expression before clicking "Reduce." Feel free to explore the rest of the page as well as the various recommended resources on lambda calculus.

    • 1.3: Syntax as a Language's Form

      •  Wright State University: T.K. Prasad's "Syntax Specification: Grammars" URL

        Read these slides, which will introduce you to syntax as a language. The first few slides provide an overview of compiler, interpreter, and lexical analyzer.

      • Indian Institute of Technology, Delhi: S. Arun Kumar's "Syntax and Grammar" Page

        Watch these lectures.

    • 1.4: Semantics as the Meaning

      •  University of Texas at Austin: Thomas Dillig's "Operational Semantics I" URL

        Read these slides. While there are several forms of language semantics (axiomatic, denotational, and operational), we will focus on operational semantics in this course. Make sure that you understand the difference between eager versus lazy evaluation, and call-by-name vs call-by-value.

      •  University of Texas at Austin: Thomas Dillig's "Operational Semantics II" URL

        Read these slides.

      • Indian Institute of Technology, Delhi: S. Arun Kumar's "Semantics" Page

        Watch this video, which explains semantics and highlights several basic principles underlying semantics.

    • Unit 1 Assessment

      •  Unit 1 Assessment Quiz

        Please take this assessment to check your understanding of the materials presented in this unit.

        Notes:

        • There is no minimum required score to pass this assessment, and your score on this assessment will not factor into your overall course grade.
        • This assessment is designed to prepare you for the Final Exam that will determine your course grade. Upon submission of your assessment you will be provided with the correct answers and/or other feedback meant to help in your understanding of the topics being assessed.
        • You may attempt this assessment as many times as needed, whenever you would like.

Navigation

Art History
Biology
Business Administration
Chemistry
Communication
Economics
English
History
Mathematics

Creative Commons License
© Saylor Academy 2010-2018 except as otherwise noted. Excluding course final exams, content authored by Saylor Academy is available under a Creative Commons Attribution 3.0 Unported license. Third-party materials are the copyright of their respective owners and shared under various licenses. See www.saylor.org/open/licensinginformation for detailed licensing information.

Saylor Academy and Saylor.org® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.

Terms of Use | Privacy Policy