COSE212: Programming Languages. Lecture 0 Course Overview

Similar documents
CVO103: Programming Languages. Lecture 5 Design and Implementation of PLs (1) Expressions

understanding recursive data types, recursive functions to compute over them, and structural induction to prove things about them

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

Programming Languages and Compilers (CS 421)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

Languages and Compilers

Principles of Compiler Construction ( )

cmpt 440/821 Advanced Topics in Programming Languages

Principles of Compiler Construction ( )

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

CISC 3130 Data Structures Fall 2018

CSC 111 Introduction to Computer Science (Section C)

COSE212: Programming Languages. Lecture 3 Functional Programming in OCaml

CS 241 Data Organization. August 21, 2018

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CS457/557 Functional Languages

INFSCI 1017 Implementation of Information Systems Spring 2017

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

COSE212: Programming Languages. Lecture 4 Recursive and Higher-Order Programming

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES. Norbert Zeh Winter Dalhousie University 1/10

ECE Object-Oriented Programming using C++ and Java

CSc 2310 Principles of Programming (Java) Jyoti Islam

CS 241 Data Organization using C

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

COMP-202A: Introduction to Computing 1

CS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University

CSCI 201L Syllabus Principles of Software Development Spring 2018

Introduction to Data Structures

INFS 2150 (Section A) Fall 2018

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

ESET 369 Embedded Systems Software, Fall 2017

CS120 Computer Science I. Instructor: Jia Song

Course and Contact Information. Course Description. Course Objectives

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

CS 3110 Lecture 1 Course Overview

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

ITSC 1319 INTERNET/WEB PAGE DEVELOPMENT SYLLABUS

Welcome to CS 135 (Winter 2018)

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

COMP-202A: Introduction to Computing 1

Course and Contact Information. Course Description. Course Objectives

Linear Algebra Math 203 section 003 Fall 2018

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Central Washington University Department of Computer Science Course Syllabus

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Computer Science Department

You must pass the final exam to pass the course.

Fundamentals of Digital System Design ECE 3700, CPSC 3700

ECE573 Introduction to Compilers & Translators

CIS 500 Software Foundations Fall December 6

Administrivia. Existential Types. CIS 500 Software Foundations Fall December 6. Administrivia. Motivation. Motivation

Introduction to Nate Foster Spring 2018

Introduction to Information Technology ITP 101x (4 Units)

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

COMP-202C: Foundations of Programming

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

Wayne State University Department of Computer Science CSC 5991: Advanced Web Technologies. Functional (Scala) Programming for the Web.

INF 315E Introduction to Databases School of Information Fall 2015

San Jose State University - Department of Computer Science

CSE 505 Graduate PL. Fall 2013

Instructor: Anna Miller

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

ESET 369 Embedded Systems Software, Spring 2018

San José State University College of Science / Department of Computer Science Introduction to Database Management Systems, CS157A-3-4, Fall 2017

Programming language design and analysis

CS 111: Programming Fundamentals II

Part A: Course Outline

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

Welcome to CS 135 (Fall 2018) Themes of the course. Lectures. cs135/

Object-Oriented Programming for Managers

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

Course Syllabus. Course Information

CS 6371: Advanced Programming Languages

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Compilers. Computer Science 431

CSE 504: Compiler Design

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

ECE Introduction to Compilers and Translation Engineering

CIS*1500 Introduction to Programming

ESET 349 Microcontroller Architecture, Fall 2018

EECE.2160: ECE Application Programming Spring 2017

Advanced Relational Database Management MISM Course F A Fall 2017 Carnegie Mellon University

IA010: Principles of Programming Languages

Computation, Computers, and Programs. Administrivia. Resources. Course texts: Kozen: Introduction to Computability Hickey: Introduction to OCaml

15-411/ Compiler Design

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

Functional Programming

CS 314 Principles of Programming Languages. Lecture 21

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Announcements. 1. Forms to return today after class:

Introduction to Databases Fall-Winter 2010/11. Syllabus

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

What is programming? Elements of Programming Languages. From machine code to programming languages. What is a programming language?

CONCORDIA UNIVERSITY DEPARTMENT OF CHEMISTRY AND BIOCHEMISTRY CHEM 293 SPECTROSCOPY AND STRUCTURE OF ORGANIC COMPOUNDS. SYLLABUS Winter 2018

Transcription:

COSE212: Programming Languages Lecture 0 Course Overview Hakjoo Oh 2017 Fall Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 1 / 9

Basic nformation nstructor: Hakjoo Oh TAs: Position: Assistant professor in CS, Korea University Expertise: Programming Languages Office: 616c, Science Library Email: hakjoo_oh@korea.ac.kr Office Hours: 1:00pm 3:00pm Mondays and Wednesdays (by appointment) Junho Lee (wnsgh1906@korea.ac.kr) Dowon Song (sdw0316@gmail.com) Course Website: http://prl.korea.ac.kr/~pronto/home/courses/cose212/2017/ Course materials will be available here. Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 2 / 9

About This Course This course is not about to learn particular programming languages to improve your programming skills (e.g., tools, libraries, etc) Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 3 / 9

About This Course This course is not about to learn particular programming languages to improve your programming skills (e.g., tools, libraries, etc) nstead, in this course you will learn fundamental principles of modern programming languages how programming systems are designed and implemented thinking formally and rigorously Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 3 / 9

About This Course This course is not about to learn particular programming languages to improve your programming skills (e.g., tools, libraries, etc) nstead, in this course you will learn fundamental principles of modern programming languages how programming systems are designed and implemented thinking formally and rigorously To succeed in this course, you must have basic programming skills be familiar with at least two PLs (e.g., C, Java) have taken Theory of Computation, Discrete Math, etc be prepared to learn new things Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 3 / 9

Topics Part 1 (Preliminaries): inductive definition, basics of functional programming, recursive and higher-order programming Part 2 (Basic concepts): syntax, semantics, naming, binding, scoping, environment, interpreters, states, side-effects, store, reference, mutable variables, parameter passing Part 3 (Advanced concepts): type system, typing rules, type checking, soundness/completeness, automatic type inference, polymorphic type system, lambda calculus, program synthesis Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 4 / 9

Course Materials Essentials of Programming Languages (Third Edition) by Daniel P. Friedman and Mitchell Wand. MT Press. (Not required but recommended) Self-contained slides will be provided. Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 5 / 9

Grading Homework 50% 5 6 programming assignments No late submissions will be accepted. Final exam 45% Attendance 5% Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 6 / 9

Assignment Policy / Academic ntegrity All assignments must be your own work. Discussion with fellow students is encouraged and you can discuss how to approach the problem. However, your code must be your own. Discussion must be limited to general discussion and must not involve details of how to write code. You must write your code by yourself and must not look at someone else s code (including ones on the web). Do not allow other students to copy your code. Do not post your code on the public web. Cheating (violating above rules) gets you 0 for the entire HW score. We use automatic technology for detecting clones Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 7 / 9

Programming in ML ML is a general-purpose programming language, reflecting the core research achievements in the field of programming languages. higher-order functions static typing and automatic type inference parametric polymorphism algebraic data types and pattern matching automatic garbage collection ML inspired the design of modern programming languages. C#, F#, Scala, Java, JavaScript, Haskell, Rust, etc We use OCaml, a French dialect of ML: http://ocaml.org Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 8/9

Next Week (9/12, 9/14) We will have a tutorial session about OCaml programming by TAs. Bring your notebook. nstallation of the language system, How to write and run programs, How to submit assignments, Troubleshooting, etc. Hakjoo Oh COSE212 2017 Fall, Lecture 0 September 4, 2017 9 / 9