Topics in evaluation, design, and development of programming languages. Topics include type systems, variables and scope, functions, parameter passing, data hiding and abstractions, recursion, memory allocation, grammars and parsing, compilers architecture, programming paradigms, and comparison of programming languages and environments.
Prerequisites: Completion of Fundamental Skills and COMP 053 with a "C-" or better.
When enrolling in this course, you should be relatively proficient in using some object‐oriented programming languages such as C++,
Java or Python. In addition to being a competent programmer, you should have a working understanding of the
following specific topics:
Website: Syllabus, Canvas LMS
Credits: 4 units
Course Catalog: http://catalog.pacific.edu/search/?P=COMP%20141
Instructor:
Sepehr Amir-Mohammadian
Email: [at] (samirmohammadian) ([dot] (pacific) (edu))
Lecture: TR 08:00AM - 09:45AM, Anderson Hall 107
Office hours: TR 1:00PM - 3:00PM, CTC 118
Students need to request alternate meeting times outside of scheduled office hours through email.
Teaching Assistant:
Email:
This course contributes to the following learning outcomes of the computer science program:
After taking this course, you should be able to:
University of the Pacific Core Competencies: This course contributes to attainment of the following University of the Pacific core competencies:
We will use the textbook Programming Languages: Principles and Practice (3rd Edition) by Kenneth C. Louden and Kenneth A. Lambert. Purchase of this textbook is mandatory and other texts, including earlier editions of this textbook, will not be supported. Other course material including the slides, assignments, supplementary material, etc. will be provided through Canvas LMS.
The course schedule is as follows:
Week | Day | Topic | Homework assignment deadlines | Project deadlines | Technical paper deadlines |
W1 | 1 | Intro | HW1: intro, syntax | ||
2 | Intro | ||||
W2 | 3 | Syntax | P1: Scanner | ||
4 | Syntax | ||||
W3 | 5 | Functional programming | |||
6 | Functional programming | ||||
W4 | 7 | Intro to Parser Project | HW2: Functional programming, semantics | ||
8 | Basic Semantics | P2: Parser | |||
W5 | 9 | Basic Semantics | Paper Proposal | ||
10 | Functional programming | ||||
W6 | 11 | Functional programming | |||
12 | Data types | HW3: Functional programming, data types |
|||
W7 | 13 | Data types | |||
14 | Logic programming | ||||
W8 | 15 | Midterm review | Paper Outline | ||
16 | Midterm Exam (W1-7) | HW4: Logic programming | |||
W9 | 17 | Spring break | |||
18 | Spring break | ||||
W10 | 19 | Logic programming | |||
20 | Control | ||||
W11 | 21 | Control | P3: Interpreter | ||
22 | Control | HW5: Control | Paper Draft | ||
W12 | 23 | OOP | |||
24 | OOP | ||||
W13 | 25 | ADTs | HW6: OOP, ADTs | ||
26 | ADTs | ||||
W14 | 27 | Presentations | Final Paper | ||
28 | Presentations | ||||
W15 | 29 | Presentations | |||
30 | Final exam review |
Grades for the course are assigned on the scale below:
A | A- | B+ | B | B- | C+ | C | C- | D+ | D | F |
---|---|---|---|---|---|---|---|---|---|---|
[93,100] | [90,93) | [87,90) | [83,87) | [80,83) | [77,80) | [73,77) | [70,73) | [67,70) | [60,67) | [0,60) |
Final grades will be assigned based on several performance factors. These factors and their quantitative contribution to the final grade are as follows:
Attendance: Class attendance and participation is necessary and expected. There will be numerous activities in class, and these activities cannot be made up outside of class. Participation requires that you are properly prepared for classroom discussions and activities, and have completed all reading assignments before the relevant class. Note that more than three unexcused absences will result in a 10% reduction of the final grade. The only acceptable excuses for missing a class, an assignment due date, or an exam are serious illness, family emergency or important professional, academic or athletic activities. Illness or family emergency may require documentation. Excuses for professional, academic or athletic activities must be approved by the instructor in advance. Students missing a class are responsible for making up the material discussed in that class on their own. Students are responsible for being aware of any announcements made during their absence.
Two exams will be conducted during the semester, a midterm and a final. The schedule will be announced in class and content and format will be discussed prior to the exams. Make up exams will only be scheduled in emergency situations.
Release and Submission: Homework assignments, course project descriptions, and technical paper requirements will be released on the course Canvas page with a clearly indicated due date. Solutions may be submitted electronically via Canvas, or in class on pencil-and-paper when appropriate. Submissions are accepted until 11:59PM on the due date.
Late policy: Deliverables will be accepted up
to three weekdays late, with a 10% per day penalty.
All assignments will be considered individual efforts
unless otherwise specified, and
will be treated as such under the Academic Honesty Policy.
The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:
Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of her or his permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Academic Honesty Policy is located in Tiger Lore and online.
Course-specific Honor Code Policy: Engineering is generally a cooperative endeavor and collaborative learning can be a valuable experience for all involved. However, proper assessment (i.e., grading) requires that work be done by individuals. To balance these two requirements, the following policy will apply:
Marginal cases will be resolved by oral examination of the student(s) involved. If they each understand the material in the assignment, it will be considered honest collaboration. If they do not, then it will be considered academic dishonesty.
In many cases, it may be possible to identify reusable source code from textbooks, web sites or other resources that can help you with assignments. You are permitted to use such references provided that:
You are responsible for understanding the theory behind all algorithms or source code used, regardless of their source.
If you are a student with a disability who requires accommodations, please contact the Director of the Office of Services for Students with Disabilities (SSD) for information on how to obtain an Accommodations Request Letter.
3-Step Accommodation Process:
To ensure timeliness of services, it is preferable that you obtain the accommodation letter(s) from the Office of SSD during the first week of class. After the instructor receives the accommodation letter, please schedule a meeting with the instructor during office hours or some other mutually convenient time to arrange the accommodation(s).
The Office of Services for Students with Disabilities is located in the McCaffrey Center, Rm. 137.
The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.