Home CPSC 220

CPSC 220: Computer Programming and Problem Solving

Meeting Times:Monday and Wednesday, 1:00 - 2:50
Instructor:Ian Finlayson
Office:Farmer B47
Office Phone:540-654-1714
Office Hours:Monday and Wednesday 10:00 - 12:00, Tuesday and Thursday 11:00 - 12:00.
Free Textbook:Introduction to Programming Using Java, Seventh Edition

Course Description

Continued coverage of disciplined problem-solving and algorithmic development including emphasis on procedural and data abstraction. Topics include elementary data structures such as arrays, files, and classes. The notions of data modeling and the linking of data type definitions with their associated operations is introduced. Study of program design, coding, debugging, testing, and documentation in a higher level language that supports the object-oriented paradigm. Intended for students who have had previous programming experience.

Course Goals & Objectives


Grading Policy

Your grade will be determined as follows: The grading scale used for this course is as follows:

There is a 10% per day late penalty on assignments that are not turned in on time. Final grades will not be rounded up, and no extra credit opportunities will be given on an individual basis.

The University provides the opportunity to provide grading feedback midway through the semester. This will take into account your score on the mid-term exam and the programming projects submitted up to that point. Any student receiving less than a 65% on either of these will receive a "U" for their mid-semester grade. If this happens to you, please don't hesitate to talk with me about how we can improve your performance in this class.


Student Conduct


Honor Policy

Students are expected to conduct themselves in a manner consistent with the letter and spirit of the Honor Constitution.

For assignments, you may discuss the task with other students, but all of your work must be your own. You must yourself type and understand every line of code in each assignment you submit. It is an honor code violation to copy code directly from another student either by copy and paste or by transcription, or to copy code from any online source. You must include the UMW honor pledge in the comments for each assignment you submit.

For lab exercises, you may collaborate more with those next to you. You still must type and submit your own work, but looking at each others programs and helping one another is OK. Lab exercises are to ensure that you understand the ideas in the lab. Cheating would only hurt yourself.

For exams, you can not talk to anyone during the exam, or use any kind of notes. You must include a signed UMW honor pledge at the top of your exams.

If you have any questions or need clarification, please don't hesitate to contact me!


Disability Statement

The Office of Disability Services has been designated by the University as the primary office to guide, counsel, and assist students with disabilities. If you already receive services through the Office of Disability Services and require accommodations for this class, make an appointment with me as soon as possible to discuss your approved accommodations needs. Please bring your accommodation letter with you to the appointment. I will hold any information you share with me in the strictest confidence unless you give me permission to do otherwise. If you have not contacted the Office of Disability Services and need accommodations, I will be happy to refer you. The office will require appropriate documentation of disability. Their phone number is 540-654-1266. The office is located in Seacobeck Hall.

Tentative Schedule

Date TopicBook Sections Lab Assignment Due
August 24 Course Introduction Chapter 1 Using Netbeans  
August 26 Java Basics Chapter 2 Temperature Conversion  
August 31 Making Decisions 3.5 - 3.6 Grade Calculator  
September 2 Looping 3.1 - 3.4 N Bottles of Beer  
September 7 Functions 4.1 - 4.4 Circle Calculation  
September 9 Programming with Functions   No Lab Triangle Assignment
September 14 Arrays 3.8 Array Reversal  
September 16 Multi-Dimensional Arrays 7.5 No Lab  
September 21 Maze Algorithms   No Lab Pig Assignment
September 23 Searching and Sorting 7.4 String Sorting  
September 28 Exceptions 3.7, 4.3.7 Exceptions  
September 30 Files & IO 11.1 - 11.3 Total Calculation  
October 5 Review & Practice   No Lab Mancala Assignment
October 7 Midterm Exam
October 12 Fall Break
October 14 Classes and Objects 5.1 - 5.2 Time Class  
October 19 Programming with Objects   Debugging Vigenère Cipher
October 21 Programming with Objects Continued  No Lab  
October 26 Simulation   Population Simulation  
October 28 Inheritance & Interfaces   No Lab  
November 2 GUI Programming   GUI Exercise  
November 4 GUI Programming Continued   No Lab  
November 9 Using Graphics   Graphics Exercise Chaco Canyon
November 11 Using Graphics Continued   Collision Detection  
November 16 Recursion 9.1 Palindrome Checker  
November 18 Recursion Continued   No Lab GUI Program
November 23 Merge Sort   Sort Comparison  
November 25 Thanksgiving Break
November 30 Programming Contest      
December 2 Review & Practice     Arcade Game (Due 12/4)
December 7 3:30 - 6:00, Final Exam

Copyright © 2022 Ian Finlayson | Licensed under a Attribution-NonCommercial 4.0 International License.