Programming Languages



Similar documents
Programming Languages

CSE 307: Principles of Programming Languages

Lecture 1: Course Introduction"

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Lecture 1: Introduction

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Introduction to Database Systems CS4320. Instructor: Christoph Koch CS

LANGARA COLLEGE Course Outline

UNIVERSITY OF MASSACHUSETTS BOSTON COLLEGE OF MANAGEMENT AF Theory of Finance SYLLABUS Spring 2013

What is a programming language?

FIN 357 BUSINESS FINANCE

or simply Google John Penn WVU and take the top hit. Useful Websites to Help the Organic Chemistry Class

02-201: Programming for Scientists

PSY 2012 General Psychology Syllabus

The textbook for the course is: Ho, Kwok and Robinson, Chris, Personal Financial Planning, Fifth Edition, Captus Press, Toronto, 2012.

GENERAL PSYCHOLOGY, PSC 1, Section 2

CS A250 (CRN ) C++ Programming Language 2. Syllabus Fall 2015

ISM 4210: DATABASE MANAGEMENT

Image credits:

Syllabus: ACG 2071 Principles of Managerial Accounting (online), Summer 2008

Intermediate Economics II: Macroeconomics Economics 512: ONLINE Spring 2015

CMSC Fundamentals of Computer Programming II (C++)

PCB 3043: Ecology Spring 2012, MMC

CSCI 3136 Principles of Programming Languages

University of Georgia Terry College of Business Department of Economics

ISM 4113: SYSTEMS ANALYSIS & DESIGN

Math 103, College Algebra Spring 2016 Syllabus MWF Day Classes MWTh Day Classes

CS 306/491-3 Linux Programming Spring 2015

1/20/2016 INTRODUCTION

PSYC B: INTRODUCTION TO PSYCHOLOGY ON-LINE COURSE SUMMER 2012 Dr. Rebecca Jubis. Be sure to indicate your course and section.

n Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation

Objectives of Lecture 1. Labs and TAs. Class and Office Hours. CMPUT 391: Introduction. Introduction

Roberts Hall 302, Office hours: me for an appointment! Shuchisnigdha Deb,

Syllabus. Finance 367: Investment Management

BUS , Management Communication

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

UNIVERSITY OF MANITOBA ASPER SCHOOL OF BUSINESS DEPARTMENT OF ACCOUNTING AND FINANCE. FIN 3470 SMALL BUSINESS FINANCE- Fall 2013 Term

AGEC 448 AGEC 601 AGRICULTURAL COMMODITY FUTURES COMMODITY FUTURES & OPTIONS MARKETS SYLLABUS SPRING 2014 SCHEDULE

BCS Higher Education Qualifications. Professional Graduate Diploma in IT. Programming Paradigms Syllabus

SYLLABUS FIN 510: INVESTMENT SEMINAR University Center Dallas

CSE532 Theory of Database Systems Course Information. CSE 532, Theory of Database Systems Stony Brook University

ACC 7145: ACCOUNTING SYSTEMS DESIGN AND CONTROL SYLLABUS FOR SUMMER SESSION 2014

Fall 2012 Q530. Programming for Cognitive Science

CSE 130 Programming Language Principles & Paradigms

Computer Science 210: Data Structures. Introduction

Brown University Department of Economics Spring 2015 ECON 1620-S01 Introduction to Econometrics Course Syllabus

Department of Electrical and Computer Engineering. EEL 3160 Embedded C++ and Data Structures. Tuesday & Thursday 3:00 5:00 pm

THE UNIVERSITY OF HONG KONG FACULTY OF BUSINESS AND ECONOMICS School of Economics and Finance. FINA0102 Financial Markets and Institutions

How To Learn To Program In Csc 406 Computer Graphics

Psychology 366 (A01) Psychological Disorders of Childhood and Adolescence Term A01 CRN Summer Session 2015

Accounting 1B Principals of Accounting Course Description in-person. Instructor: Dr. Robert Daily

Software Development Foundations CPSC Spring 2014 Syllabus

BUSI0019 Intermediate Accounting I ACCT2102 Intermediate Financial Accounting I. Course Outline

INSC 102 Technologies for Information Retrieval FALL 2014 SECTION 002 Delivered online via Asynchronous Distance Education (ADE)

Psychology Mind and Society Mondays & Wednesdays, 2:00 3:50 pm, 129 McKenzie Hall Fall 2013 (CRN # 16067)

CS 1361-D10: Computer Science I

Economics 159: Introduction to Game Theory. Summer 2015: Session A. Online Course

CSC 314: Operating Systems Spring 2005

ABNORMAL PSYCHOLOGY (PSYCH 238) Psychology Building, Rm.31 Spring, 2010: Section K. Tues, Thurs 1:45-2:45pm and by appointment (schedule via )

Gogebic Community College PSY 111 HONORS GENERAL PSYCHOLOGY SYLLABUS FALL, Section 01; room A326; 10:10:53 MW and 10:11:53 a.m.

Prerequisite Math 115 with a grade of C or better, or appropriate skill level demonstrated through the Math assessment process, or by permit.

Course mechanics. CS 458 / 658 Computer Security and Privacy. Course website. Additional communication

PSY 2012 General Psychology Sections 4041 and 1H85

CS 300 Data Structures Syllabus - Fall 2014

LANGARA COLLEGE Course Outline. Course: Philosophy 1104: Critical Thinking Sections: 002 (W 18:30 21:20; Rm.: A322) Term: Fall 2010 CRN: 30990

The course assumes successful completion of CSCI E-50a and CSCI E-50b, i.e. at least two semesters of programming, with a grade of C- or better.

WAYNE COUNTY COMMUNITY COLLEGE STUDENT COURSE SYLLABUS BUSINESS LAW BUSINESS LAW I (Spring )

CS 261 C and Assembly Language Programming. Course Syllabus

Math 103, College Algebra Fall 2015 Syllabus TTh PM Classes

COURSE INFORMATION. 3. You learn the course policies and follow them.

Instructor: Dr. Alan R. Lehman Teaching Assistants: Stephanie Turner 2209 LeFrak Hall (0301 & 0401) s.purucker.turner@hotmail.com

CS 51 Intro to CS. Art Lee. September 2, 2014

COURSE: PSYC 1101 (11) Introduction to Psychology TIME AND DAYS: Tuesdays & Thursdays; 1:00 2:15 pm CLASSROOM: Science Center 1405 (and computer lab)

Department of Electrical and Computer Engineering. EEL 4730 Programming Embedded Systems Spring 2015

Syllabus for MATH 191 MATH 191 Topics in Data Science: Algorithms and Mathematical Foundations Department of Mathematics, UCLA Fall Quarter 2015

Course Syllabus for English 3100: Business Writing

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS ACNT 2311: MANGERIAL ACCOUNTING ONLINE VERSION COMPUTER TECHNOLOGY & OFFICE ADMINISTRATION DEPARTMENT

Syllabus for CS 134 Java Programming

Oakland Community College MAT A1503 Calculus I Fall Semester, Instructor Jeremy JJ Mertz Office C-245

(618) Be sure to read Emergency Procedures at the bottom of this syllabus!!

General Psychology PSY110 Winter Session 2011

Foundations of Programming

MATH : College Algebra Fall 2013

Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014

Michael G. Foster School of Business University of Washington. MBA Core Managerial Finance BA 500 Fall 2015 Prof. Thomas Gilbert.

Gogebic Community College PSY 101 GENERAL PSYCHOLOGY INTERNET SYLLABUS FALL, 2015

MIS W: Mobile Business

General Psychology. Course Syllabus

MIS W: Mobile Business

Michael G. Foster School of Business University of Washington. MBA Core Managerial Finance BA 500 Fall Thomas Gilbert.

CS 458 / 658 Computer Security and Privacy. Course mechanics. Course website. Module 1 Introduction to Computer Security and Privacy.

Introduction to Software Engineering

Transcription:

CS 345 Programming Languages Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs345/ slide 1

Course Personnel Instructor: Vitaly Shmatikov Office: CSA 1.114 Office hours: Tuesday, 3:30-4:30pm (after class) Open door policy don t hesitate to stop by! TAs: Jeremy Stober and Austin Waters Office: PAI 5.38 (TA station #1) Office hours: Monday, 2-3pm and Wednesday, 1:30-2:30pm (Jeremy), TBA (Austin) Watch the course website Assignments, reading materials, lecture notes slide 2

Course Logistics Lectures: Tuesday, Thursday 2-3:15pm Homeworks and programming assignments 49% of the grade (7 assignments, 7% each) Three in-class exams (2 midterms and final) 51% of the grade (17% each) No make-up or substitute exams! If you are not sure you will be able to take the exams in class on the assigned dates, do not take this course! slide 3

Code of Conduct UTCS Code of Conduct will be strictly enforced All assignments are strictly individual Unless explicitly stated otherwise We were just talkin is not an excuse No Googling for answers! You do not want me to catch you cheating slide 4

Late Submission Policy Each take-home assignment is due in class at 2pm on the due date You have 3 late days to use any way you want You can submit one assignment 3 days late, 3 assignments 1 day late, etc. After you use up your days, you get 0 points for each late assignment Partial days are rounded up to the next full day slide 5

Course Materials Textbook: Mitchell. Concepts in Programming Languages. Attend lectures! Lectures will cover some material that is not in the textbook and you will be tested on it! Harbison, Steele. C: A Reference Manual. (5 th edition) Occasional assigned readings slide 6

Other Helpful Books Bison Manual Dybvig. The Scheme Programming Language. Harper. Programming in Standard ML. All of these are available for free online See links on the course website slide 7

Syllabus Survey of fundamental concepts underlying modern programming languages Goal: understand paradigms, not vocational training in any given language Examples drawn from ANSI C, C++, Java, Scheme, ML, JavaScript Procedural / imperative Functional / applicative Object-oriented Concurrent slide 8

Some Course Goals Language as a framework for problem-solving Understand the languages you use, by comparison Appreciate history, diversity of ideas in programming Be prepared for new methods, paradigms, tools Critical thought Identify properties of language, not syntax or sales pitch Language and implementation tradeoffs Every convenience has its cost Recognize the cost of presenting an abstract view of machine Understand tradeoffs in programming language design slide 9

Dijkstra on Language Design The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums. FORTRAN, 'the infantile disorder is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use. It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. slide 10

What s Worth Studying? Dominant languages and paradigms C, C++, Java JavaScript? Imperative and object-oriented languages Important implementation ideas Performance challenges Concurrency Design tradeoffs Concepts that research community is exploring for new programming languages and tools slide 11

Languages in Common Use [F. Labelle] Based on open-source projects at SourceForge slide 12

Flon s Axiom There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code. -Lawrence Flon slide 13

Latest Trends Commercial trends Increasing use of type-safe languages: Java, C#, Scripting and other languages for Web applications Teaching trends: Java replacing C Research and development trends Modularity Program analysis Automated error detection, programming environments, compilation Isolation and security Sandboxing, language-based security, slide 14

Support for Abstraction Data Programmer-defined types and classes Class libraries Procedural Programmer-defined functions Standard function libraries slide 15

Reliability Program behavior is the same on different platforms E.g., early versions of Fortran Type errors are detected E.g., C vs. ML Semantic errors are properly trapped E.g., C vs. C++ Memory leaks are prevented E.g., C vs. Java slide 16

What Does This C Statement Mean? modifies *p *p++ = *q++ increments p increments q Does this mean or or *p = *q; ++p; ++q; *p = *q; ++q; ++p; tp = p; ++p; tq = q; ++q; *tp = *tq; slide 17

Orthogonality A language is orthogonal if its features are built upon a small, mutually independent set of primitive operations. Fewer exceptional rules = conceptual simplicity E.g., restricting types of arguments to a function Tradeoffs with efficiency slide 18

Efficient Implementation Embedded systems Real-time responsiveness (e.g., navigation) Failures of early Ada implementations Web applications Responsiveness to users (e.g., Google search) Corporate database applications Efficient search and updating AI applications Modeling human behaviors slide 19