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 |
Lab Instructor:
Nicholas Polanco |
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 StudyWeeks 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.
- Class and Lab: Classes and labs will take place in Olds/Upton 312. There are several college computers available in this classroom, although many students choose to bring their own laptop.
- Java Development Environment:
In class we will use
BlueJ (www.bluej.org).
We recommend using the BlueJ development environment, which was developed to support students learning the Java programming language. It combines editing features with the ability to run the programs you write. It is free open source software that runs on Macs, Windows, and Linux. When you download it, it will install BlueJ and Java together. Most, if not all, of the college-owned computers on campus have the appropriate software. - Online Information and Assignment Submission:
In addition to the physical, on-campus space in OU 312, this course has an online presence.- The course web site is https://www.cs.kzoo.edu/cs150/. The course syllabus and detailed schedule can be found there.
- Faculty are available for in-person and online help during office hours, and often at other times as well. Please make use of this — we are here to help! Teaching assistants are also available Sunday - Thursday evenings, in-person (OU 312) or online through the CS Collaboration Center team on Microsoft Teams. (page listing people and hours)
- We will use the Kit web site for assignment submissions and grades.
- The course Moodle site contains links to all of the above.
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 PassPass all "Core" Programming Assignments 45% Pass all Quizzes 10% Factors Leading to
Grades A - CGridPlotter 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).