CIS 255 • Java Programming

Jefferson State Community College • Shelby-Hoover Campus • Spring 2021

Instructor: Mr. Thomas Battles
Availability See Weekly Schedule
E‑mail tbattles (at mark) @jeffersonstate.edu

Catalog Course Description This course is an introduction to the Java programming language. Topics in this course include object-oriented programming constructs, Web page applet development, class definitions, threads, events and exceptions. Upon completion, the student will be able to demonstrate knowledge of the topics through the completion of programming projects and appropriate tests.

Prerequisite CIS 110 (prior to Fall 2009) or CIS 150 (Fall 2009 or later). Students with prior programming experience, especially those who are not pursuing an Associate in Applied Science degree, may enroll in CIS 255 without this prerequisite. A student currently enrolled in CIS 150 may be able to master a single programming language course during the same semester. Students without prior programming experience, especially those requiring MTH 090 or MTH 098, are advised not to take this or any other programming course without first completing or enrolling in CIS 150.

Recommended Materials You are advised to have the textbook open when you study the lecture notes on Blackboard, as your instructor may refer to examples that are present in the textbook.

E‑mail your instructor if you are not sure that the textbook you plan to purchase is correct.

If you plan to work on assignments on a public computer (on campus or elsewhere), use a USB flash drive to save your work; it can be a new flash drive dedicated to the course, or it can be one you have had for several years that contains files for other purposes. Do not share your flash drive with another student under any circumstance.

Software If you are allowed to access one of the computer laboratories on campus, any Windows laboratory maintained by the CIS department should provide Notepad++, a simple text editor that supports Java syntax highlighting, as well as Oracle's Java Development Kit (JDK) tools to compile and run Java programs. If you prefer not to set up an Oracle account, you may download the latest version of JDK 8 from the AdoptOpenJDK site. Some of the code examples may not run in more recent versions of the JDK.

There are several Java development environments and code editors available for free; if your code conforms to Java language standards, you may use any environment to write, compile, and run your programs. Note that some development environments involve the creation of packages; the programs you submit must compile and run without being in a specific package.

Students enrolled in CIS courses at Jefferson State may also obtain Microsoft software free-of-charge through Azure Dev Tools for Teaching (formerly DreamSpark or Microsoft Imagine); your Jeff State e-mail address and password should allow you to access this website.

Jefferson State students have access to install Office 365 (including Word, PowerPoint, Excel, and Access) on multiple computers and devices: log into Office account settings using your Jefferson State e‑mail address and password, and click the Install Office button. Note that your access to Office 365 continues only for as long as you are actively enrolled.

Your instructor requires you to use LockDown Browser to access examinations. This browser is available for Windows 7 or higher, macOS 10.10 or higher, and iPads running iOS 10.0 or higher; it is not compatible with phones, Chromebooks, or tablets other than iPads. If you do not have access to a compatible device on which you can install this browser, please e‑mail your instructor as soon as possible; the college may be able to provide you with a loaner laptop should your computer not meet the requirements for LockDown Browser. Your instructor does not plan to require you to use a webcam for proctoring.

Course Content Each week students will both study lecture materials on portions of the Java language and apply what they learn to scenarios in laboratory assignments, projects, and / or examinations. Students will connect the structure of Java with general programming concepts and real-world problems.

Schedule The following is a tentative schedule of the availability of chapter materials (see the Tentative Calendar and the Announcements tool for other dates, including deadlines):

Grades Refer to the following table for the contribution of each course item to your grade.

Item Number / % Each Total %
Exams 4 @ 25% each 100%
Item Number / % Each Total %
Quiz 1 @ 5% 5%
Lab Work 12 @ 5% each (3 bonus) 50%
Projects 3 @ 12.5% to 18.75% each 50%
Non-Exam Total 100%

See the syllabus addendum for details on how your final grade is determined.

Quiz Attendance verification for all Internet courses requires the completion of a graded activity. For this course, you will need to complete a brief quiz answering questions regarding information in the syllabus, addendum, calendar, and / or initial lecture materials. You may attempt this quiz multiple times to improve your score, but you must make at least one attempt by Wednesday, January 13, at 9:59 p.m. Failure to attempt the quiz by the deadline will likely cause the college to drop you from the course.

Laboratory Assignments For each laboratory assignment, you will be given detailed instructions on how to create a complete Java program that relates to material recently covered in the lectures. You are expected not only to complete the code, but also to ensure that the code compiles and executes properly. Grades will be weighted more for effort than for accuracy, but you should aim for as functional a solution as time permits.

In lieu of an opportunity for an on-campus laboratory period, you may e‑mail your work in progress (as an attached file) to your instructor for feedback. Do not ask your instructor questions about any portion of the instructions unless you have already read it and the related lecture notes thoroughly; you will benefit more from struggling through and resolving issues yourself rather than having your instructor give you the answer immediately.

Projects As the semester progresses, you will be required to create complete Java programs to specifications that test your knowledge of the material covered to date. A portion of your grade will be based on proper use of the required code elements, but a larger part of your grade will be based on how well the program performs. Individuality is encouraged if the added elements do not detract from the required functionality; your program must follow the guidelines in the project description. Project instructions are posted on Blackboard almost two weeks in advance of the deadline, so you should be able to submit an assignment on time even if you miss the day it was announced.

Assignment Guidelines For each assignment, you must include special lines called comments at the top of your code identifying yourself, the course, and the assignment. Additionally, the instructions will indicate the number of comments required within the code that describe different portions of the program in your own words to help you and other programmers understand the code in the future. Comments must be your own work; do not copy excessive amounts of material from lecture notes, instructions, or other sources. You will lose up to ten percent of the assignment grade if you do not provide comments that are relevant to the assignment.

Although there may be a variety of ways to code an assignment solution in Java, your code should include only the syntax discussed in the lectures and in the textbook unless you receive prior permission from your instructor.

Assignments are due at 9:59 p.m. on the date of the deadline. Any submission after this deadline will be accepted for half credit per the policy in the syllabus addendum.

Examinations After each set of two to three chapters covered in the lectures there will be an examination. These examinations will test both your understanding of underlying concepts and your knowledge of Java syntax. Examinations may feature a mixture of multiple-choice questions, a problem in which you write the output of a Java program included in the exam, and an exercise in which you must provide a complete Java program as a solution to a problem. Your instructor may allow you access to selected resources during the examination. As mentioned earlier, your instructor requires you to use LockDown Browser on examinations. Because of the cumulative nature of computer programming, you are advised to maintain a thorough understanding of topics covered early in the semester so as not to hinder your performance on examinations covering later chapters.

These are the tentative examination availability dates (note that all four examinations have a limit of seventy‑five minutes from the time you begin):

In the event of an excused absence, you may make up one exam if the make-up occurs within one week of the scheduled exam date. If logistics prevent the scheduling of a make-up within one week, your instructor may choose to substitute your final exam grade in place of that exam grade. If you miss more than one examination, you must contact your instructor to determine if, and how, you will be able to recover the points for the other missed examination(s).

Academic Honesty Students are expected to complete their own work regardless of circumstances. Peer assistance should be limited to the concepts discussed in class. The following activities are violations of the Academic Honesty Code for this course:

Under no circumstances should you post the details of any assignment on a public discussion board, forum, or newsgroup. Likewise, you should not post any portion of your solution to any assignment, even in progress, on such a public resource. Making such information available on the Internet will be considered academic misconduct.

Your instructor will follow the procedures outlined in the Academic Honesty Code section of the Catalog and Student Handbook should he perceive a violation of the Code. Unless there is evidence that the violation was not due to any action on the part of a specific student, each student involved in the violation will be penalized.