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:
|
Lab Instructor:
|
Course Web Site:
www.cs.kzoo.edu/cs150/
Course Teams
Sites for Meetings and One-on-one Help:
CS 150 Intro to 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 105 (Introduction to Computer Science), COMP 107 (Pictures and Sounds: Programming with Multimedia), COMP 108 (Introduction to Scientific Computing), 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 the typical lecture portion 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, mini-labs, and group activities.
Students will be divided into small lab groups, which will be periodically rearranged throughout the quarter. Instructors and teaching assistants will circulate among lab groups and be available to answer questions. Since clustering around laptop screens is not possible within a social distancing world, all group-work and one-on-one help will use software-based screen sharing. Active and consistent attendance, engagement, and collaboration is the best way 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. In particular, 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(s) are also violations of the College honor system. 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.