CS320 Principles of Programming Languages Winter 2019
Course Catalog Description
Syntax and semantics. Compilers and interpreters. Programs as data. Regular expressions and context free grammars. Programming paradigms, including procedural, functional, and object-oriented programming. Type systems, including dynamic and static typing disciplines. Binding, scope, data abstraction, and modularity. Denotational, operational, and axiomatic semantics. Introduction to program correctness.
Officially: CS202, and CS251, passed with grades of C or better. CS201 is also strongly
advised. It is assumed that you have substantial programming experience in C++ and/or C.
Requirements and Grading
- Weekly lab assignments in form of programming problems or written exercises.
- Midterm exam (week 6) and Final exams.
These exams may include practicum components conducted
during lab sections. There will be a written final exam in the official time slot.
- Makeup of grade:
|In-class TopHat Quizzes
Labs and Homework
- Concurrent registration in a lab section (CS320L) is required.
- Labs meet in the CS linuxlab (FAB 88-09).
- You should automatically have an account
on the CS linux machines.
- Each lab will have a handout (available on D2L) with exercises.
Completed exercises for each week are to be submitted to D2L by
9am on Tuesday of the following week.
- Exercises may be completed on your own computer or on a CS linux
machine, but they must work on a CS linux machine, which is where
they will be tested.
- Extensions will be given only under extraordinary circumstances; consult the
instructor in advance.
This schedule is tentative and subject to change.
||Introduction; From C/C++ to Java
||Language Specification and Implementation
||Object-oriented Programming and Data Abstraction in Java
||Scripting Languages: Python
||Regular Expressions in Python
||Review and Midterm exam
||Functional Programming in Haskell
||Algebraic data types in Haskell
||Grammars and Syntax
||Expressiveness, Computability and Formal Semantics
||Final exam 10:15-12:05
- We will be using the Top Hat classroom
response system during lectures. You will be able to
submit answers to in-class questions using Apple or
Android smartphones and tablets, laptops, or through text
- Your cost for using this system is $26/term.
- You can visit
Hat Overview within the Top Hat Success Center which
outlines how you will register for a Top Hat account, as
well as providing a brief overview to get you up and
running on the system.
- You can register by simply clicking directly on
website URL link or by by adding our Course Join Code
to your Top Hat account. The join code is: 097423
- Use your real name, your official PSU email address,
and provide your PSU ID number.
- Should you require assistance with Top Hat at any
time, due to the fact that they require specific user
information to troubleshoot these issues, please contact
their Support Team directly by way
of email, the in
app support button, or by calling 1-888-663-5491.
Java Language Resources
- Oracle documentation
- Bruce Eckel, Thinking in Java, 4th ed.
- Arnold, Gosling, Holmes, The Java Programming Language, 4th ed.
- Joshua Bloch, Effective Java
- Herbert Schildt, Java; The Complete Reference
- Lewis, Loftus, Java Software Solutions
- You are allowed to work together on labs and homeworks. However,
you must prepare and submit your solutions individually; a major goal of
the course is for you to become comfortable programming in the selected languages.
- Exams must be completed individually without any collaboration.
- Plagiarism or collaborating on an exam will result in an automatic zero grade
and the initiation of disciplinary action at the
Discrimination and Misconduct
- Portland State is committed to fostering a safe, productive learning environment.
Title IX and our school policy prohibit gender or sex-based discrimination and
sexual misconduct (including harassment, domestic and dating violence, sexual assault, and
- We expect a culture of professionalism and mutual respect in our department and class.
You may report any incident of discrimination or discriminatory harassment,
including sexual harassment, to either the
Office of Equity and Compliance
or the Office of the Dean of Student Life.
- Please be aware that members of the faculty have the responsibility to
report any instances of sexual harassment,
sexual violence and/or other forms of prohibited
discrimination to PSU's Title IX Coordinator,
the Office of Equity and Compliance or the Dean of Student Life and
cannot keep information confidential.
- If you would rather share information about sexual harassment or
sexual violence to a confidential employee who does not have
this reporting responsibility, you can contact a confidential advocate at
503-725-5672 or on-line,
or another confidential employee found on
the sexual misconduct resource webpage.
- For more information about your obligations and resources for sex/gender discrimination
and sexual violence (Title IX), please complete the required student module
Creating a Safe Campus
in your D2L.
If you are a student with a disability in need of academic accommodations,
you should register with Disability Services for Students and notify the
instructor immediately to arrange for support services.