Size: px
Start display at page:

Download ""

Transcription

1

2 CS252 Programming Language Paradigms Prof. Tom Austin San José State University Fall 2014

3 What are some programming languages?

4 Why are there so many? Different domains. Mobile devices (Objective C) Web programming (Ruby, Python, PHP) Databases (SQL) Different design choices. Some concerns: Flexibility (Scripting languages) Type safety (Java, Scala, Haskell) Performance (C, C++, Go) Build time (Go, Rust, D) Concurrency (Erlang, Go, Rust, D)

5 Which language is better?

6 Good language features Simplicity Readability and writability Learn-ability (familiarity helps here) Safety Machine independence Efficiency (of execution, but also of compilation) Backwards compatibility

7 These goals almost always conflict Type systems prevent bad programs from running also restrict what the programmer can do Machine-independence and efficient low-level operations are difficult to pair. Good language designs choosing careful compromises for the right set of features.

8 Why do we make you take a programming languages course? You might use one of these languages. Perhaps one of these languages is the language of the future (whatever that means). You might see similar languages in your job. Somebody made us take one, so now we want to make you suffer too. But most of all

9 We want to warp your minds.

10 These languages will change the way that you think about programming. That will make you a better Java programmer.

11 Blub programmers Paul Graham discusses "Blub" programmers: Hypothetical language midway in the "power continuum". He defines "power" roughly as being able to do more with fewer lines of code.

12 The Blub Paradox "As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down [Blub programmers are] satisfied with whatever language they happen to use, because it dictates the way they think about programs." --Paul Graham Why do I need higher-order functions? My language doesn't have it, and it works just fine!!!

13 So what kind of abstractions do different languages give us?

14 A little history WWII: programming meant plugboards

15 Von Neumann (late 1940s) created a permanently hardwired general purpose instruction set. A small, machine language program

16 Assembly (1950s) Translates mnemonic symbols to machine instructions. Not a higher level just easier for humans to read. mov ax, 1234h mov bx, ax

17 Higher-level languages Fortran (1950s): Algebraic notation, floating point math Algol (1960): Machine independence (via compiler) Control structures: loops, procedures, if statements Formal specification

18 Does a formal specification matter?

19 Type of Abstractions Data Basic: representation of common data values, variables to represent memory locations. Structured: arrays, text files. Unit: APIs, packages, classes, etc. Control Basic: "syntactic sugar" x+=10 => x=x+10 Structured: branch instructions (if statements, etc) Unit: Similar to Data, but focused on operations.

20 Languages we will cover (subject to change) Scheme (functional programming) Prolog (logical programming) JavaScript (event-based programming) Ruby (metaprogramming, & because it's cool) ANTLR grammars

21 Administrative Details Green sheet available at Greensheet.html. Homework assignments will be submitted through Canvas ( Academic integrity policy:

22 Schedule The class schedule is available through Canvas Late homeworks will not be accepted Check the schedule before every class Check the schedule before every class And finally, CHECK THE SCHEDULE BEFORE EVERY CLASS.

23 Prerequisites CS 151 or CMPE 135, grade C- or better Show me proof of your prerequisite (even if you are registered for the course). If you don't provide proof, I will drop you from the course.

24 Resources Louden & Lambert, "Programming Languages: Principles and Practice", 3rd ed. Sitaram, "Teach Yourself Scheme in Fixnum Days". t-y-scheme/t-y-scheme.html

25 Grading 40% -- Homework assignments 25% -- Midterm 25% -- Final 10% -- Participation (labs)

26 Participation: Labs Labs are graded as complete/incomplete. I generally do not give feedback on your lab solutions, though I will look at them. If you have questions, ask me during the lab.

27 Office hours MacQuarrie Hall room 216. Tuesdays 10:30 11:30 am. Thursdays 3:30 4:30 pm. If you need to meet with me another time, send me an .

28 Scheme

29 What is Scheme? A functional language Describe what things are, not how to do them. More mathematical compared to imperative langs. A dialect of Lisp (List Processing) The list is the primary data structure (Famously) minimal language We will use the Racket dialect of Scheme

30 A bit of scheming Sample list: '( ) The quote declares this list as data First argument is assumed to be a function Rest of the list are its arguments (* ) car: gets the first element of the list cdr: gets the tail of the list.

31 $ racket Welcome to Racket v > '( ) '( ) > (car '( )) 1 > (cdr '( )) '(2 3 4) > (+ 1 (* 2 4) (- 5 1)) 13 >

32 Before next class Install Racket from Read chapters 1-2 of Louden & Lambert.

33 First homework due September 5th This assignment is designed to get you up and running with Racket. Available in Canvas. If you don't have access to Canvas, see hw/hw1/ instead. Get started now!

34 EXTRA CREDIT: Build it, Break it See competition details at You can earn up to 15 points of extra credit (5 pts/round). Register with your SJSU address. Build It Round: :00 EDT :00 EDT Break It Round: :00 EDT :00 EDT Fix It Round: :00 EDT :00 EDT

http://xkcd.com/224/ CS 152: Programming Language Paradigms Prof. Tom Austin San José State University What are some programming languages? Taken from http://pypl.github.io/pypl.html January 2016 Why are

More information

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

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013 CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective

More information

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

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018 San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018 Course and Contact Information Instructor: Thomas Austin Office

More information

CS152 Programming Language Paradigms Prof. Tom Austin, Fall Syntax & Semantics, and Language Design Criteria

CS152 Programming Language Paradigms Prof. Tom Austin, Fall Syntax & Semantics, and Language Design Criteria CS152 Programming Language Paradigms Prof. Tom Austin, Fall 2014 Syntax & Semantics, and Language Design Criteria Lab 1 solution (in class) Formally defining a language When we define a language, we need

More information

Introduction to Security

Introduction to Security CS 166: Information Security Introduction to Security Prof. Tom Austin San José State University Why should we learn about information security? Computer Security in the News Computer Crime for Fun & Profit

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Section 1 Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017 Course and Contact Information San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017 Instructor: Office Location:

More information

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

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016 Course and Contact Information San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016 Instructor: Office Location:

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (s) Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location:

More information

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours:

More information

CS 3304 Comparative Languages. Lecture 1: Introduction

CS 3304 Comparative Languages. Lecture 1: Introduction CS 3304 Comparative Languages Lecture 1: Introduction 17 January 2012 2012 Denis Gracanin Course Overview 2 Welcome What this course is about? What this course is not about? What will you learn? How will

More information

CSCI 3136 Principles of Programming Languages

CSCI 3136 Principles of Programming Languages CSCI 3136 Principles of Programming Languages Summer 2013 Faculty of Computer Science Dalhousie University 1 / 100 CSCI 3136 Principles of Programming Languages Summer 2013 Aminul Islam Faculty of Computer

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (Labs) Spring 2019 Course and Contact Information Instructor: Ron Mak Office Location:

More information

Welcome to CS 135 (Winter 2018)

Welcome to CS 135 (Winter 2018) Welcome to CS 135 (Winter 2018) Instructors: Sandy Graham, Paul Nijjar Other course personnel: see website for details ISAs (Instructional Support Assistants) IAs (Instructional Apprentices) ISC (Instructional

More information

Course and Contact Information. Course Description. Course Objectives

Course and Contact Information. Course Description. Course Objectives San Jose State University College of Science Department of Computer Science CS157A, Introduction to Database Management Systems, Sections 1 and 2, Fall2016 Course and Contact Information Instructor: Dr.

More information

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

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview

More information

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

Welcome to CS 135 (Fall 2018) Themes of the course. Lectures.   cs135/ Welcome to CS 135 (Fall 2018) Instructors: Byron Weber Becker, Charles Clarke, Gord Cormack, Robert Hackman, Kevin Lanctot, Paul Nijjar, Adrian Reetz Other course personnel: see website for details ISAs

More information

Functional Programming Lecture 1: Introduction

Functional Programming Lecture 1: Introduction Functional Programming Lecture 1: Introduction Viliam Lisý Artificial Intelligence Center Department of Computer Science FEE, Czech Technical University in Prague viliam.lisy@fel.cvut.cz Acknowledgements

More information

CMPE 152 Compiler Design

CMPE 152 Compiler Design San José State University Department of Computer Engineering CMPE 152 Compiler Design Course and contact information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours: Section 4

More information

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,

More information

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)

More information

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful? Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic

More information

Scala, Your Next Programming Language

Scala, Your Next Programming Language Scala, Your Next Programming Language (or if it is good enough for Twitter, it is good enough for me) WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that

More information

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015 San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015 Course and Contact Information Instructor: Ron Gutman Office Location:

More information

Compiler Design Spring 2018

Compiler Design Spring 2018 Compiler Design Spring 2018 Thomas R. Gross Computer Science Department ETH Zurich, Switzerland 1 Logistics Lecture Tuesdays: 10:15 11:55 Thursdays: 10:15 -- 11:55 In ETF E1 Recitation Announced later

More information

last time in cs recitations. computer commands. today s topics.

last time in cs recitations. computer commands. today s topics. last time in cs1007... recitations. course objectives policies academic integrity resources WEB PAGE: http://www.columbia.edu/ cs1007 NOTE CHANGES IN ASSESSMENT 5 EXTRA CREDIT POINTS ADDED sign up for

More information

Course and Contact Information. Course Description. Course Objectives

Course and Contact Information. Course Description. Course Objectives San Jose State University College of Science Department of Computer Science CS157A, Introduction to Database Management Systems, Sections 1 and 2, Fall2017 Course and Contact Information Instructor: Dr.

More information

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018 Course and Contact Information San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018 Instructor: Office Location:

More information

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018 San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018 Course and Contact Information Instructor: Office Location: Fabio Di Troia DH282 Telephone:

More information

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Course and Contact Information San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Instructor: Aikaterini Potika Office Location: MacQuarrie Hall 215

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

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

INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES. Norbert Zeh Winter Dalhousie University 1/10 INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES Norbert Zeh Winter 2018 Dalhousie University 1/10 GOAL OF THIS COURSE 2/10 GOAL OF THIS COURSE Encourage you to become better programmers 2/10 GOAL OF THIS

More information

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

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 Course and Contact Information Instructor: Suneuy Kim Office

More information

CS 3110 Lecture 1 Course Overview

CS 3110 Lecture 1 Course Overview CS 3110 Lecture 1 Course Overview Ramin Zabih Cornell University CS Fall 2010 www.cs.cornell.edu/courses/cs3110 Course staff Professor: Ramin Zabih Graduate TA s: Joyce Chen, Brian Liu, Dane Wallinga Undergraduate

More information

Introduction, Functions

Introduction, Functions Informatics 1 Functional Programming Lectures 1 and 2 Introduction, Functions Don Sannella University of Edinburgh Welcome to Informatics 1, Functional Programming! Informatics 1 course organiser: Paul

More information

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

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2015 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

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

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

COSE212: Programming Languages. Lecture 0 Course Overview

COSE212: Programming Languages. Lecture 0 Course Overview 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

More information

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

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 Course and Contact Information Instructor: Dr. Kim Office Location:

More information

SOFTWARE ARCHITECTURE 6. LISP

SOFTWARE ARCHITECTURE 6. LISP 1 SOFTWARE ARCHITECTURE 6. LISP Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ 2 Compiler vs Interpreter Compiler Translate programs into machine languages Compilers are

More information

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

CS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University CS383 PROGRAMMING LANGUAGES Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University KENNY Q. ZHU Research Interests: Programming Languages Probabilistic Programming Data Processing Concurrency

More information

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

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2016 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

IA010: Principles of Programming Languages

IA010: Principles of Programming Languages IA010: Principles of Programming Languages Introduction and course organization Achim Blumensath blumens@fi.muni.cz Faculty of Informatics, Masaryk University, Brno Warm-up: A Quiz What does this program

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits CSci 4211: Data Communications and Computer Networks Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits 1 Instructor David Hung-Chang Du Email: du@cs.umn.edu Office:

More information

Welcome to CS 115 (Winter 2019)

Welcome to CS 115 (Winter 2019) Welcome to CS 115 (Winter 2019) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs

More information

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? What is a programming language?...there is no agreement on what a programming language

More information

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

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2017 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

CS 242. Fundamentals. Reading: See last slide

CS 242. Fundamentals. Reading: See last slide CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language

More information

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes Welcome to CS 470/670 Introduction to Artificial Intelligence Office: Lab: Instructor Marc Pomplun S-3-171 S-3-135 Office Hours: Tuesdays 4:00pm 5:30pm Thursdays 7:00pm 8:30pm Spring 2016 Instructor: Marc

More information

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits CSci 4211: Introduction to Computer Networks Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits 1 Instructor David Hung-Chang Du Email: du@cs.umn.edu Office: Keller

More information

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Textbook Programming Challenges

More information

Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen

Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems Tommi Tervonen Econometric Institute, Erasmus School of Economics Course learning objectives After this course, you

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 1 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 1 What is a programming language? Languages for Scientific

More information

Introduction to Nate Foster Spring 2018

Introduction to Nate Foster Spring 2018 Introduction to 3110 Nate Foster Spring 2018 Welcome! Programming isn t hard Programming well is very hard High variance among professionals productivity: 10x or more Studying functional programming will

More information

ESET 349 Microcontroller Architecture, Fall 2018

ESET 349 Microcontroller Architecture, Fall 2018 ESET 349 Microcontroller Architecture, Fall 2018 Syllabus Contact Information: Professor: Dr. Byul Hur Office: 008 Fermier Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

Homework 1. Notes. What To Turn In. Unix Accounts. Reading. Handout 3 CSCI 334: Spring, 2017

Homework 1. Notes. What To Turn In. Unix Accounts. Reading. Handout 3 CSCI 334: Spring, 2017 Homework 1 Due 14 February Handout 3 CSCI 334: Spring, 2017 Notes This homework has three types of problems: Self Check: You are strongly encouraged to think about and work through these questions, but

More information

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan April 18,2017 V-U For Updated Files Visit Our Site : Www.VirtualUstaad.blogspot.com Updated. MidTerm Papers Solved

More information

Course and Contact Information. Catalog Description. Course Objectives

Course and Contact Information. Catalog Description. Course Objectives San Jose State University College of Science Department of Computer Science CS157A, Introduction to Database Management Systems, Sections 1 and 2, Fall2015 Course and Contact Information Instructor: Dr.

More information

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor CSE 114, Computer Science 1 Course Information Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor http://www.cs.stonybrook.edu/~cse114 Course Description Procedural and object-oriented programming

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 17 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 17 What is a programming language? Languages for Scientific

More information

Administration Computers Software Algorithms Programming Languages

Administration Computers Software Algorithms Programming Languages Administration Computers Software Algorithms Programming Languages http://www.cs.sfu.ca/cc/130/johnwill/ This course does not use Canvas John Edgar 3 Come to class Read ahead Attend the labs You get practice

More information

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that

More information

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I Lecture 1: Class Introduction DR. BO TANG ASSISTANT PROFESSOR HOFSTRA UNIVERSITY 1 9/7/16 CSC15 - Python OUTLINE What is Computer Science? What is this Class

More information

Course and Unix Intro

Course and Unix Intro Course and Unix Intro Comp-206 : Introduction to Software Systems Lecture 1 Alexandre Denault Computer Science McGill University Fall 2006 Instructor Alexandre Denault Graduate student, working in the

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Introduction Instructor:

More information

Welcome to CS 115 (Winter 2018)

Welcome to CS 115 (Winter 2018) Welcome to CS 115 (Winter 2018) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs

More information

Introduction to Computer Science I

Introduction to Computer Science I Introduction to Computer Science I CSE 1020 www.cse.yorku.ca/course/1020 Programming Contests in September and October Everyone is welcome to participate in these contests. The students who will represent

More information

Languages and Compilers

Languages and Compilers Languages and Compilers Nate Nystrom Amanj Sherwany usi-compilers@googlegroups.com http://usi-pl.github.io/lc/sp2015 University of Lugano About me 2009 2010 Assistant Professor 1998 1999 compiler engineer

More information

Topic 1: Introduction

Topic 1: Introduction Topic 1: Introduction COS 320 Compiling Techniques Princeton University Spring 2015 Prof. David August 1 The Usual Suspects Me: Prof. David August, 221 CS Building august@, 258-2085 Office Hours: Tu/Th

More information

Program Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008.

Program Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008. Program Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008. Outline. Abstractions for telling a computer how to do things. Computational Paradigms. Language Definition, Translation.

More information

by the evening of Tuesday, Feb 6

by the evening of Tuesday, Feb 6 Homework 1 Due 14 February Handout 6 CSCI 334: Spring 2018 Notes This homework has three types of problems: Self Check: You are strongly encouraged to think about and work through these questions, and

More information

Functional Programming

Functional Programming The Meta Language (ML) and Functional Programming Daniel S. Fava danielsf@ifi.uio.no Department of informatics University of Oslo, Norway Motivation ML Demo Which programming languages are functional?

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Next time reading assignment [ALSU07] Chapters 1,2 [ALSU07] Sections 1.1-1.5 (cover in class) [ALSU07] Section 1.6 (read on your

More information

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013 61A LECTURE 1 FUNCTIONS, VALUES Steven Tang and Eric Tzeng June 24, 2013 Welcome to CS61A! The Course Staff - Lecturers Steven Tang Graduated L&S CS from Cal Back for a PhD in Education Eric Tzeng Graduated

More information

TTh 9.25 AM AM Strain 322

TTh 9.25 AM AM Strain 322 TTh 9.25 AM - 10.40 AM Strain 322 1 Questions v What is your definition of client/server programming? Be specific. v What would you like to learn in this course? 2 Aims and Objectives v Or, what will you

More information

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

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus Northeastern Illinois University CS 200, Section 1, Programming I, Fall 2017 Syllabus, Page 1 of 7 CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus COURSE INFORMATION: Credit

More information

Chapter 6 Control Flow. June 9, 2015

Chapter 6 Control Flow. June 9, 2015 Chapter 6 Control Flow June 9, 2015 Expression evaluation It s common in programming languages to use the idea of an expression, which might be a simple object function invocation over some number of arguments

More information

Introduction to System Programming Course 2015 Spring Euiseong Seo

Introduction to System Programming Course 2015 Spring Euiseong Seo Introduction to System Programming Course 2015 Spring Euiseong Seo (euiseong@skku.edu) 1 Overview What this course is about Who teaches this course Why you have to take this course What you will learn

More information

CS Exam #1-100 points Spring 2011

CS Exam #1-100 points Spring 2011 CS 4700 - Exam #1-100 points Spring 2011 Fill in the blanks (1 point each) 1. syntactic sugar is a term coined for additions to the syntax of a computer language that do not affect its expressiveness but

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 1a Andrew Tolmach Portland State University 1994-2017 1 What programming languages do you know? Some historically interesting and/or currently visible languages:

More information

CS 415 Midterm Exam Spring 2002

CS 415 Midterm Exam Spring 2002 CS 415 Midterm Exam Spring 2002 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Good Luck! Score Fortran Algol 60 Compilation Names, Bindings, Scope Functional Programming

More information

CSC 111 Introduction to Computer Science (Section C)

CSC 111 Introduction to Computer Science (Section C) CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming

More information

Introduction. A. Bellaachia Page: 1

Introduction. A. Bellaachia Page: 1 Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.

More information

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages Chapter 2 Preview Evolution of the Major Programming Languages The Beginnings of Data Abstraction: SIMULA 67 Orthogonal Design: ALGOL 68 Some Early Descendants of the ALGOLs Programming Based on Logic:

More information

CS457/557 Functional Languages

CS457/557 Functional Languages CS457/557 Functional Languages Spring 2018 Lecture 1: Course Introduction Andrew Tolmach Portland State University (with thanks to Mark P. Jones) 1 Goals of this course Introduce the beautiful ideas of

More information

CS4500: Advanced Data Communications

CS4500: Advanced Data Communications Welcome to CS4500: Advanced Data Communications Time: 3:30 4:45 pm T/R Location: CL #2003 Spring 2014 3 credits 1 Who Am I? Selena He Assistant Professor Department of Computer Science Kennesaw State University

More information

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones Type Inference Prof. Clarkson Fall 2016 Today s music: Cool, Calm, and Collected by The Rolling Stones Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax Formal semantics

More information

Domain specific programming languages Context Free Art

Domain specific programming languages Context Free Art Domain specific programming languages Context Free Art UC Santa Cruz CMPS 10 Introduction to Computer Science www.soe.ucsc.edu/classes/cmps010/spring11 ejw@cs.ucsc.edu 4 May 2011 Homework #3 Will be an

More information

CSc 372 Comparative Programming Languages

CSc 372 Comparative Programming Languages CSc 372 Comparative Programming Languages The University of Arizona Fall Semester, 2006 CSc 372, Fall 2006 Introduction Slide 1 CSc 372, Fall 2006 Introduction Slide 2 Introduction Instructor Teaching

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

INF 315E Introduction to Databases School of Information Fall 2015

INF 315E Introduction to Databases School of Information Fall 2015 INF 315E Introduction to Databases School of Information Fall 2015 Class Hours: Tuesday & Thursday10:30 am-12:00 pm Instructor: Eunyoung Moon Email: eymoon@utexas.edu Course Description Almost every website

More information