COMP 141: Programming Languages
Course Description
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 at least the following object‐oriented programming languages: C++
and Java. It is recommended to use C++, Java or Python for course
projects. In addition to being a competent programmer, you should have a
working understanding of the following specific topics:
- Pointers and Dynamic Memory Allocation
- Inheritance, Polymorphism, and Templates
- Fundamental Data Structures including vectors, lists, stacks, queues,
and trees
Website: Syllabus, Canvas LMS
Credits: 4 units
Semester: Summer I 2025
Course Catalog: https://catalog.pacific.edu/search/?search=comp+141&caturl=%2F
Instructor:
Sepehr Amir-Mohammadian
Email:
Class time/location: The class is held in asynchronous online mode.
Learning Objectives
The vision for this course is: What do I, as a computer scientist, need
to understand about the fundamental concepts in programming languages and
what are the different features by which I can realize whether a given
programming language is appropriate in a given project?
There are two main themes in this course:
- The internal structure of programming languages, and how we can deploy (~60%)
them
- Different paradigms of programming (beyond object-oriented) (~40%)
You will have many different opportunities to gain this knowledge through:
- Group-based Labs
- Discussions, quizzes, exams, and reading/watching assignments
After taking this course, you should be able to:
- Use multiple programming languages to write simple programs.
- Identify the features that programming languages have in common and
the ways that they differ, particularly between the four major programming
paradigms.
- Recognize features from known languages when learning a new
programming language.
- Describe how the features provided by programming languages are
implemented by compilers and interpreters. Consider efficiency and
readability in the design choices made while writing code.
- Assess appropriateness of a language for a specific project.
University of the Pacific Core Competencies: This course reflects
the following university-wide core
competenceies in the undergraduate program:
- Critical Thinking
- Information Literacy
- Oral Communication
- Written Communication
Outcomes for COMP program: The assessment plan for this course
comprises the following outcomes identified
by ABET:
- Outcome 1: "Analyze a complex computing problem and to apply
principles of computing and other relevant disciplines to identify
solutions."
- Outcome 2: "Design, implement, and evaluate a computing-based solution
to meet a given set of computing requirements in the context of the
program’s discipline."
- Outcome 3: "Communicate effectively in a variety of professional
contexts."
- Outcome 6: "Apply computer science theory and software development
fundamentals to produce computing-based solutions."
Collection of Work for Assessment: Student work may be retained to
assess how course learning objectives are being met and for accreditation
purposes.
Course Material
We will use the following textbooks along with additional resources that
are referred through the semester.
- Programming Languages: Principles and Practice (3rd Edition)
by Kenneth C. Louden and Kenneth A. Lambert.
- Learn You a Haskell for Great Good! by Miran Lipovaca,
available freely available online, licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
License.
The slides, assignments,
supplementary material, etc. will be provided through Canvas LMS.
Major topics that will be covered in
the course are:
- Programming language syntax
- Programming language sematics
- Different paradigms of programming, focusing on functional programming
- Data types
- Procedures and environments
Grading and Attendance Policy
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:
- Reading assignments: 0%
- Quizzes: 30%
- Labs: 50%
- Exams: 20%
Attendance:
This class is held online asynchronously. So, there are no attendance requirements.
Assignment Guidelines
Release and Submission
- Reading/Watching Assignments: These assignments will be released on
the course Canvas page at most one or two days before each lecture
session. Students must study/watch the referred material before
each class session. There are not any submissions for reading/watching
assignments, however it is highly recommended to follow the reading assignments
before watching the lecture videos. This would help you better prepare for quizzes and labs.
Reading/Watching assignments are considered as individual efforts.
- Quizzes: Each session comes with a brief quizz (5-10 minutes) that reflects on the
material covered in the reading/watching assignment associated with that class session.
Quizzes are published and automatically graded in Canvas. There will be no extensions to quiz due dates.
These assignments are considered as individual efforts.
- Labs: Labs will be released on the course Canvas page at the beginning of each lecture session.
The goal is to accomplish all class activities and submit in Canvas until the end of that day.
Submissions after 11:59PM of the same day will not be accepted. The due date for labs
might be postponed, if considered necessary during the semester. Lab assignments are considered to be individual.
- Exams: There will be two exams during the semester. Midterm and Final exams. These exams will be released on the course Canvas page with a specific due date/time.
Exams are considered to be individual.
Late submission policy: Delliverables for quizzes and labs will NOT be accepted after the due date.
All assignments will be considered individual efforts unless
otherwise specified, and
will be treated as such under the Academic
Honesty Policy.
Academic
Honesty
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:
- Act honestly in all matters
- Actively encourage academic integrity
- Discourage any form of cheating or dishonesty by others
- Inform the instructor and appropriate university administrator if she
or he has a reasonable and good faith belief and substantial evidence that
a violation of the Academic Honesty Policy has occurred.
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:
- Collaborative work on course assignments is encouraged. This includes
working together on planning solution strategies and helping each other to
debug programs.
- Collaboration must stop short of someone else writing your
assignment. You may not directly copy the work of another student.
You also may not copy the work of another student, and then modify it so
that it does not look the same as the original author's work. It is your
responsibility to ensure that the work you submit is an honest
representation of your own understanding of the material.
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:
- The amount of code reused does not exceed 25% of the total assignment
length, and
- In the source code comments, you clearly identify any code that
you did not write, state where it came from, and to what extent
you modified it.
You are responsible for understanding the theory behind all algorithms or
source code used, regardless of their source.
Accommodations for Students
with Disabilities
If you are a student with a disability who requires accommodations, please
visit pacific.edu/disabilities
to contact the Office of Services for Students with Disabilities (SSD) for
information on how to request accommodations while at Pacific.
- Students who have not previously registered for accommodations can
request services by visiting pacific.edu/disabilities
and selecting New
Students Apply Here. Once registered, students will be asked to
provide documentation of their disability, and meet with the accommodation
specialists to determine reasonable accommodations.
- Students who have previously been approved for services with SSD can
request accommodation(s) letters each semester by selecting the Returning Students
Login Here link located on pacific.edu/disabilities
The Office of Services for Students with Disabilities is located in the
McCaffrey Center, Second Floor. Phone: 209-946-3221. Email: ssd@pacific.edu. Online: pacific.edu/disabilities
Nondiscrimination
Policy
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.
The instructor reserves the right to change these policies and
guidelines at any
time, and students agree to abide by the most recent version of this
syllabus.
Back to top