CS 110, Programming Fundamentals I
Summer 2013 (Arranged course)

The focus of this course is Problem Solving using the Java language. Basic control structures, primitive types, classes, objects and methods, and algorithm development will be taught. Machine architecture and operating system concepts will be briefly discussed. Homework Assignments and their solutions, lab handouts, and exam prep materials, will be posted to this web page. The class schedule may be adjusted as needed, as we progress through the quarter. If that happens, an announcement will be made in class.

Meeting Times

  • Lecture: NA - Arranged course; meetings throughout summer quarter
  • Laboratory: NA - Arranged course; meetings throughout summer quarter

Instructor

  • Dr. Filip Jagodzinski
  • Office: Hebeler Hall 214E
  • Email: jagodzinski [at] cwu.edu
  • Telephone: 963-1435

Instructor Office Hours

  • By appointment
  • If you have any questions, concerns, etc., please come to office hours or send me an email.

Course Objective

This is the first half of a two-quarter course sequence. Students will be introduced to the basic concept of problem solving using the Java programming language. Basic control structures, primitive types, classes, objects and methods, and algorithm development will be taught. Machine architecture and operating system concepts will be briefly discussed.

Required Textbook (textbook cover shown above)

  • Starting Out with Java: From Control Structures through Objects plus MyProgrammingLab with Pearson eText -- Access Card
  • 5th Edition
  • Author: Tony Gaddis
  • Pearson Publishing
  • ISBN: 0132989999
  • Note: available in the bookstore or online. Be sure to purchase the edition with access to MyProgrammingLab. We will cover chapters 1-7 of the textbook.

Grading (Score Calculation)

  • Midterm Exam: 20%
  • Final Exam: 25%
  • Labs: 20%
  • Homeworks: 20%
  • Final Project: 15%

Homework, Labs, Computer Accounts & IDEs

  • Homework assignments will consist of problems from the textbook, myProgrammingLab questions, coding assignments, as well as a final (coding) project. Some assignments will be just problems from the textbook, some will be just coding assignments, while others will be a mix.
  • Attending/completing the Labs is mandatory. Each lab is designed to be self-contained, and should be completed in the allotted lab time. If you do not complete your lab by the time that the lab is over, submit the lab as soon as possible.
  • The labs in Hebeler Hall are open late during weekdays, and on Sunday afternoon and evening. General information about lab accounts and lab hours is available at http://www.cwu.edu/~geesaman/hebeler-labs/homepage.htm. Open lab hours are posted at http://www.cwu.edu/~geesaman/hebeler-labs/hours.htm
  • Submission instructions, as well as rubrics, for labs and homeworks will be clearly stated on each homework or lab. Some homeworks will require you to submit code into a folder in your CS110 account. Other assignments will require you to submit answers via BlackBoard. Instructions on how to submit each assignment will be explained clearly in class, and whenever an assignment is distributed.
  • Follow this link for information on how to access your computer science CS110 account remotely.
  • Most of the IDEs that are installed on the lab computers are available to download for free, and can be installed on your personal computer. Several of the more popular ones are jGrasp (http://www.jgrasp.org), Eclipse (http://www.eclipse.org/) and Netbeans (http://netbeans.org/)

Late Policy, Calculation of Grades

  • At the end of the quarter, the lab as well as the homework assignment on which you scored the fewest points will be dropped from the final grade calculation. If you fail to attend and submit more than one lab or if you fail to submit more than one homework, you'll receive zeros for those assignments.
  • For each day that you submit your homework late, your grade on that homework will be reduced by 20% of the points available on that assignment. After the homework solution set has been distributed, late homeworks will NOT be accepted. If there is a special circumstance that you think warrants you receiving an extension for a homework, or for some reason you cannot attend lab, please let me know. You must have PRIOR approval of a homework due date extension, or missing of a lab.

Teaching Assistants, office hours

  • James Remeto
    • Days of week: Tuesday and Wednesday
    • Time: 2-3pm
    • Location: 218 Hebeler
  • Pao-Shih (Luke) Huang
    • Day of week: Thursday
    • Time: 11am-noon
    • Location: 218 Hebeler

Lab Assistants

  • Teron Santeford
  • John Breidenthal

Grading Scale

  • 95-100: A
  • 90-94: A-
  • 87-89: B+
  • 83-86: B
  • 80-82: B-
  • 77-79: C+
  • 73-76: C
  • 70-72: C-
  • 60-69: D
  • 0-59: F

Honor Code

The midterm and final exams, the final project, and all homeworks are to be the individual work of each student whose name appears on the exam or work being turned in for credit. You can get help from the TAs, or from the instructor. You can ask other students and ONLY discuss errors or problems that you may be experiencing, but you CANNOT discuss, share, disseminate, etc. solutions. The ONLY exception to this are lab assignments that are done on the specified lab days, where you are encouraged to discuss and you can even work together. Deviation from this policy will be treated as a violation of the honor code and will be subject to disciplinary action. Please refer to the university's student conduct code (Section 106-120-027 of Student Rights and Responsibilities, found at http://www.cwu.edu/student-success), for complete details. The following honor code statement will appear on the midterm and final, which you'll have to sign:
I pledge that this submission is solely my work, and that I have neither given to nor received help from anyone other than the instructor or TAs.

ADA Statement

Students with disabilities who require academic adjustments in this class should first register with Disability Services here at CWU, and then submit an online request for special classroom accommodations and/or alternate testing. Students with disabilities who have not registered with the Center for Disability Services (CDS) are not eligible to receive accommodations/academic adjustments. Please contact CDS for additional information, or speak with Filip if you have any questions.

This schedule may change as we progress through the quarter.
Any modifciations will be announced in class, and updates will be posted here.
Homeworks are due at 11:59pm on the day specified, unless otherwise noted.

Week Date Lecture/Required Reading Homework Lab
1 June 17-23 Intro, The Sandwich Algorithm
Chapter 1, Sections 1.1-1.7
Chapter 2, Sections 2.1-2.3
Chapter 2, Sections 2.4-2.5 HW #1 assigned
Lab 1: MyProgrammingLab, and your first java programs; jGRASP
2 June 24-30 Chapter 2, Sections 2.6-2.7
Chapter 2, sections 2.8-2.12
Sections 2.12-2.15, 3.1 hw #1 due
hw #2 assigned
Lab 2: arithmetic, strings, input
Sections 3.2-3.4
3 July 1-7 Sections 3.5, 3.6, 3.9
hw #2 due
hw #3 assigned
Lab 3: if statements
Sections 3.7, 3.8, 3.10-3.12
Sections 4.1-4.3
Sections 4.4-4.5
Lab 4: whilte loops; printf Lab4WhileAndPrintF.java
Sections 4.5-4.10 hw #3 due
4 July 8-14 Section 4.10
Section 4.10
Lab 5: For-loops and files
TerraceEverVerdant.java
terraceEverVerdant.txt
Midterm Prep
Midterm
Sections 5.1-5.2 hw #4 assigned
ManipulateImage.java
cwu.jpg
Sections 5.3-5.4
5 July 15-21 Lab 6: Random Numbers, Methods
MyProgramWithoutMethods.java
Sections 5.5-5.6 Final project explained
Sections 6.1-6.3 hw#4 due
hw #5 assigned
Gambler.java
Casino.java
Lab 7: Classes, Eclipse
eclipseOpenErrorFix.zip
Sections 6.4-6.6 Final project pseudocode due
Sections 6.7-6.10, 7.1, 7.2
Sections 7.3 - 7.4 hw #5 due
hw #6 assigned
Lab 8: Arrays
ArrayOfExamScores.java
6 July 22-26 Sections 7.5 - 7.6 Final project first draft due
Sections 7.10-7.12
ArrayList HW#6 due
Final Exam

To prepare for the final, cumulative exam (in no particular order):

  • Review the lectures slides
  • Review the midterm exam's answers
  • Review the lectures slides
  • Review the clicker questions that were given in class
  • Review the questions that were assigned for homeworks
  • Read over the "Common Errors to Avoid" sections for chapters 2-7
  • Review the high-level concepts that were covered in labs
  • Complete the sample final

To prepare for the midterm (in no particular order):

  • Review the lectures slides
  • Review the lectures slides
  • Review the lectures slides
  • Review the clicker questions that were given in class
  • Review the questions that were assigned for homeworks
  • Attend the extra review session (not required), Saturday, 9 February, 121 Hebeler Hall, 1-2pm
  • Read over the "Common Errors to Avoid" sections for chapters 2-4
  • Review the high-level concepts that were covered in labs
  • Complete the sample midterm

Description/Details

  • The final program constitutes 15% of your course grade
  • Your task: write a program, of your own design. You choose what the program does. A few suggestions/examples:
    • A text adventure game
    • A program that is a vocabulary quiz, which also keeps track of user progress
    • A program that reads from a file containing survey results, calculates/tallies statistics, and then displays a summary to the screen
    • A program that queries a user for the weather (temperature, humidity, time-of-year, etc.), and then suggests articles of clothing to wear
    • Previous student project: A "crystal ball" program: a user asks a question, and the program, depending on whether it is a "what", "where", "why," etc. question, gives an appropriate response.
    • Previous student project: A football program, that randomly decides the success/failure (how many yards gained, lost) for each play
  • The program must be non-trivial (more complex than any one of the homework assignments assigned in the class). If you are not certain if your program is adequate, then ask. At a minimum, your program must contain, at least one from each of the 8 categories:
    • Fundamentals: a println or print method, OR uses a dialog box
    • Fundamentals: a Scanner object, to read input from the keyboard
    • Decision Structures: an if, if-else, or an if-else-if statement
    • Decision Structures: a switch statement
    • Loops: a while, do-while, or for loop
    • Files: utilizes the File class, to read from, or write to a file
    • Randomness: uses the Random Class and the random number generator
    • Methods: at least three methods (other than main). They cannot be of the same "type." The four "types" are 1) receives no arguments and returns void, 2) receives a single argument and returns void, 3) receives a single argument and returns a value, 4) receive multiple arguments and return void, 5) receive multiple arguments and returns a value.
  • The program may contain, but does not require, use of classes or arrays. If you plan to continue with CS111, it is strongly recommended that your program contain these elements.
  • Include a README.txt file (see lecture, for details), with your code

Important Project Dates

  • 19 February : Description of final project (this page) made available
  • 25 February : Pseudocode due via Blackboard
  • 4 March : First draft of code due
  • 8 March : Final code due

Project Rubric

  • 10 points : pseudocode and description
  • 15 points : first draft
  • 40 points : code contains all of the above listed required items (5 points for each category)
  • 10 points : the code compiles (has no syntax errors)
  • 10 points : The code runs as expected (no logical errors)
  • 10 points : Proper commenting, indentation, variable names, etc.
  • 05 points : Included is a README.txt file
  • Clicker participation will count for 5% of your final score in the class
  • To receive the full points for clicker participation, you must answer at least 70% of the clicker questions in the quarter.
  • Whether you answer a question correctly or incorrectly is irrelevant; it is participation that matters.
  • Clicker Stats Last Updated: 04 March 2013