Spring 2016

CS 161: Introduction to Computer Science


Tony Mullen
410 Thompson Hall

Phone: 253.879.3562
Email: tmullen@pugetsound.edu

Office hours

My office hours for Fall 2016 are:

Mon, Tues, Wed, & Fri: 11:00-11:50

You can make an appointment to meet at other times also.

I try to respond to emails within 24 hours. You should not expect a response to emails received after 5:00 PM until the next day.

Attendance and lateness policy

Students are expected to attend class and labs. Multiple absences without a written excuse can result in a reduced grade for the class.

If you are not present when attendance is taken, but arrive to class later in the period, be sure to make sure I know that you were in attendance.

Academic integrity

Please ensure that any work you take credit for is your own. Homework should be assumed to be individual work unless it is explicitly given as group work.

When working on individual coding assignments (i.e. all assignments not explicitly labeled as pair or group assignments) you should never look at other people's code for your benefit or allow them to look at yours for their benefit. You may look at another person's code in order to help them identify a problem they are having.

There are sophisticated tools available to identify code plagiarism. Simply changing superficial characteristics of code (variable names, line breaks, spacing) is not enough to conceal when a program has been cribbed. Aside from this, however, someone who copies code cheats themselves out of the opportunity to learn the material. Sooner or later, this will catch up to them.

If your work involves contributing to code written by other people (as is often the case when working with open source software) always be aware of and respectful of the license governing the use of the code, and always be clear about where your own contributions begin and end.

Soliciting answers to homework exercises on websites such as Stack Overflow is a breach of academic integrity and will be dealt with as such. Stack Overflow is a valuable resource for getting help with legitimate programming problems, so please use it appropriately. In addition to cheating yourself out of the opportunity to learn the material, posting homework questions pollutes Stack Overflow and shows disrespect for the efforts of your instructors in creating the exercises. You may turn to online resources (such as Stack Overflow or other forums) for help in overcoming programming hurdles, such as you may encounter working on your group project in CS 240. If you are not sure whether your question is appropriate for a public forum, check with me first. Once you post content on Stack Overflow, you will probably not be able to remove it, so don't post anything you may come to regret.

Finally, word of general advice for life in the Internet age. Do not assume your online behavior is anonymous, even if you have not intentionally identified yourself.

Please review the Academic Integrity section of the UPS Student Handbook for more specifics on what sorts of behavior constitute violations of academic integrity.

Devices in class

Please avoid using devices during class in ways that distract yourself or others.

General policies

The university is a place for respectful exchange of information and ideas.

University-wide policies regarding student conduct and integrity can be found in the UPS Student Handbook.

If you have any questions or problems related to this class or anything else I may be able to help with, please don't hesitate to email me or drop by my office any time to talk.

Special Accommodations

Academic accommodations are available for students with disabilities who are registered with the Office of the Office of Accessibility and Accommodations. If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Peggy Perno, Director of the Office of Accessibility and Accommodations, 105 Howarth, 253.879.3395. She will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.

I also encourage all students having difficulty, whatever the reason, to consult privately with me at any time.

Emergency Procedures

Please review university emergency preparedness and response procedures posted at www.pugetsound.edu/emergency/. There is a link on the university home page. Familiarize yourself with hall exit doors and the designated gathering area for your class and laboratory buildings.

If building evacuation becomes necessary (e.g. earthquake), meet your instructor at the designated gathering area so she/he can account for your presence. Then wait for further instructions. Do not return to the building or classroom until advised by a university emergency response representative. If confronted by an act of violence, be prepared to make quick decisions to protect your safety. Flee the area by running away from the source of danger if you can safely do so. If this is not possible, shelter in place by securing classroom or lab doors and windows, closing blinds, and turning off room lights. Lie on the floor out of sight and away from windows and doors. Place cell phones or pagers on vibrate so that you can receive messages quietly. Wait for further instructions.

Course description

This course is an introduction to computer science and programming. The object-oriented programming language Java is used to illustrate concepts in computer science. The course emphasizes the use of the computer as a problem-solving tool and the development of good programming style. This course is intended for students with no prior experience with computer programming.

Goals of the class

By the end of this class students will

  • Become familiar with general programming concepts such as variables, conditional logic, control structures, basic data types, and algorithms.
  • Gain an understanding of object-oriented programming concepts such as classes, objects, methods, and inheritance.
  • Be able to solve problems using the Java programming language.
  • Become familiar with the BlueJ integrated development environment (IDE).
  • Begin to gain an appreciation for the benefits of object-oriented programming.

Textbook & required materials

The textbook for this class is Java Software Solutions, 8/E, by John Lewis and William Loftus.

We will be using the BlueJ integrated development environment (IDE) for Java programming. You will need this software installed on any computer you plan to use for this class.


Week Date Topic Reading Lab Homework
1 1/20 Introduction to CS & Java L&L 1.1, 1.4-1.6 Lab 1
Thurs 1/21
Hwk 1
Due Mon 1/25
2 1/25 Variables and assignment L&L Ch 2.1-2.6 Lab 2
Thurs 1/28
Hwk 2
Due Mon 2/1
3 2/1 Data Types, expressions, objects L&L Ch 3.1-3.6 Lab 3
Thurs 2/4
Hwk 3
Due Mon 2/8
4 2/8 Working with objects L&L Ch 4.1-4.5 Lab 4
Thurs 2/11
Hwk 4
Due Mon 2/15
5 2/15 Classes Reading review/catch up Midterm I Hwk 5
Due Mon 2/22
6 2/22 Conditionals L&L Ch 5.1-5.5 Lab 6 Hwk 6
Due Mon 2/29
7 2/29 While Loops L&L Ch 6.1-6.4 Lab 7 Hwk 7
Due Mon 3/7
8 3/7 ArrayLists Lab 8 Hwk 8
Due Wed 3/23
9 3/14 Spring
Reading review/catch up
10 3/21 More on loops and 2D lists Lab 9 Hwk 9
Due Wed 3/30
11 3/28 For Loops Lab 10 Hwk 10
Due Wed 4/6
12 4/4 Design & review L&L Ch 7.1-7.9 Midterm II Hwk 11
Due Wed 4/13
13 4/11 Arrays L&L Ch 8.1-8.6 Lab 12 Hwk 12
Due Wed 4/20
14 4/18 Recursion & Processing L&L Ch 12.1-12.3 Lab 13
Download and install Processing
Hwk 13
Due Wed 4/27
15 4/25 Searching and Sorting Lab 14 Hwk 14
Due Wed 5/4
16 5/2 Review
Finals Mon 5/9/16 Final Exam 8:00AM - 10:00AM


Grades in the course are based on the following components:

  • 15% Labs
  • 25% Programming assignments
  • 35% Midterm exams (2)
  • 20% Final exam
  • 5% Attendance & participation

More specifically, the following will be expected of you:

Readings: Each class will have an accompanying reading assignment taken from the textbook. It is expected that you complete the reading before the corresponding class period. The readings for each class are posted on the calendar above.

Lab Work: Lab is a way for you to master the topics covered in class. Lab attendance is mandatory.

Programming Homework Assignments: Homework assignments are more substantial projects than lab assignments. Homework assignments are individual assignments. You will typically have 1-2 weeks for each assignment. There are no extensions given. Late homework assignments will be penalized by 3^n\% for n ≤ 4 where n is the number of days the assignment is submitted late.

Tests: There will be two in-class midterm exams and a final exam at the end of the semester. The final exam is scheduled for May 9th From 8:00AM to 10:00AM. Please do not buy your plane tickets until after our scheduled final exam. Details will be given closer to the exam dates.

Online resources

The class Moodle page will be where you can turn in assignments and find some class materials.

The Java 8 Javadoc pages are where you'll find the full documentation for the Java API. You should familiarize yourself with this resource.

Lecture slides

Lecture slides and/or other resources for the course will be posted here as they become available.

Portions of this syllabus and course are based on materials developed by David Chiu, Joel Ross, Brad Richards, and America Chambers.