Instructor Contact Information

  • Instructor: Amelia Garripoli
  • Office Hours: available after class 1:30-2:30 @ OCP by arrangement.
  • Phone: (360) 774-0740 (texts)
  • Skype: ameliagarripoli@gmail.com
  • Email: amelia.garripoli@wwu.edu
    Send Course questions through the Canvas Inbox.

Course Detail

  • Catalog description: This course is intended for students majoring in computer science. The course covers abstract data types, generics, access or pointer types, dynamic memory allocation, recursion, and linear data structures including stacks, lists, and queues. Programming is required in implementation of concepts.
  • Prerequisites: CSCI 141 or equivalent, any of MATH 115/118/124.
  • Credit hours: 4
  • Class dates: June 21 - July 26, 2017.
  • Class: Monday/Wednesday 9-10:50 and 12-1:20
  • Location: OCP 108.
  • Attendance: Students are expected to attend all classes. Missing classes without explanation may result in a grade penalty. You are expected to refer to the book when you miss class, don't quite understand an idea, or want extra practice problems.
  • Text Required: Building Java Programs 4th Ed. Stuart Reges & Marty Stepp, Pearson, 2016. (3rd edition will do, but earlier ones are missing some problems & chapters we assign so are not satisfactory for this course.)
    Online site for the textbook: buildingjavaprograms.com.
    Lab Problem Set supplement: buildingjavaprograms.com/supplements4.shtml
    Practice-It! online supplement: practiceit.cs.washington.edu.
    My Programming Labs: Pearson myprogramminglab.
    Additional material and resources are identified in the Canvas course shell.
    We cover (approximately) Chapters 1-12, 14, and 16 of the textbook.
  • Also recommended: A USB thumb drive, 16 GB or larger; or cloud storage
  • Course Outcomes: Students who successfully complete this course will demonstrate:
    •  Basic understanding of the use of recursion in the definition and implementation of linear data structures, including stacks, lists and queues.
    •  The ability to implement some basic algorithms using recursion.
    •  Basic understanding of the concepts of abstract data types and generics and their implementation in a modern programming language.
    •  Basic understanding of access or pointer types and dynamic memory allocation, as implemented in a modern programming language.
    •  The use of a modern programming language for the implementation of abstract data types for linear data structures in the solution of problems.
    •  The ability to create test cases for problems involving linear data structures.
  • Course web site: accessible through Canvas. All resources from class will be posted on Canvas. Check the website often for important announcements.
  • Software: The recommended software for this course is the Java Development Kit (JDK) version 8 and Eclipse Java Development Environment Neon.3 release. The course web site contains links to download this software free of charge if you want to work on your own equipment.

Schedule

Visit the course Web site often for current assignments information, due dates, and messages.
The Grades section will show you the work you have submitted and the feedback for it.

See the Canvas Course or your Canvas Calendar for the current schedule of assignments; this initial schedule may be adjusted during the course, and those changes will be provided in the Canvas course shell.

All work is to be submitted on Canvas using submissions in Assignments and by submitting Quizzes; these can be found directly in the "Assignment" section of the course Canvas site.

Class Date Topics Reading Lab
1 W 6/21 Introduction
Java Basics
(primitive types, loops, procedural decomposition)
Syllabus
Chapter 1
Chapter 2
Lab 0
2 M 6/26 Java Basics
(parameters, objects, conditionals)
Chapter 3
Chapter 4
Lab 1
3 W 6/28 Java Basics
(program logic, loops, file processing)
Chapter 5
Chapter 6
Lab 2
4 M 7/3 Arrays
Recursion
Chapter 7
Chapter 12
Lab 3
Assignment 1
5 W 7/5 Recursion
Midterm Examination
Chapter 12 Midterm
Assignment 1
6 M 7/10 Objects & Classes Chapter 8
Chapter 11.1
Lab 4
Assignment 2
7 W 7/12 Objects & Classes
Inheritance & Polymorphism
Chapter 9 Assignment 2
8 M 7/17 Linked Lists Chapter 16 Lab 5
Assignment 3
9 W 7/19 Stacks and Queues Chapter 14 Assignment 3
10 M 7/21 Generics Chapter 10 Assignment 3
Final Exam: Wednesday, July 26, 9:00-11:00

See the Canvas Course or your Canvas Calendar for the current schedule of assignments.

Assessment

Assessment for the course consists of a midterm exam, a final exam, quizzes and labs at each course session, and three programming assignments. As stated in the University Bulletin, "A student who fails to take a final examination without making prior arrangements acceptable to the instructor receives a failing grade for the class."

Assignments

There are three assignments in this course; each is a significant program that you must develop on your own. Apply these guidelines.

  • When working out a problem, discussion with your classmates or seeing help can be very valuable. However, programs that you turn in for a grade must be your own. Students who copy programs or sections of programs from each other or from any other source will be considered to be cheating, as will students who allow their programs to be copied. See Academic Honesty below for more information.
  • Programs must run on a lab machine. Any programming project that does not compile and run on a lab machine will be awarded a score of 0 points. In order to improve that score, students must spend enough time with the instructor to get the program running.
  • Programs must be completely submitted before midnight the day they are due. Late programs are subject to a deduction of 10% each day from the maximum possible score. A program worth 100 points if submitted before midnight is only worth 90 points at 12:00 AM the second day. Programs will not be accepted more than 4 days late.

Programs will be graded on correctness, design, and style.

Labs

  • Each lab is hands-on. Attendance and work in class is expected. Labs start right away, the first day. Lab activities are used to build your programming skills for the assignments and exams.
  • As this is a Poulsbo class, attendance at the Poulsbo labs is expected. You cannot substitute a Bellingham lab section.
  • If you should miss a lab, do not expect the instructor to provide you with an equivalent session during office hours. Be prepared to go through the lab yourself, and if you still have specific questions, then ask your instructor. Late scoring will also apply to labs not completed the day they were assigned.
  • During weeks when assignments are due, lab hours can be used to work on the assignments, and the instructor will be available to answer questions on the assignment. Note that assignments are expected to take additional time outside of the lab, do not expect to complete your assignment in only that lab time.

Quizzes

Quizzes will be given in class over assigned reading and material covered in class. Make-up quizzes will not be granted other than for exceptional reasons.

Exams

The Midterm and Final are in-class. Make-up exams will only be given due to a serious emergency. If you must miss an exam, even if you are sick or injured, you must contact the instructor before the exam, or arrange for someone to do so. You must show evidence you were physically unable to take the exam for a make-up to be arranged. No special accommodations will be made for students who arrive late to exams, regardless of the reason (this includes car, bus, overslept, sick).

Grading

In this course the date the student last submitted work accepted for grading will be used as the last attended date.

Grade distribution among work is:

  • Exams: 30%
    • Midterm: 10%
    • Final: 20%
  • 5 Labs: 15% (3% each)
  • 3 Assignments: 45% (15% each)
  • Quizzes (for participation): 10%

Grades are assigned on the total of the assessment items accordingly:

Letter Percent
A 90-100%
B 80-89%
C 70-79%
D 60-69%
F < 60 %

The use of "+" and "-" is at my discretion.

Points on work submitted on-time are posted as soon as possible, usually within 4 days of the due date. My goal is to give reasonable feedback in the shortest time possible. If I have outside events impacting the 4 day timeframe, I will notify you of any delays in grading.

Disputes about grades must be made to your instructor within 1 week of receiving the grade. Monitor your course progress and see what you have submitted by clicking on "Grades" on the course navigation on the course website.

Technical Expectations

We use a Windows PC, internet browser, and Java Development Environment in this course. You are expected to be comfortable with computers, understand the file manager, and be able to pick up and use software that is new to you.

You will need to schedule sufficient time in the Poulsbo lab, or have regular access to a PC and have Eclipse Neon.3 and JDK 1.8u131 on a flash drive, to complete the coursework. We use Eclipse and the JDK to develop and run our code in this class.

You will need to have regular Internet access for completing and submitting coursework. You must have a plan "B" in case you have issues with your normal Internet access and related software that might affect your ability to participate in this class. Internet, network, computer or software issues will not change your due date.

It is your responsibility to be aware of the impact of your actions when using the internet, with respect to managing your privacy, using the information you access, and maintaining machine security.

Policies

  1. Ask for help:

    First, start assignments early and be proactive. If you need help, get help early - if you wait it can become too late.

    I am available after class and via Canvas messages. If your question requires a conversation, we will use Skype if a mutual time can be arranged prior to the next class meeting. Do not use regular email, response will not be as quick as it is not monitored daily.

    You can expect a response from me to your Canvas Inbox message within one school day; do not expect a reply on weekends, breaks, or holidays. If you do not get a response, resend your message and check the to: address to ensure it is going to the appropriate person.

    Do not show your quiz, exam, lab or assignment work to your classmates or share it on the internet. The instructor will not, and other individuals must not directly provide any part of a solution to a home work assignment or lab. The work must be the student's own.

  2. Effort: Regular attendance and success in this course have a strong correlation. Regular attendance means:
    • You are logging in to the Canvas classroom at least three times per week.
    • You are completing the reading prior to attending class.
    • You are attending, taking notes, joining discussions, and asking questions during class.
    • You have a plan B in place in case your internet access is interrupted, and use it.
    • You make regular progress on the labs, assignments, and quizzes each week.
    • You seek assistance promptly from the instructor when you have questions on the reading or any assignments.

    New concepts tend to build on previous concepts rather than stand on their own. Given the accelerated nature of this summer term, do not delay - even falling behind one lesson can be extremely damaging in your ability to complete the course. Utilize office hours to ask for assistance.

    Students are expected to have the Course Textbook and satisfy the Technical Expectations on or before the start of class. Any requested reading or activity should be completed before the first class day of the module, so that the student can better participate in discussions and use lab time effectively. Not having a text and not being prepared will not be an acceptable excuse for not being able to participate in class.

    By taking this course, you are stating that you will be making appropriate time in your schedule to ensure success and have access to the resources required for this class. Since this is a compressed quarter, expect to spend about 6 hours per week for each class credit to ensure success. For a 4 credit class this is 24 hours of class work per week. Java will be your life for the next 5 weeks - be prepared for the time commitment.

    Remember: You are responsible for your learning. You need to invest regular, consistent time to succeed in this course.

    Time management is your friend or your foe! Waiting until the evening of the due date to ask a question of an assignment will not provide success in this course. You may not get a response before the due date. That is your responsibility, you alone are responsible for your late start. Start assignments early and be proactive.

  3. Withdrawing: If you wish to withdraw from this course, please file the appropriate paperwork with the Registrar's Office and then inform me of your decision. If you are still in the gradebook at the end of the term, your computed grade with 0's for unsubmitted work will be used unless you have been in contact with me previously to make other arrangements or you were administratively withdrawn for non-attendance. It is your responsibility to contact Registration and Records, otherwise you remain enrolled in the course.

  4. Academic honesty: Academic dishonesty is defined in the University Catalog as misrepresentation by deception or by other fraudulent means which compromises an instructor's ability to fairly evaluate a student's work or achievement. It is the instructor's responsibility to confront a student and to take appropriate action if academic dishonesty, in the instructor's judgment, has occurred. Please refer to the University Catalog for further information. See POL-U2100.02 for the official policy.

    Any student who violates the academic honesty policy will receive a grade of F for the course and a letter will be added to the student's permanent academic record.

    Academic dishonesty is dishonesty. In our setting, it is misrepresentation of others' work as your own, or providing your own work to others for their use. Academic dishonesty compromises the instructor's ability to fairly evaluate a student's work or achievement. It includes, but is not limited to, the following:

    • Giving, taking, or receiving unauthorized information to/from another person during any type of assignment or test. You must not share your work, or ask others to provide you with any part of a solution to a lab, assignment, quiz, or exam.
    • Obtaining or providing without authorization questions or answers prior to the time of an assignment or test.
    • Using unauthorized sources for answers during any assignment or test. This includes code from StackOverflow, GitHub, or other sources.
    • Taking part in or arranging for another person to complete an assignment or to take a test in place of another.
    • Altering answers on a scored test and submitting it for a higher grade.
    • Collaborating with others in a required assignment without the approval of the instructor.
    • Stealing class assignments or portions of assignments, including electronic files, and submitting them as one's own.
    • Plagiarism, which is presenting as one's own in whole or in part the argument, language, creations, conclusions, or scientific data of another without explicit acknowledgement. This includes such things as using a machine translation program, reusing your own work from another course, paraphrasing without citing a source, or claiming credit on work you did not do.

    Facilitating academic dishonesty includes providing your own work to someone else for their solution; do not put your classmates in this situation, they must not provide you with solutions.

    Unless otherwise noted your assignments are individual assignments and your work must be your own. At any point during the term, you should be able to explain or duplicate any of your solutions for your assignments. I reserve the right to refuse to accept any assignment if you cannot demonstrate the ability to perform similar work when asked, or if you cannot explain your answer or approach that you have used.

  5. Appropriate Collaboration: It can be valuable to talk with a classmate then learning a new programming language or working out a problem. However, the work that you turn in for a grade must be your own. All aspects of the labs and assignments in this course are meant to be done individually.

    To ensure this, after working together, no collaborators may keep any electronic or physical documents of the session. You may only keep your memories. This means that you may not ask for or give help on an assignment while sitting in front of a computer where the assignment is open.

  6. WAC Regulations: Please review Western Washington University's WAC 516 regulations. Washington Administrative Code (WAC) 516 is Washington State law and governs the behavior of the administration, faculty, and students. Laws for student conduct and academic honesty, in 516-21 WAC: Student Conduct Code, are always followed in this class; this includes issues of academic dishonesty, plagiarism, classroom etiquette, cyber misconduct and other conduct.

Equal Opportunity

I am committed to establishing and maintaining a classroom climate that is inclusive and respectful for all students. Learning includes being able to voice a variety of perspectives, and classroom discussion is encouraged. While students' expressed ideas may vary or be opposed to one another, it is important for all of us to listen and engage respectfully with each other.

I, and Western, are committed to an environment free of discrimination and harassment. Federal and State Labs, as well as University policies, protect students, faculty, and staff against discrimination based on the following legally protected characteristics: Race, Color, Creed, Religion, National Origin, Gender (including pregnancy and parenting status), Age, Disability, Marital Status, Sexual Orientation, Gender Identity and Expression, Genetic Information and Veteran Status. For further details see WWU's Equal Opportunity Office.

Accommodations

Reasonable accommodation for persons with documented disabilities should be established within the first week of class and arranged through Disability Resources for Students: telephone 360-650-3083, email rs@wwu.edu, or on www.edu at Disability Resources.

Student Services

Western encourages students to seek assistance and support at the onset of an illness, difficulty, or crisis. See Counseling, Health & Wellness Services for further information.

Success

I want you to succeed. This class gives you an opportunity to practice programming skills. I am here to support your efforts. Please contact me and use my office hours if you need help with this course. I also welcome your insights and feedback.

Welcome to CSCI 145, I look forward to sharing Java with you. ~ Amelia.

Note: Syllabus content, course due dates and assignments may change at any time. Changes will be posted in Canvas.