Download presentation
Presentation is loading. Please wait.
Published byGladys Gibson Modified over 8 years ago
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.
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.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.