Syllabus

CSC 281-601/610

   

Workshop: Java for Programmers

Spring 2017

Wednesdays, 11:50 am - 1:20 pm, CDM 220

 

Professor: Amber Settle

Contact information

243 S. Wabash Avenue, Room 748
Chicago, IL 60604
Phone: (312) 362-5324
FAX: (312) 362-6116
Skype: amber.settle
asettle@cdm.depaul.edu
http://facweb.cdm.depaul.edu/asettle/

Office hours

Mondays  11 am - 12 pm
Mondays/Wednesdays 4:45 - 5:30 pm

My office hours are held in room 748 of the CDM building. I am available during office hours in person, by phone, using Skype, or by e-mail. Since students may be present in person during those hours, it is possible that there will be some delay before I respond to e-mail, phone calls, or Skype requests. When you call, please leave a message that indicates the number you can be reached at and gives the best time to return your call.

Please make use of my office hours.  Asking questions about the assessments, class notes, or the readings can improve your understanding enormously.   It will also let me know if I need to review a topic with the class.  If you want to talk to me during my office hours but are unable to do so for any reasons, please contact me to make an appointment outside those hours.

Course web site

The web site for this course is Desire2Learn (D2L). To log onto the D2L page visit https://d2l.depaul.edu/. Course notes, programming assignments, a study guides for the final exam, and other course materials will be available through the D2L site. There will also be links to course recordings which are necessary for the students enrolled in the online section and useful for review for students enrolled in the traditional section.

Prerequisites

In order to take this class you are required to have taken CSC 241: Introduction to Computer Science I or CSC 243: Python for Programmers and earned a C- or better. As a result, the assumption will be made that you are familiar with programming basics (decision and iteration structures, functions, modules, file processing, and exception handling) in Python.

Course topics and learning goals

This is a bridge class designed to ease the transition between the Python sequence (CSC 241/242 or CSC 243) and the Java data structures courses (CSC 300/301). It provides an introduction to the Java programming language and the Eclipse development environment.

After you have taken this class:

  1. You will have basic Java programming skills, including the use of decision and iteration structures, methods, and classes from the API.
  2. You will be able to use the Eclipse editor and debugger.
  3. You will understand the notions of scope and visibility.
  4. You will understand the difference between boxed and unboxed values.
  5. You will understand the basics of Java classes.
  6. You will have stronger problem-solving skills and a better ability to develop algorithmic solutions for computational problems.

Course calendar

The following gives all the important dates for this course.  The topics and specific examples covered are subject to change.

Week Date Topic/Deadline
1 Wednesday, March 29, 2017 Eclipse and Java basics: Creating and running a program, output, the Math class (e.g. Math.random), compiler errors, basic control structures (if-then, if-then-else, while-loops), variable declaration and simple rules of variable visibility, and static methods.
Friday, March 31, 2017 Last day to add classes
Sunday, April 2, 2017 Last day to add online classes
2 Wednesday, April 5, 2017 Input (the Scanner class), casting, arrays and for loops (e.g. shuffling an array), runtime errors, and throwing and catching exceptions (e.g. checking that an argument is not negative or not null and throwing an IllegalArgumentException).
Friday, April 7, 2017 The last day to drop classes with no penalty
Sunday, April 9, 2017 The last day to drop online classes with no penalty
3
Wednesday, April 12, 2017 Introduction to the Eclipse debugger. Strings, and using StringBuilder to convert an array to a string. Aliasing (e.g. harmless on Strings and potentially dangerous on arrays). Examples of passing arrays as parameters.
4 Wednesday, April 19, 2017 Using classes to describe objects: nonstatic fields and methods. The equals method, and the difference between == and the equals method.
5 Wednesday, April 26, 2017 More on classes and objects: static fields and methods. Example: rational numbers (equality of numerator and denominator, normalized so that only the numerator can be negative, and reduced so that the gcd(num, denom) = 1).
6 Wednesday, May 3, 2017 toString method of the Object class (e.g. inheriting from Object). Inheritance (e.g. bank account classes).
7 Wednesday, May 10, 2017 Using interfaces. Basic subtype polymorphism (e.g. Colors, Fruits, etc.)
Friday, May 12, 2017 Last day to withdraw from classes
8 Wednesday, May 17, 2017 Generic types. Iterable interface.
9 Wednesday, May 24, 2017 The Arrays.sort method. Order and comparison: natural order via Comparable and other order using Comparator. Lambda notation for comparator and other simple interfaces. Static and nonstatic nested classes.
10 Wednesday, May 31, 2017 Base types and Wrapper classes: autoboxing and unboxing. Abstract classes. Review for the final exam.
11 Friday, June 9, 2017 Final exam: 11:30 am - 1:45 pm

Textbook

The required textbook for the course is Core Java for the Impatient by Cay Horstmann, Addison Wesley, 2015, ISBN 978-0-321-99632-9. The text overs more Java than necessary for this course, but it is a common recommended text for CSC 300/301 so it is likely you will use it during more than a single quarter.

Grading policy

Course assessments include weekly programming assignments and a final exam.  The course grade will be computed as follows:

Assessment Percentage
Programming assignments 65 %
Final exam 35 %

All students will be required to sign and return an Academic Integrity pledge at the start of the quarter. The Academic Integrity pledge is posted on the D2L site. The pledge must be signed and returned as a part of the first homework assignment. Students who violate this agreement are violating the Academic Integrity policy of DePaul University. See the section on Academic Integrity below for more information about that policy and penalties for violating it.

In order to do well in this class, you must attend or watch the recordings of the class sessions regularly, participate in class discussions, read the chapters in the book as indicated in the homework assignment, start work on the assignments early, and ask questions early and often. The answers to the programming assignments and exam questions should be written in a way that is rigorous, clear, and concise.

Programming assignments

Each week you will have a programming assignment. You can consult with your homework partners,  the instructor, and the CDM tutors on the programming assignments, but you may not under any circumstances submit code that you have not helped to write nor may you consult anyone beyond those specified when completing your assignments. Each programming assignment will have a posted deadline, specified on the assignment. No late assignments are accepted for any reason. Your lowest assignment score will be dropped in the calculation of your course grade.

Final exam

The final exam will be cumulative. The final exam for the traditional section of the class will take place on Friday, June 9, 2017 from 11:30 am to 1:45 pm, and students in the traditional section must take the exam on this day during the specified time period. Students in the online section of the course will be required to schedule a proctored exam through CDM Online Learning office during a short window determined by Dr. Settle. Online exams will be scheduled through D2L. The exam will be taken on paper and will require you to trace and write Java code. Logistics and more details about the exam will be provided during the tenth week of the quarter.

Make-up exams will not be given. If you wish to petition for a make-up exam, you must notify me in advance and provide documented evidence of the emergency that will cause you to miss the exam. Failure to contact me in advance of the exam date and time will disqualify you from being allowed to take a make-up exam.  If a make-up exam is granted, it will be of a form of my choosing.

Online course evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student�s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in Campus Connect: http://campusconnect.depaul.edu/

Academic integrity

The course adheres to the DePaul University's Academic Integrity Policy.  For complete information about Academic Integrity at DePaul University, please see: http://academicintegrity.depaul.edu/.

Cheating is any action that violates university norms or instructor's guidelines for the preparation and submission of assignments. This includes, but is not limited to, unauthorized access to examination materials prior to the examination itself; use or possession of unauthorized materials during the examination or quiz; having someone take an examination in one's place; copying from another student; unauthorized assistance to another student; or acceptance of such assistance.  Plagiarism involves the presentation of the work of another as one's own. Plagiarism includes, but is not limited to the following: the direct copying of any source, such as written and verbal material, computer files, audio disks, video programs or musical scores, whether published or unpublished, in whole or part, without proper acknowledgment that it is someone else's; copying of any source in whole or part with only minor changes in wording or syntax, even with acknowledgment; submitting as one's own work a report, examination paper, computer file, lab report or other assignment that has been prepared by someone else (including research papers purchased from any other person or agency); the paraphrasing of another's work or ideas without proper acknowledgment; working so closely with another person so as to produce identical code.

The use of others' web/publication content (text, graphics, code) is regarded as plagiarism if credit is not given (see the above description of plagiarism).  When you directly quote someone's work, you must put it in quotation marks. Without such quotations and reference, it is regarded as an act of plagiarism (see the above description of plagiarism).  Using materials that the student prepared for other purposes (e.g., for another course or for his/her work) needs the course instructor's prior permission.

A charge of cheating and/or plagiarism is always a serious matter.  It can result in an automatic F in the course and possible expulsion.

Incomplete

An incomplete grade is given only for an exceptional reason such as a death in the family, a serious illness, etc. Any such reason must be documented. Any incomplete request must be made at least two weeks before the final, and approved by the Dean of the College of Computing and Digital Media. Any consequences resulting from a poor grade for the course will not be considered as valid reasons for such a request.