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

Similar documents
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 College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design

CMPE 152 Compiler Design

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 CS-174, Server-side Web Programming, Section 2, Spring 2018

CMPE 152 Compiler Design

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

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

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

CMPE 152 Compiler Design

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 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 Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

San Jose State University - Department of Computer Science

AE Computer Programming for Aerospace Engineers

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

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

CMPE 280 Web UI Design and Development

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

CMPE/SE 135 Object-Oriented Analysis and Design

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

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

CMPE 280 Web UI Design and Development

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

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

ECE573 Introduction to Compilers & Translators

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

Course and Contact Information. Course Description. Course Objectives

CS 3270 Mobile Development for Android Syllabus

Marshall University MTH 100 Syllabus

CSC 111 Introduction to Computer Science (Section C)

Course and Contact Information. Course Description. Course Objectives

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

Compilers. Computer Science 431

CS157a Fall 2018 Sec3 Home Page/Syllabus

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

Developing Web Applications and Services Course Syllabus Fall 2015

Course and Contact Information. Catalog Description. Course Objectives

CS 3030 Scripting Languages Syllabus

ESET 349 Microcontroller Architecture, Fall 2018

INF 315E Introduction to Databases School of Information Fall 2015

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

CMPE 180A Data Structures and Algorithms in C++

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

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

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Web Programming Fall 2011

Principles of Compiler Construction ( )

Principles of Compiler Construction ( )

CS 4230 Java Application Development Syllabus

CS 241 Data Organization using C

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

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

ITNW 1425 Fundamentals of Networking Technologies Course Syllabus fall 2012

CS 4230 Java Application Development Syllabus

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.


COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

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

Introduction to Computer Systems

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

CS 0449 Intro to Systems Software Fall Term: 2181

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

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

CS503 Advanced Programming I CS305 Computer Algorithms I

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

San José State University Science/Computer Science Database Management System I

Syllabus CSCI 405 Operating Systems Fall 2018

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

CoSci 487 SYLLABUS Introduction to Networks

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

COSC 115A: Introduction to Web Authoring Fall 2014

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

CSc 2310 Principles of Programming (Java) Jyoti Islam

COSC 115: Introduction to Web Authoring Fall 2013

ECE Mixed-Signal Design and Modeling Course Syllabus Fall 2017

IT 341 Fall 2017 Syllabus. Department of Information Sciences and Technology Volgenau School of Engineering George Mason University

Introduction to Computer Systems

Please Turn Your Mobile Phone Silent. August 29, 2017 CSc 242 1

Database Design and Management - BADM 352 Fall 2009 Syllabus and Schedule

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

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

TEACHING & ASSESSMENT (T & A) PLAN College of Economics Management and Information Systems Department of Information Systems

Network Fundamentals and Design Fall Semester 2014

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

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

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

Programming Languages and Compilers (CS 421)

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

CPSC 2380 Data Structures and Algorithms

Compilers for Modern Architectures Course Syllabus, Spring 2015

IT-2670: C/C++ PROGRAMMING LANGUAGE

Del Mar College Master Course Syllabus. UNIX System Administration Course Number: ITSC1358

Transcription:

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: Jon Pearce 416 MacQuarrie Hall Telephone: (408) 924-5065 Email: jon.pearce@sjsu.edu Office Hours: Tuesday & Thursday, 1400-1500 Class Days/Time: Classroom: Prerequisites: section 3 : TR 9:00 10:15 section 4 : TR 10:30 11:45 233 MacQuarrie Hall C- or better in CS 46B and CS 151 Course Description Catalog Descrip/on 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. Section Description After an overview of the major concepts of programming language syntax and semantics, the Prolog language will be briefly covered to acquaint students with the Logic Programming Paradigm. Next, the Scala language will be covered in depth. Scala is growing in popularity; it provides a nice introduction to the Functional Programming Paradigm as well as a 21 st Century look at the Object-Oriented Paradigm. The second half of the course introduces Jedi, a simple but powerful experimental language. Using Scala as a meta-language, students will write parsers and reference interpreters for various subsets of Jedi. Course Learning Outcomes (CLO) 1 of 6

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 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 2 of 6

Required Texts/Readings Textbook Lecture note and other materials will be posted at CS152 Course Website: http://www.cs.sjsu.edu/faculty/pearce/modules/courses/f16/cs152/index.htm Other Readings David Watt, Programming Language Concepts and Paradigms, Prentice Hall, 1990 Friedman, Wand and Haynes, Essentials of Programming Languages, 2nd ed., MIT Press 2001 Lohr, Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists and Iconoclasts--The Programmers Who Created the Software Revolution. Other equipment / material requirements (include if applicable) Students should bring laptops to class. The following software should be installed: Scala Eclipse SWI Prolog Star UML 2 Course Requirements and Assignments 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. Many of the assignments require students to implement parsers and reference interpreters in Java or Scala for various experimental languages. No prior knowledge of Scala will be assumed. Several weeks will be spent introducing students to Scala, a language which supports multiple paradigms. Thus, students will gain experience with different programming paradigms while learning programming language concepts through the reference interpreters they will write. These assignments enable the following CLOs: 2, 3, 5, 6, 7, 8, 9, 10, and 11. The actual assignments and their due dates are posted below. Assignment weights are proportional to the maximum number of possible points assigned to each assignment. These points can be found on Canvas. Grading Policy Grades will be determined by programming assignments and in-class labs (50%), one midterm (20%), and a final exam (30%). Assuming a standard distribution of point totals I will use the following scale for assigning final grades: 3 of 6

A 90% - 100% B 80% - 89% C 70% - 79% D 60% - 69% F 0% - 59% 4 of 6

Classroom Protocol Students should bring laptops to class and be prepared to work together on in-class labs. 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 Schedule The tenta(ve course schedule below is subject to change. No(fica(on of changes will be made in class. Week Tuesday Topics Thursday Topics 1 25- Aug Syllabus overview 2 30- Aug Concepts 1- Sep Concepts 3 6- Sep Concepts 8- Sep Concepts 4 13- Sep Prolog 15- Sep Prolog 5 20- Sep Prolog 22- Sep Prolog 6 27- Sep Scala 29- Sep Scala 7 4- Oct Scala 6- Oct Scala 8 11- Oct Midterm Review 13- Oct Midterm 9 18- Oct Scala 20- Oct Scala 10 25- Oct Jedi 1.0 27- Oct Jedi 1.0 11 1- Nov Jedi 1.0 3- Nov Jedi 1.0 12 8- Nov Jedi 2.0 10- Nov Jedi 2.0 13 15- Nov Jedi 2.0 17- Nov Jedi 2.0 14 22- Nov Jedi 3.0 24- Nov Thanksgiving 15 29- Nov Jedi 3.0 1- Dec Jedi 3.0 16 6- Dec Jedi 4.0 8- Dec Final Review Final Exams Sec8on Day Date Time Sec 3 Friday 16- Dec 0715-0930 Sec 4 Thursday 15- Dec 0945-1200 5 of 6

6 of 6