Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.

Similar presentations


Presentation on theme: "Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016."— Presentation transcript:

1 Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016

2  Syllabus ◦ Who Am I? ◦ Prerequisites ◦ Course Description ◦ Course Outcomes ◦ Textbook ◦ Grading ◦ Schedule ◦ Content ◦ Project ◦ Other

3  Scott C. Johnson ◦ Lecturer ◦ Office: GOL-3647 ◦ Email: scj@cs.rit.eduscj@cs.rit.edu  Please include course number and section in email subject ◦ First year lecturer at RIT ◦ RIT Alumni ’14  BS in Computer Science  Minors in Mathematics and Advanced Writing  MS in Computer Science  Concentrations in Security and Data Management  3 AS degrees from another college  AS in Computer Science  AS in Math & Science: Physics  AS in Humanities & Social Science: Psychology ◦ Professional Experience  GrammaTech, Software Engineer Research

4  Prerequisite by courses: ◦ CSCI-243 or SWEN-250 or IGME-309, AND ◦ MATH-190 or MATH-200 ◦ OR Permission of instructor  Prerequisite by content: ◦ Programming ability (Java/C++/Python); knowledge of discrete math concepts

5  This course is a study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design and implementation. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be required.

6  Learn how to learn new programming paradigms and languages on your own.  Learn how to describe formal syntax and high-level semantics of a programming language.  Learn to identify appropriate programming languages to use to address the specific needs of a stated problem.  Learn to explain and apply different programming language paradigms, including functional.  Learn to explain and apply basic constructs and concepts used in a variety of programming languages.  Obtain a historical perspective on the evolution of programming languages.

7 Programming Language Pragmatics, 3rd Ed., by Scott, Elsevier, 2009.  Additional material will be provided as handouts or online/offline references. plagiarism and dealt with as stated under General Policies.

8

9  Letter grade conversions from total scores will done as follows: ◦ 93–100 is A ◦ 90-92.99 is A- ◦ 87-89.99 is B+ ◦ 83-86.99 is B ◦ 80-82.99 is B- ◦ 77- 79.99 is C+ ◦ 73-76.99 is C ◦ 70-72.99 is C- ◦ 60-69.99 is D ◦ less than 60 is F.  In courses with in-class quizzes/tests/exams/etc., your course grade will not be more than two +/- letter grades higher than the syllabus-defined weighted average of these scores in-class scores.  In courses with group work (e.g., projects, posters, discussions, or presentations), your course grade will not be more than two +/- letter grades higher than the syllabus-defined weighted average of your individual work. See the Group Work section below to understand this grading policy better.

10

11  Intro to the course ◦ Syllabus and Schedule ◦ Introduction  Programming Language Syntax ◦ Specifying Syntax ◦ Scanning ◦ Parsing  Names, Scopes, and Bindings ◦ The Notion of Binding Time ◦ Object Lifetime and Storage Management ◦ Scope Rules ◦ Implementing Scoping ◦ The Meaning of Names within a Scope  Functional Programming ◦ Historical Origins ◦ Functional Programming Concepts ◦ A Review/Overview of Scheme ◦ Evaluation Order Revisited ◦ High Order Functions

12  Semantic Analysis ◦ The Role of the Semantic Analyzer ◦ Attribute Grammars ◦ Evaluating Attributes ◦ Action Routines ◦ Space Management for Attributes ◦ Decorating a Syntax Tree  Control Flow ◦ Expression Evaluation ◦ Structured and Unstructured Flow ◦ Sequencing ◦ Selection ◦ Iteration ◦ Recursion ◦ Nondetermininacy  Logic Languages ◦ Logic Programming Concepts ◦ Prolog ◦ Theoretical Foundations ◦ Logic Programming in Perspective

13  Data Types ◦ Type Systems ◦ Type Checking ◦ Records (Structures) and Variants (Unions) ◦ Arrays ◦ Strings ◦ Sets ◦ Pointer and Recursive Types ◦ Lists ◦ Files and Input/Output ◦ Equality Testing and Assignment  Subroutines and Control Abstraction ◦ Review of Stack Layout ◦ Calling Sequences ◦ Parameter Passing ◦ Generic Subroutines and Modules ◦ Exception Handling ◦ Coroutines ◦ Events  Data Abstraction and Object Orientation ◦ Object Oriented Programming ◦ Encapsulation and Inheritance ◦ Initialization and Finalization ◦ Dynamic Method Binding

14  Concurrency ◦ Background and Motivation ◦ Concurrent Programming Fundamentals ◦ Implementing Synchronization ◦ Language-Level Mechanisms ◦ Message Passing ◦ Erlang  Scripting Languages ◦ What is a Scripting Language? ◦ Problem Domains ◦ Scripting the World Wide Web ◦ Innovative Features ◦ Shell ◦ Perl ◦ Sed  Final Exam ◦ Contents: All contents of the course.

15  Group Project ◦ 6 projects


Download ppt "Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016."

Similar presentations


Ads by Google