CptS 355 - Programming Language Design (Fall 2017)


Instructor: SakireArslan Ay

Office: Sloan 311

Email: sakire.arslanay[at] wsu .edu

Phone: (509) 335-4089

Office Hours: Mon, Wed, Fri: 1:10pm-2:50pm; (in Sloan 311)

Lectures: 9:10am- 10:00am, CLEV 30W

Teaching Assistant: Xiaoqin Fu

Office: TBA

Email: xiaoqin.fu@wsu.edu

Office Hours: TBA



 [81/21/2017] Welcome to CptS 355!


This 3 credit course provides an introduction to basic concepts in the design of programming languages. Students are expected to already be familiar with the C and C++ programming languages. Examples of concepts will be presented using a variety of languages (Scheme, LISP, ML, and Python, for instance). At the end of the course students will be familiar with the concepts that are commonly available in widely used programming languages and have experience using them in several contexts.

Prerequisites:"Cpts 223 - Advanced Data Structures", certified major in CptS, CptE, or EE

Textbooks and Reading Materials:

We will not follow any textbooks closely. For SML, you may use the following as a reference.

Programming in Standard ML, Robert Harper, Carnegie Mellon University, Spring 2011 (http://www.cs.cmu.edu/~rwh/isml/book.pdf)

Practical Foundations for Programming Languages, Robert Harper, Cambridge University Press, 2012. (ISBN-10: 1107029570))

Other Resources



Topics Reading # of Lectures
Introduction; Classification of programming languages Chapter 1 2
Python Basics Python Tutorial 3
Partial functions and computability, Postfix notation Chapter 2 5
Lisp: functions, recursion, and lists; Higher order and anonymous functions Chapter 3 6
Syntax - basic concepts: grammars, regular expressions Chapter 4.1 4
The Algol family and ML; functions; polymorphic types; records; datatypes; recursion...etc. Chapter 5 5
Types in programming : type systems and inference Chapter 6 3
Scope and scoping Chapter 7 5
Concepts in Object Oriented Languages: Java Chapter 10 2
Java classes and inheritance; Java systems architecture Chapter 13 1
Exceptions Chapter 8 1
Concurrency, Objects Chapters 14 and 10 1
C++: Objects and multiple inheritance Chapters 12 1
Constraint programming 1


Academic Integrity

Learning difficult or complicated material is often facilitated by discussions between students and I encourage you to form study groups to try to solve difficult problems together. However, work you submit submit must be your own. Exams, homework, and programming projects are subject to the EECS academic honor code. DO NOT CHEAT IN ANY WAY: DO YOUR OWN WORK! I define CHEATING to be any attempt to avoid any required obligation for the course: exams, homework, attendance, in-class kliks questions. Doing your own work means that you must turn in your own, original work. It means you do not turn in a solution you found on the web, nor do you have your friend mark you as present in class when you are, in fact, absent. It means you don't sign in as present in class when you are actually elsewhere. In programming projects, work together may extend to figuring out overall strategies for solution but you may not work together to write the actual code that you submit. Students who violate these rules or WSU's Standards of Conduct for Students (WAC 504-26-010 (3)) will fail the assignment and be reported to the Office of Student Standards and Accountability. A second violation will result in failing the course without having the option to withdraw. A pattern of academic integrity violations may result in your being decertified from the major. Note that penalties for cheating apply to both a person who turns in copied work and to a person who allows their work to be copied. WSU definitions and procedures for cases of academic dishonesty are given at the URL: https://deanofstudents.wsu.edu/default.asp?PageID=4295 .

Students with Disabilities

Reasonable accommodations are available for students with documented disability. If you have a disability and may need accommodations to fully participate in this class, please visit the Access Center (Washington Building 217) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center. Additional information can be viewed at the URL http://drc.wsu.edu

Campus Safety

The Campus Safety Plan, which can be found at http://safetyplan.wsu.edu , contains a comprehensive listing of university policies, procedures, statistics, and information relating to campus safety, emergency management, and the health and welfare of the campus community. The left side bar at this safety plan homepage contains many important links to safety information.