COMP 150 Object-Oriented Programming

Spring 2025 Department of Computer Science Kalamazoo College

Class Time: MWF 2:45 PM - 4:00 PM Lab Time: T 2:10 PM - 4:00 PM Room OU312 Instructors: S. Vargas-Pérez and N. Polanco


Syllabus


This course provides an introduction to object-oriented programming using the Java language. We will focus on the basic features of the Java language and the fundamentals of the programming process, including design, implementation, and testing. Hands-on programming is a central component of the course, embodied in weekly labs, in-class mini-labs, and frequent programming assignments.

Instructor:
Sandino Vargas-Pérez
Olds/Upton 309, 337-7564
Dr. Vargas-Pérez's Schedule (including office hours)
Dr. Vargas-Pérez (preferred) / Prof. Vargas-Pérez / he / him / his
Lab Instructor:
Nicholas Polanco
Olds/Upton 208A

Course Web Site:   www.cs.kzoo.edu/cs150/
Course Teams Sites for Meetings and One-on-one Help:   CS 150 Object-Oriented Programming,   CS Collaboration Center
CS Collaboration Center Staff and Hours: http://www.cs.kzoo.edu/cs150/people.html

Required Text: Downey & Mayfield, Think Java 2e (an open access book available in hard-cover, PDF, or interactive web format)
Required Videos:   Links to required videos are on the class Detailed Schedule page.
Required Software:   BlueJ (www.bluej.org — free) — development environment for learning Java.

You can find other references in the class bibliography.

Prerequisite: any one of COMP 102 (Prog. Basics for JavaScript/Web Development), COMP 103 (Python Prog. Basics in a Multimedia Context), COMP 104 (Python Prog. Basics in a Scientific Computing Context), or previous programming experience.


Topics to be covered (and approximate course schedule):

(See the course schedule page for a more detailed schedule that will be updated as the term progresses. )

Week 1: Simple Java Statements; Introduction to Objects, Classes and Methods
Week 2: Selection Statements; Conditions; Loops
Week 3: ArrayLists; ForEach Loops; Strings
Weeks 4 - 5: Implementing Classes; Refactoring; Regression Testing
Weeks 6 - 8: Inheritance; Dynamic Binding; Scope;
Marine Biology Simulation (MBS) Case Study
Weeks 9 - 10: Abstract Classes; Linear & Binary Search;
Final Projects; Course Review

Format and Resources:

This course has both a "lecture" component (Mon/Wed/Fri) and a "lab" component (Tues). These components are tightly integrated and, in fact, it is misleading to call the Mon/Wed/Fri sessions "lectures." Much of what would typically be the lecture portion of this course has been replaced with short videos that introduce new concepts. You should watch these before class. This leaves class time for more active learning activities, such as discussion, hands-on exercises, and group activities. Active and consistent attendance, engagement, and collaboration are the best ways you can benefit your learning.

The computer science department uses free and open source software whenever possible, choosing applications that work across Linux, Mac, and Windows platforms.


Participation and Staying On-Track:

Learning a language, even a programming language, requires lots of practice, adding a little more "vocabulary" every day and continuing to use and become familiar with the constructs you learned yesterday and last week. It is very important in this class to practice and make progress every day. There is a direct correlation between keeping up and how much you learn and can apply in later courses or in a job.

Assignments:

All assignments, as well as links to readings and videos introducing new material, will be made available on the Detailed Schedule page of the course web site (http://www.cs.kzoo.edu/cs150/). Students are responsible for checking this resource daily.

Readings and Videos:

This course consists of tightly integrated lecture and lab components; for every new concept, there is an introductory explanation and an immediate hands-on exercise. Most of the "lecture" component will be provided by reading assignments and videos introducing new concepts.

Programming:

Programming assignments take several forms:

  • Mini-labs are highly structured assignments that give you the chance to immediately put new skills to use.
  • Labs and programming projects are longer assignments that give you the opportunity to integrate several skills into a single project. Labs typically provide more detailed guidance than programming projects and, although longer than mini-labs, typically take less time than programming projects. The programming projects will become more complex as the quarter progresses and your skills grow, building up to a final programming project in the last two weeks of the quarter.

Quizzes and Tests:

There will be several quizzes or tests to assess your understanding of basic concepts. These will be announced in advance.

Assignment due dates have two important functions: to help you plan your time and keep you on track to successfully complete the course, and to make grading more manageable. Late assignments may accrue late penalties or might not be accepted at all, unless you clear it with your instructor in advance.

Grades:

Grades will be based on the following activities:
 
    Required
    To Pass
    Pass all "Core" Programming Assignments    45%
    Pass all Quizzes    10%
    Factors Leading to
    Grades A - C
    GridPlotter Project    5%
    Percolation Project    10%
    Final Project    20%

Collaboration and the Honor System:

This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility.

Respect in the Community: Creating a Culture of Support

K College is committed to fostering a supportive campus community that values respect, dignity, and safety free from fears of retaliation or reprisal. We all have a role in creating a supportive and respectful culture. To create an inclusive and supportive learning environment in which everyone can participate fully, please read and follow these Community Guidelines adapted from the Center for Research on Learning and Teaching (CRLT) at the University of Michigan and the guidelines for creating a culture of respect and support outlined in Respect in the Community: Creating a Culture of Support.

Academic Integrity

Academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor code. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.

Laboratory Assignments and Programming projects: Some assignments may allow you to work in pairs. Whether working individually or in a team, you may discuss lab assignments and programming projects with classmates and give and receive help. You may not, however, digitally share code or code fragments, unless you are working as a team on a project where teamwork has been explicitly allowed. You may also, of course, receive help from your instructor and from the CS teaching assistants. during labs, mini-labs, and Collaboration Center hours.

You should document authorship, group-work, and "outside" help (from the TAs, your instructor, or other groups within the class) in your program documentation using the following clauses:

        Authors(s):
        Working with or alongside lab group members:
        With Assistance From:
    

Quizzes and Tests should be entirely your own work.

Penalties for violating the Honor System in this course may include receiving no credit for an assignment, a lowered course grade, or failure of the course. Depending on the severity of the incident, a report may be sent to the Dean's Office, which may result in additional consequences, including suspension from the College. Any subsequent violation will result in the immediate failure of this course.


Title IX Support and Responsibilities:

Kalamazoo College strives to provide an environment free of bias, discrimination, and harassment.

K College’s commitment to creating an environment free from unlawful harassment and discrimination are set out in the College’s Nondiscrimination Policy and Policy Against Harassment. If you experience sexual harassment, sexual misconduct, or discrimination at any point during the quarter — inside or outside of class — you are encouraged to contact the Office of Gender Equity and Access, which can answer questions and provide supportive measures even if you do not file a report. Confidential help is also available. Students are encouraged to learn more about confidential help at Sexual Violence and Prevention Advocacy.

Faculty, staff, and teaching assistants are not confidential resources and are required to report incidents to the Office of Gender Equity and Access.

Accommodations:

Any student with a documented learning difference who needs an accommodation should let me know as soon as possible. If you want to discuss your overall needs for accommodation at the College, please direct questions to the Associate Dean of Students Office, (269) 337-7209. For more information, please see https://www.kzoo.edu/student-life/students-with-disabilities/

Religious Accommodations:

Please contact your professor well in advance of the need for accommodations around attendance or deadlines due to religious observance. For more information on religious accommodations and observance on campus, please see the Office of Religious and Spiritual Life or contact Chaplain Liz Candido (ecandido@kzoo.edu or at 269.337.7362).