COMP 141: Programming Languages (Fall 2025)

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

Course Catalog: https://catalog.pacific.edu/search/?search=comp+141&caturl=%2F

Administration

Instructor: Sepehr Amir-Mohammadian
Email: email address
Class time/location: MWF 11:00 – 12:15, Chambers 114

Office hours: MW 14:00 – 15:15, Chambers 122

Teaching Assistant: Ramis Hasanli
Email: rhasanli@pacific.edu

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 them (~50%)
  • Different paradigms of programming (beyond object-oriented) (~50%)

You will have many different opportunities to gain this knowledge through:

  • Labs
  • Course projects
  • Getting exposed to new languages
  • Class discussions, quizzes, and reading/watching assignments

After taking this course, you should be able to:

  • Use multiple programming languages to write simple programs.
  • Identify common features across languages and key differences among the four major paradigms.
  • Recognize familiar features when learning a new language.
  • Explain how PL features are implemented by compilers/interpreters; weigh efficiency/readability in design choices.
  • Assess language appropriateness for a specific project.

University of the Pacific Core Competencies: This course reflects the following university‑wide core competencies:

  • Critical Thinking
  • Information Literacy

Outcomes for COMP program: Assessed outcomes per 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 6: Apply computer science theory and software development fundamentals to produce computing-based solutions.

Course Material

We will use the following textbooks and additional resources throughout the semester:

Slides, assignments, and supplementary material will be posted on Canvas.

Major topics include:

  • Programming language syntax
  • Programming language semantics
  • Paradigms: functional and logic programming (beyond OO)
  • Data types
  • Procedures and environments

Grading and Attendance Policy

Grades are assigned on the scale below:

AA-B+BB- C+CC-D+DF
[93,100] [90,93) [87,90) [83,87) [80,83) [77,80) [73,77) [70,73) [67,70) [60,67) [0,60)

Final grades are based on:

  • Quizzes: 10%
  • Labs: 30%
  • Course projects: 35%
  • Class activities: 10%
  • Programming Language Day assignment: 5%
  • Midterm exam: 5%
  • Final exam: 5%
  • Extra point assignments: 4%

Attendance:

  • Given the active learning format of this course, attendance and active participation are mandatory. Each class session includes a Class Activity assignment worth 10% of the course grade. Absence from a session will result in a zero for that day's activity, with no make-up opportunities.
  • Students are expected to arrive prepared, having completed all required work (including the assigned reading and quiz for that session) before class begins. Failure to do so may impact both participation and overall performance.
  • You will only be allowed three excused or unexcused class misses during the semester. 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 studied in that class on their own. Students are responsible for being aware of any announcements made during their absence.

Exams

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.

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 these assignments before each lecture session in order to be prepared for classroom activities. 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. They are due at the beginning of each class session. Quizzes are considered as individual efforts.
  • Labs: Labs will be released on the course Canvas page at latest at the beginning of each lecture session. 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 group-based. Group sizes cannot exceed 2 students, defined at the beginning of the semester. The goal is to accomplish all labs and submit in Canvas until the end of that day.
  • Class Activities: These activities involve participation during in-class collaborative exercises. The aim is to actively engage in discussions, problem-solving, or any assigned tasks alongside peers during each session. The grade for this category will be subjective, based on the level of engagement and contribution demonstrated by each student during the class. Class activities serve as a more meaningful measure of attendance. Class activities are considered to be group-based. These groups will be created in ad-hoc manner each session, and their size may vary from session to session.
  • Course Projects: These assignments will be released on the course Canvas page with a clearly indicated due date. Timely submissions are accepted until 11:59PM on the due date. Projects are group-based. Group sizes cannot exceed 2 students, defined at the beginning of the semester.
  • Programming Languages Day Assignment: This assignment involves teaching a new programming language during a full class session. Each group (3-4 students, formed during the first week of the semester) will prepare and deliver content covering the language's features, use cases, and a live demonstration, ensuring all members actively contribute to both preparation and delivery. Detailed requirements and grading criteria will be provided in advance. This assignment is considered group-based.
Assignment TypeScore (%)Group SizesDue Times
Reading/Watching0%IndividualBefore each session (no submission)
Quizzes10%IndividualStart of session
Labs30%Up to 211:59 PM same day (unless extended)
Class Activities10%Ad‑hocDuring session
Course Projects35%Up to 211:59 PM on due date
PL Day5%3–4Presentation day
Midterm5%IndividualScheduled date
Final5%IndividualScheduled date
Extra Points4%Individual11:59 PM on due date

Solutions: Quiz/sample‑exam/midterm solutions may be submitted via Canvas or on paper when appropriate.

Late policy: Course project deliverables accepted up to 3 days late at −5% per day penalty.
All work is individual unless otherwise specified, and subject to the Academic Honesty Policy.

Academic Honesty

The Honor Code calls upon each student to exhibit maturity, responsibility, and integrity. Students are expected to:

  • Act honestly in all matters
  • Encourage academic integrity
  • Discourage cheating or dishonesty
  • Inform the instructor/administration with good‑faith evidence of violations

Violations are referred to the Office of Student Conduct and Community Standards and may result in penalties up to failure/suspension/dismissal. See Tiger Lore and online policy.

Course‑specific policy:

  • Collaboration on planning/strategy/debugging is encouraged.
  • Do not submit someone else’s work.

Marginal cases may be resolved via oral examination to assess individual understanding.

Accommodations for Students with Disabilities

If you require accommodations, visit pacific.edu/disabilities to contact SSD and request services.

  1. New students: apply via New Students Apply Here.
  2. Returning students: request letters each semester via Returning Students Login Here.

SSD: McCaffrey Center (2nd Floor) • 209‑946‑3221 • ssd@pacific.eduwebsite

Nondiscrimination Policy

The University of the Pacific does not discriminate in the administration of its programs/activities based on 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