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

Similar documents
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 1 & 2, Fall Semester, 2017

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

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

San José State University Department of Computer Science CS166, Information Security, Section 1, Fall, 2018

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

CS/SE 153 Concepts of Compiler Design

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

CMPE 152 Compiler Design

CS/SE 153 Concepts of Compiler Design

CMPE 152 Compiler Design

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

CMPE 152 Compiler Design

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

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

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

CMPE/SE 135 Object-Oriented Analysis and Design

CMPE 280 Web UI Design and Development

CMPE 280 Web UI Design and Development

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


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 CS 122 Advanced Python Programming Spring 2018

San Jose State University - Department of Computer Science


Course and Contact Information. Course Description. Course Objectives

Course and Contact Information. Catalog Description. Course Objectives

CMPE 180A Data Structures and Algorithms in C++

AE Computer Programming for Aerospace Engineers

San José State University Department of Computer Science CS158B, Computer Network Management, Section 1, Fall 2016

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

ESET 349 Microcontroller Architecture, Fall 2018

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

CS 241 Data Organization using C

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

San José State University College of Science / Computer Science Department Data BS Management Systems 2, CS 157B-02, Spring, 2017

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

CSC 111 Introduction to Computer Science (Section C)

Compilers. Computer Science 431

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

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

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

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

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CS 3270 Mobile Development for Android Syllabus

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

ESET 369 Embedded Systems Software, Fall 2017

CoSci 487 SYLLABUS Introduction to Networks

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

ECE573 Introduction to Compilers & Translators

Computer Science Technology Department

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

Compilers for Modern Architectures Course Syllabus, Spring 2015

CS157a Fall 2018 Sec3 Home Page/Syllabus

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

Computer Science Technology Department

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

Survey of Programming Languages Dr. R. M. Siegfried 407 Science (516) (not for homework submission)

SYLLABUS. Departmental Syllabus

San José State University School/Department Computer Science 265: Cryptography and Computer Security, Fall 2017

HOUSTON COMMUNITY COLLEGE BUSINESS TECHNOLOGY NORTHEAST COLLEGE-NORTHLINE LOCATION COURSE SYLLABUS FALL 2011 COMPUTER APPLICATION I POFI 1301

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

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

INFS 2150 (Section A) Fall 2018

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

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

ECE Introduction to Compilers and Translation Engineering

CSc 2310 Principles of Programming (Java) Jyoti Islam

COURSE SYLLABUS AND INSTRUCTOR PLAN

ESET 369 Embedded Systems Software, Spring 2018

Computer Technology Division. Course Syllabus for: COMT Spring Instructor: Joe Bolen

CS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.

COURSE NUMBER: ISS 214 COURSE NAME: Connecting Networks - Cisco 4 SEMESTER CREDIT HOURS: 4.

Advanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University

SYLLABUS. Departmental Syllabus. Departmental Syllabus. Departmental Syllabus. Departmental Syllabus. Departmental Syllabus

You must pass the final exam to pass the course.

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline Introduction to Networks [CISCO 1] ISS 111

GET 433 Course Syllabus Spring 2017

A: 90% - 100% B: 80% - <90% C: 70% - <80% D: 60% - <70% F: < 60% Important Dates:

CS535: Interactive Computer Graphics

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

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

Computer Science Technology Department

Computer Science Technology Department

CSCE 441 Computer Graphics Fall 2018

Gerlinde Brady Phone: Office Hours: see Web at:

Course Syllabus. Course Information

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

Marshall University MTH 100 Syllabus

Linear Algebra Math 203 section 003 Fall 2018

Cleveland State University

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

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

INFSCI 1017 Implementation of Information Systems Spring 2017

INF 315E Introduction to Databases School of Information Fall 2015

Transcription:

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 Location: MacQuarrie Hall 216 Telephone: 408-924-7227 Email: Office Hours: thomas.austin@sjsu.edu Mondays/Wednesdays 10-11am, or by appointment Class Days/Time: Monday/Wednesday 1:30-2:45 (Section 03), 3:00-4:15 (Section 04) Classroom: Duncan Hall 450 Prerequisites: Course Format Faculty Web Page and MYSJSU Messaging CS 151 or CMPE 135 (with a grade of "C-" or better) Course materials such as syllabus, handouts, notes, assignment instructions, etc. can be found on my faculty web page at http://www.cs.sjsu.edu/~austin/cs152-fall18 and Canvas (http://sjsu.instructure.com/). You are responsible for regularly checking with the messaging system through Canvas to learn of any updates. Course Description (Copied from http://info.sjsu.edu/web-dbgen/catalog/courses/cs152.html) Programming language syntax and semantics. Data types and type checking. Scope, bindings, and environments. Functional and logic programming paradigms, and comparison to other paradigms. Extensive coverage of a functional language. Course Goals Upon successful completion of this course, students will be able to: 1. Understand programming language design. 2. Achieve competence in a functional programming language. Course Learning Outcomes (CLO) Upon successful completion of this course, students will be able to: 1. Have a basic knowledge of the history of programming languages. 2. Have a basic knowledge of the procedural, object-oriented, functional, and logic programming paradigms. 3. Understand the roles of interpreters, compilers, and virtual machines. 4. Critique the design of a programming language. 5. Read and produce context-free grammars. Course Name, Number, Semester, Year Page 1 of 5

6. Write recursive-descent parsers for simple languages, by hand or with a parser generator. 7. Understand variable scoping and lifetimes. 8. Write interpreters for simple languages that involve arithmetic expressions, bindings of values to names, and function calls. 9. Understand type systems. 10. Understand the implementation of procedure calls and stack frames. 11. Produce programs in a functional programming language in excess of 200 LOC. Required Texts/Readings Textbook "Teach Yourself Scheme in Fixnum Days", Dorai Sitaram, http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-yscheme.html. Additional readings TBD. Course Requirements and Assignments (Required) SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/s12-3.pdf. Homework assignments consist of 2 programming assignments in Scheme, one in JavaScript, and one in Prolog. There is also a group project building an interpreter using ANTLR and Java. There is a final and a midterm. In-class labs are used as the basis for your participation grade. Any question in the lab is fair game for the exams. See Canvas at http://sjsu.instructure.com/ for more details. Success in this course is based on the expectation that students will spend, for each unit of credit, a minimum of 45 hours over the length of the course (normally three hours per unit per week) for instruction, preparation/studying, or course related activities, including but not limited to internships, labs, and clinical practica. Other course structures will have equivalent workload expectations as described in the syllabus. Final Examination or Evaluation The final exam is worth 20% of the total grade for the class. It is a written exam. Paper will be provided. Bring something to write with. Course Name, Number, Semester, Year Page 2 of 5

Grading Information Determination of Grades 1. 30% -- Homework assignments (individual) 2. 20% -- Class project (team) 3. 20% -- Midterm 4. 20% -- Final 5. 10% -- Participation (labs and drills) Assignments are due by 11:59 PM Pacific Time on the specified day. Late homework assignments will not be accepted. Nominal grading scale: Percentage 92 and above A 90-91 A- 88-89 B+ 82-87 B 80-81 B- 78-79 C+ 72-77 C 70-71 C- 68-69 D+ 62-67 D 60-61 D- 59 and below F Grade Classroom Protocol Attendance is recommended, but it is not mandatory, except for exam dates. Cell phone use is prohibited. Punctuality is appreciated. Bring your laptop to class. University Policies Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on Office of Graduate and Undergraduate Programs Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/ Course Name, Number, Semester, Year Page 3 of 5

CS 152, Programming Language Paradigms, Fall 2018 Please note that the schedule is subject to change with fair notice, which will be posted through Canvas at https://sjsu.instructure.com. TENTATIVE Course Schedule Week Date Topics, Readings, Assignments, Deadlines 1 08/22 Course introduction 2 08/27 Scheme 2 08/29 Syntax & Semantics, and Language Design Criteria 3 09/03 **LABOR DAY NO CLASS** 3 09/05 Higher order functions map and filter 4 09/10 Higher order functions fold 4 09/12 Operational semantics 5 09/17 Closures and scoping 5 09/19 Programming contracts 6 09/24 Macros 6 09/26 Scheme review 7 10/01 JavaScript 7 10/03 Event-based programming 8 10/08 Scoping in JavaScript, JSLint, and TypeScript 8 10/10 ECMAScript 6 and metaobject protocols 9 10/15 ANTLR & Syntax 9 10/17 Review for midterm 10 10/22 Midterm exam 10 10/24 Prolog 11 10/29 Resolution and unification, the cut operator 11 10/31 Lists in Prolog and debugging Prolog 12 11/05 Ruby 12 11/07 Ruby blocks 13 11/12 **VETERAN S DAY NO CLASS** 13 11/14 Virtual Machines Course Name, Number, Semester, Year Page 4 of 5

Week Date Topics, Readings, Assignments, Deadlines 14 11/19 Dynamic code evaluation, taint analysis, and information flow analysis 14 11/21 Inform 7 15 11/26 LaTeX and domain specific languages 15 11/28 Python and IDE plugins 16 12/03 TBD 16 12/05 Advanced Java features, wrap-up 17 12/10 Review for final Final Exam Section 3: Wednesday, December 12. 12:15-2:15pm. Section 4: Friday, December 14. 12:15-2:15pm. Course Name, Number, Semester, Year Page 5 of 5