User Tools

Site Tools

No ACL setup yet! Denying access to everyone.

CS 18000 Fall 2017 Home Page

Problem Solving and Object-Oriented Programming

CS18000 offers an introduction to Computer Science, using the Java programming language.

Topics include primitive types and strings, selection, repetition, arrays, graphical user interfaces, methods and classes, interfaces, inheritance, exceptions, basic concurrent programming and synchronization, polymorphism, dynamic data structures, recursion and recursive data structures, and an introduction to generics.

Course Personnel

Instructor Day and Time Location
CS18000-GOLD Prof. Buster Dunsmore MWF 1:30 pm WALC 1055
CS18000-BLACK Prof. Jeff Turkstra MWF 2:30 pm PHYS 112

Course Coordinators

Graduate Teaching Assistants


For Exam timings and location please refer to the Exams page .

IMPORTANT – Exams can only be “made up” in extraordinary circumstances if arrangements are made with one of the CS18000 Course Coordinators. Such arrangements should be made at least one week before the exam. Please refer to the contact information page for more details.

EVEN MORE IMPORTANT – The date and time of the Final Exam in CS 18000 will be decided by the Registrar around the middle of the semester. It could be any time during Final Exams period – Monday, December 11 - Saturday, December 16. None of us knows when it will be… including you! Under no circumstances will a student be allowed to take the CS 18000 Final Exam early. Do not make airline reservations before December 16. Do not allow your sister to schedule her wedding before December 16. Do not let your mother plan the family reunion before December 16. Each of you must take the Final Exam at the day and time we receive for this. We are very sorry for any inconvenience this may cause.


In every CS 18000 class there will be at least one quiz. You will need an iClicker. Go to the “Register your iClicker” link on Blackboard. Enter your iclicker ID. Then, when you turn on the iClicker in class, the system will recognize you and credit your quiz answer to you.

If you forget your iClicker or the batteries have run down, you may turn your quiz in using a full-size (8.5 x 11) sheet of paper. On that paper PRINT your name legibly, your myPurdue user ID (NOT your iClicker ID), today's date, and your quiz choice (A, B, C, D, or E).


There is NO REQUIRED textbook for this class. Any introductory book on Java may be used. Suggested resources:


Think Java: How to Think Like a Computer Scientist, Allen B. Downey and Chris Mayfield, Version 6.1.0, 2016 <>

Oracle Java Website <>

Introduction to Programming Using Java, David J. Eck, Version 7.0, August 2014 <>

Not Free, But Worth Buying

Start Concurrent: An Introduction to Problem Solving in Java with a Focus on Concurrency, Wittman, Mathur, and Korb. NOTE: Any version of this book is fine. You do not need the latest version.

A Comprehensive Introduction to Object Oriented Programming with Java, Thomas Wu. NOTE: Any version of this book is fine. You do not need the latest version.


  • 40% Programming assignments
    • Project 1: 6%
    • Project 2: 7%
    • Project 3: 11%
    • Project 4: 9%
    • Project 5: 7%
  • Homeworks 5%
  • 5% Quizzes (class & lab quizzes)
    • Each class Quiz is worth 2 points
    • Each lab Quiz is worth 3 points
  • 10% Labs
    • Each lab is worth 50 points
      • 0 points if the student does not attend
  • 40% Exams
    • Exam 1: 13%
    • Exam 2: 13%
    • Exam 3: 14%

If you have a question about the grading of a lab or project, talk to one of your Lab Instructors about it.

Android Smartphone

All enrolled students are given access to an Android smartphone (Motorola Moto g) for the semester. The smartphone can be checked out from the service window near LWSN 2121.

We will inform you about when you can pick it up.


We are using Piazza for questions about classes, homework, labs, projects, exams, and other class-related discussions. Sign up by visiting Piazza. You can post public questions visible to the entire class or private questions visible only to the instructors. You may post questions including small snippets of code (using the <code> tag), but do not post extensive pieces of code publicly.


(1) You should direct questions concerning a lab or project to a staff member, rather than a classmate. But, when you come to us, be sure that you have specific questions and can show evidence that you have spent some time on your own attempting to solve your problem.

(2) This course is worth four credit hours, including three lectures and one two-hour weekly lab. According to university guidelines, you should expect to spend, on average, an additional eight hours per week working on readings, homework assignments, and projects. Some weeks the load is less, other weeks more. Please plan your schedule carefully to avoid getting behind or missing an important deadline.

(3) ATTENDANCE IN CS18000 IS MANDATORY! You should plan on attending EVERY class and EVERY lab. Past experience has shown us that students who attend class and lab regularly do better on labs, assignments, and exams – even those who think they already know the material or who think they can learn it on their own. Missed labs CANNOT be made up, unless the absence is excused. Lab absences MAY be excused for reasons of serious illness, family emergency, or official university commitments, but only if appropriate documentation is provided to one of your Lab Instructors. For planned absences (band trips, other course field trips, etc.), you must inform your instructor ahead of time, or the absence will not be excused.

(4) You should read the material in the textbook according to the class syllabus. In most cases, you will read about a concept in the book, then we will cover it in class, then you will use it in lab, then it will be used on a project, and finally it will be tested on an exam.

(5) Computers may become heavily loaded as a project deadline nears. Waiting until the last minute to work on your project is dangerous! Our CS18000 policy is NOT to extend deadlines unless most available workstations are unavailable for an extended period (like 10-12 hours) near the end of a project.

(6) Unless indicated otherwise, NO LATE projects or lab assignments are accepted. There are NO EXCEPTIONS to this rule except under compelling circumstances. Refer to the contacts page for more information. Failure to turn in a project results in a loss of all the points allocated for the project. The same holds true for a lab assignment.

(7) In most cases no credit is given for programs that do not compile (that is, execution is suppressed due to compilation errors). Programs which execute but are not correct or complete are considered for partial credit. To receive full credit, your program must produce correct results, be well-designed, be efficient, and adhere to good programming style. Visit this link to learn about our Java Programming Standards.

(8) Lab Session Policy

The labs are mandatory. Students must attend their corresponding registered lab session. There are NO EXCEPTIONS to this rule except under compelling circumstances. Refer to the contacts page for more information.

(9) WE ALWAYS WELCOME YOUR CONSTRUCTIVE COMMENTS. Please do not hesitate to bring any shortcomings to our attention.

Academic Integrity Policy

Purdue University values intellectual integrity and the highest standards of academic conduct. To know and understand what is academic integrity, what is expected from you, and what you should NOT do, read carefully this document: Academic Integrity.

All students in CS18000 must read and electronically “sign” the Purdue University Department of Computer Science Academic Integrity Policy. This document is available at the website. You need your Purdue Career Account login and password to access this page. There, after reading the policy, you indicate that you have read and understand both the policy and its consequences. There is also information about some implementation details.


  • allowing any other person, in the class or otherwise, to use your computer account, or setting permissions on files and directories in your account so that someone can easily copy programs and documents, is the same as giving them the information directly, and is a violation of the Academic Integrity policy.

CS18000 Academic Integrity Policy

Except for team projects, all CS18000 course work must be done individually.

We encourage discussion of any CS18000 topic including ideas about how to do the projects. But, under no circumstances is exchange of code via written or electronic means permitted between CS18000 students. It is considered dishonest either to read someone else's solution or to provide a classmate with a copy of your work. Do not make the mistake of thinking that superficial changes in a program (such as altering comments, changing variable names, or interchanging statements) can be used to avoid detection. If you cannot do the work yourself, it is extremely unlikely that you can succeed in disguising someone else's work. We are adamant that cheating in any form is not tolerated. Even the most trivial assignment is better not done than if you cheat to complete it.


In CS18000, a first instance of academic dishonesty results in a zero for that assignment plus a letter grade deduction at the end of the semester. A second instance of academic dishonesty results in a grade of F.

In accordance with the Purdue University Department of Computer Science Academic Integrity Policy, all instances of academic dishonesty on an exam, project, or lab assignment are reported to the Dean of Students Office.

Emergency Preparedness

To report an emergency, call 911. To obtain updates regarding an ongoing emergency, sign up for Purdue Alert text messages, view

There are nearly 300 Emergency Telephones outdoors across campus and in parking garages that connect directly to the PUPD. If you feel threatened or need help, push the button and you will be connected immediately.

If we hear a fire alarm during class we will immediately suspend class, evacuate the building, and proceed outdoors. Do not use the elevator.

If we are notified during class of a Shelter in Place requirement for a tornado warning, we will suspend class and shelter in [the basement].

If we are notified during class of a Shelter in Place requirement for a hazardous materials release, or a civil disturbance, including a shooting or other use of weapons, we will suspend class and shelter in the classroom, shutting the door and turning off the lights.

Changes for Emergencies

In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances beyond the instructor’s control. If an emergency occurs, you can consult the Purdue web page (

Copyright © 2016, Purdue University, all rights reserved. Purdue University is an equal access/equal opportunity university. If you have trouble accessing this page because of a disability, please contact the College of Science Webmaster. Please review the Emergency Preparedness website for additional information.

cs18000/fall17/start.txt · Last modified: 2017/09/20 18:24 by sun624