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

Slides:



Advertisements
Similar presentations
Principles of programming languages 1: Introduction (with a simple language) Isao Sasano Department of Information Science and Engineering.
Advertisements

Cpt S 122 – Data Structures Course Introduction
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Ch.2: Syntax and Semantics Fall 2005.
COMS S1007 Object-Oriented Programming and Design in Java July 8, 2008.
6/10/2015Assoc. Prof. Stoyan Bonev1 Assoc. Prof. Stoyan Bonev, PhD Computer Science dept American University in Bulgaria
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Programming Languages Structure
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CSCI 347 – Data Mining Lecture 01 – Course Overview.
1 CSCE Programming Languages Introduction and Course Administration Dr. Hyunyoung Lee 410B HR Bright
EECE 310 Software Engineering Lecture 0: Course Orientation.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
CSC3315 (Spring 2009)1 CSC 3315 Programming Languages Hamid Harroud School of Science and Engineering, Akhawayn University
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
1 Overview CO3225 Programming Language: Theory and Practice Low Aim is a Crime, but not high ambition.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
ECE 1100: Introduction to Electrical and Computer Engineering Wanda Wosik Associate Professor, ECE Dept. Notes 1 Spring 2011 Slides adapted from lectures.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
Course Information Sarah Diesburg Operating Systems COP 4610.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
CS Welcome to CS 5383, Topics in Software Assurance, Toward Zero-defect Programming Spring 2007.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
EGR 335 Technical Communications for Engineers and Computer Scientists Coordinator: Leo Finkelstein, Jr. Course Review.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
CS 162 Introduction to Computer Science II Winter, 2014: 60 Spring, 2014: 60 Summer, 2014: 71.
ICS 313 Fundamentals of Programming Languages. Catalogue Description  Concepts of Programming Languages: Syntax and semantics, Data types, Control structures,
COP4020 INTRODUCTION FALL COURSE DESCRIPTION Programming Languages introduces the fundamentals of the design and implementation of programming languages.
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
CSC4320/6320 Operating Systems.  Instructor: Xiaolin Hu   Phone:  Office: 25 Park Place Building,
CSCE 343 – Programming Language Concepts Welcome!.
Why study programming languages?
PROGRAMMING LANGUAGES
Programming Language Design Concepts
Course Information Mark Stanovich Principles of Operating Systems
CSI 3120 Concepts of Programming Languages
课程名 编译原理 Compiling Techniques
Principles of Computing – UFCFA Lecture-1
Final Review In Text: Chapters 1-3, 5-11,
Midterm Review In Text: Chapters 1-3, 5-7, 15, 16.
Final Review In Text: Chapters 1-11,
Final Review In Text: Chapters 1-3, 5-10, 12,
Final Review In Text: Chapters 1-3, 5-10, 12,
Final Review In Text: Chapters 1-3, 5-10,
Midterm Review In Text: Chapters 1-3, 5-9, 15.
Final Review In Text: Chapters 1-3, 5-10,
Midterm Review In Text: Chapters 1-3, 5-10, 15.
Organization of Programming Languages
Final Review In Text: Chapters 1-3, 5-12,
Final Review In Text: Chapters 1-3, 5-16.
Final Review In Text: Chapters 1-3, 5-16.
Review CSE116 2/21/2019 B.Ramamurthy.
Final Review In Text: Chapters 1-3, 5-16.
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Principles of Computing – UFCFA Week 1
Final Review In Text: Chapters 1-3, 5-16.
Midterm Review In Text: Chapters 1-3, 5-9, 15.
Midterm Review In Text: Chapters 1-3, 5-11, 15.
Presentation transcript:

Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016

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

 Scott C. Johnson ◦ Lecturer ◦ Office: GOL-3647 ◦  Please include course number and section in 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

 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

 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.

 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.

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

 Letter grade conversions from total scores will done as follows: ◦ 93–100 is A ◦ is A- ◦ is B+ ◦ is B ◦ is B- ◦ is C+ ◦ is C ◦ is C- ◦ 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.

 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

 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

 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

 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.

 Group Project ◦ 6 projects