COMP 1210 Fundamentals of Computing I - Spring 2018

Class - Sections 001-007 (10:00am-10:50am MW), Shelby 1103
Class - Sections 008-012 (11:00am-11:50am MW), Shelby 1103
Lab Section 001 (12:00pm-01:15pm MW), Shelby 2119
Lab Section 002 (12:00pm-01:15pm MW), Shelby 2122
Lab Section 003 (12:00pm-01:15pm MW), Shelby 2125
Lab Section 004 (01:30pm-02:45pm MW), Shelby 2119
Lab Section 005 (01:30pm-02:45pm MW), Shelby 2122
Lab Section 006 (01:30pm-02:45pm MW), Shelby 2125
Lab Section 007 (03:00pm-04:15pm MW), Shelby 2119
Lab Section 008 (03:00pm-04:15pm MW), Shelby 2122
Lab Section 009 (03:00pm-04:15pm MW), Shelby 2125
Lab Section 010 (04:30pm-05:45pm MW), Shelby 2119
Lab Section 011 (04:30pm-05:45pm MW), Shelby 2122
Lab Section 012 (04:30pm-05:45pm MW), Shelby 2125

Course Staff

 Professor: Dr. J. Cross
Office: 3127D Shelby Center
Phone: 844-6315
Web Page:
Office Hrs: 1:30pm-3:00pm TR or by appointment
If you plan to see me during office hours, please send me email or let me know before or after class. No office hours will be held during finals week.
Lab Instr:

Robert Anderson
Office Hours: by appointment, Shelby 3137
Lab Coordinator for Attendance and Help Sessions
1210-001 (12:00pm-01:15pm MW), Shelby 2119
Lab Instr:

Hairuo (Lusia) Xu
Office Hours: by appointment, Shelby 3137
Lab Co-Coordinator for Web-CAT Tests and Help Sessions
1210-004 (01:30pm-02:45pm MW), Shelby 2119
Lab Instr:

Ananya Tadakamalla
Office Hours: by appointment, Shelby 3137
1210-002 (12:00pm-01:15pm MW), Shelby 2122
1210-005 (01:30pm-02:45pm MW), Shelby 2122
Lab Instr:

Yunfan Rao
Office Hours: by appointment, Shelby 3137
1210-003 (12:00pm-01:15pm MW), Shelby 2125
1210-006 (01:30pm-02:45pm MW), Shelby 2125
Lab Instr:

Alexicia Richardson
Office Hours: by appointment, Shelby 3137
1210-007 (03:00pm-04:15pm MW), Shelby 2119
1210-010 (04:30pm-05:45pm MW), Shelby 2119
Lab Instr:

Sutanu Bhattacharya
Office Hours: by appointment, Shelby 3137
1210-008 (03:00pm-04:15pm MW), Shelby 2122
1210-011 (04:30pm-05:45pm MW), Shelby 2122
Lab Instr:

Babak Soorchaei
Office Hours: by appointment, Shelby 3137
1210-009 (03:00pm-04:15pm MW), Shelby 2125
1210-012 (04:30pm-05:45pm MW), Shelby 2125

Course Description
COMP 1210 introduces the fundamentals of computing as well as certain aspects of software engineering which will enable you to construct logical, readable, and correct programs. An object-oriented approach to problem solving and program design will be emphasized in the class and reinforced in the lab.

Course Meetings
COMP-1210 has three types of meetings: class and lab (Mon/Wed) per the schedule above, and an optional Help session (Fri). The class is divided into multiple sections that meet together for class and separately for lab. Students are expected to attend all meetings of class and their assigned lab. The lab is conducted by graduate teaching assistants (GTAs). Note that access to Shelby in the evenings and on weekends may require you to swipe your AU ID card. You should verify that your ID card works for card swipe access to Shelby, and if it doesn't, you can request that this be added ( Engineering CardSwipe Request).

Course Outline/Schedule
A "tentative" course outline follows. Note, each chapter concludes with one or more sections on graphics which we may or may not cover. All exams are comprehensive over the material covered to date, although Exams 1 and 2 will focus on the chapters indicated. The Final Exam is comprehensive in the traditional sense.

Module Reading from Text
01 Introduction Chapter 1
02 Data and Expressions Chapter 2
03 Using Classes and Objects Chapter 3
04 Writing Classes Chapter 4
Exam 1
Wednesday, February 14, 2018
05 Conditionals and Loops Chapter 5
06 More Conditionals and Loops Chapter 6
07 Arrays Chapter 8
08 Object-Oriented Design Chapter 7
Exam 2
Wednesday, March 28, 2018
09 Inheritance Chapter 9
10 Polymorphism Chapter 10
11 Exceptions Chapter 11
Final Exam - Comprehensive
Sections 001-007: Tuesday, May 1, 2018
(8:00 a.m. - 10:30 a.m.)
Sections 008-012: Wednesday, May 2, 2018
(12:00 p.m. - 2:30 p.m.)

Textbook and Class Notes
  • Textbook (required) - Java Software Solutions (9th ed.) by John Lewis and William Loftus, published by Pearson (ISBN-13: 978-0134462028 or ISBN-10: 0134462025).

  • Class Notes (see "Files" link in Canvas) - The class notes for each topic noted below are contained in a ZIP file that includes the class notes (PDF), example programs, and review questions. I recommend that you create a folder for COMP1210 and within it, create a folder called Class_Notes. Save the ZIP file in Class_Notes, and then unzip it (Windows: right-click on the file and select "Extract All") (Mac OS X: simply open the ZIP file to extract the files). Be sure to unzip (extract) the ZIP file before using the PDF file or opening the example programs. Note that for security reasons the links in the PDF files to the example programs and questions will likely not work. You can open these in jGRASP by double-clicking on the file name in the the Browse tab. Note that the "2 per page" PDF is intended for printing.

    You may need to download and install Adobe Acrobat Reader if your computer does not have a suitable PDF reader. If you download Acrobat from this link, be sure to uncheck the box for free "McAfee Security Scan Plus" (unless you really want it).


We will be using the following software, which is installed in the Engineering computer labs: jGRASP, Java (JDK), Checkstyle, and JUnit. If you plan to use your personal computer for lab assignments, you'll need to install jGRASP, Java (JDK), and Checkstyle to get started. Then you'll need to install JUnit about midway through the course. We will also be using Web-CAT to grade your lab projects (programming assignments). Web-CAT requires no installation but does require you configure jGRASP to link to it if you want to submit your projects directly from jGRASP.

  • Engineering Account - In addition to your AU computer account, you will need an engineering account in order to access the computers and use the software in the Shelby 2119, 2122, and 2125 computer labs. These accounts are generated automatically from course rolls. If you add the course after classes begin, your account should be available the following day.

  • jGRASP and Java - The jGRASP integrated development environment (IDE) and the Java 2 (J2SE) Development Kit (JDK) will be used in lab. The current versions for these are jGRASP 2.0.4_xx and Java SE Development Kit (JDK) 9.0.1 and 8u152. See web sites below for latest versions. If you want to work on the lab assignments and the examples from class on your own computer, you'll need to install the JDK and jGRASP. See the links and instructions below.

    Oracle Java Site (
    Be sure to download JDK 8u152 (or later) that DOES NOT include NetBeans. After you have downloaded the install file for your operating system, double-click on the file in your file browser (e.g., Downloads) to begin the installation process. Note that once you begin the Java installation, it may take a few minutes depending on the speed of your computer. J2SE Documentation is available online at Java API as well as from the jGRASP Help menu when you are editing a Java source file.

    jGRASP ( On the jGRASP home page, click the "Download" link, then select the appropriate jGRASP installation file for your operating system from the list below.
          Windows - jGRASP exe
          Mac OS X - jGRASP pkg
          Linux - jGRASP zip
    After you have downloaded the install file, double-click on the file in your file browser (e.g., My Documents) to begin the installation process. Installing jGRASP should take less than 30 seconds.

    (1) Since jGRASP is written in Java, you should install the JDK prior to running jGRASP. The JDK includes the Java compiler (javac) as well as a copy of the JRE, so be sure to install the full JDK rather than only the JRE.
    (2) If you are updating from a previous version of jGRASP, just install the new version right on top of the previous one (i.e., no need to uninstall the old version). If you need additional information, please refer to jGRASP Tutorial 1 Installing jGRASP for step by step instructions.
    (3) If your computer is less than five years old, it should be be able to run jGRASP and Java efficiently. Otherwise, you should use a computer in one of the engineering labs: Shelby 2119, 2122, or 2125 (where your lab section meets), Shelby 1202, Shelby 2210, or Broun 123.

  • jGRASP Introductory Videos

    1. Getting Started
    2. Getting Started with Interactions

  • jGRASP Tutorials - You are strongly encouraged to work through Getting Started (2.0) since this will enable you to use jGRASP more effectively for the projects. You should then review the other tutorials on an "as needed" basis. For the links below, left click to open or right click to save (Save Link As...). Note, you will need to have Adobe Acrobat Reader (other suitable PDF reader) installed to open this PDF file.

    1. Installing jGRASP
    2. Getting Started (2.0)    
    3. Getting Started with Objects (a.k.a. Objects First)
    4. Interactions
    5. Control Structure Diagram (2.0)
    6. The Integrated Debugger
    7. Projects
    8. UML Class Diagrams
    9. The Workbench
    10. Viewers for Data Structures
    11. The Viewer Canvas (2.0)

  • Checkstyle and JUnit - Checkstyle is a commonly used to check programs for comments and proper formatting, and JUnit is a framework testing programs. Both of these are installed in the lab, and we'll be using them in conjunction with grading. Checkstyle will be used on all of our projects, whereas JUnit will used for Projects 7 through 11. If you want to install Checkstyle and/or JUnit on your personal computer, you'll need to download the ZIP files and unzip them.

    Recommendations: On Windows, you should place the Checkstyle and JUnit folders in your "Program Files" folder. On Mac OS X, you should create a bin folder in your user folder (e.g., yourusername/bin) and then place the Checkstyle and JUnit folders in your bin folder.

    After you have unzipped Checkstyle and JUnit in their respective folders, you should close and re-open jGRASP. This will allow jGRASP to try to find Checkstyle and/or JUnit on startup. You can also configure each tool manually by using the Tools menu. For example, click Tools > Checkstyle > Configure to see if "Checkstyle Home" was correctly set to the folder containing the Checkstyle JAR file. If you need assistance installing either of these programs on your computer, you should bring your computer to the Friday Help session or ask your lab instructor for assistance.

    1. Checkstyle 8.1 - download the ZIP file.
    2. JUnit 4.12 - Download the ZIP file. You will not be required to use JUnit with your projects until after mid-term.

  • Web-CAT - Web-CAT will be used to grade your lab activities and projects. You will be able to submit your files directly from jGRASP, as well as login to the Auburn Web-CAT home page and upload your assignment files manually. Web-CAT Guidelines are available at the top of the Lab page. If you need assistance configuring Web-CAT in jGRASP, just ask for assistance during your lab session or in the Friday Help session.

Course Grading

Your grades and attendance for the course will be posted on Canvas. Your overall course grade will be determined by your performance on three exams (two midterms plus a final, all comprehensive) and lab assignments, which include activites, quizzes, and projects. You may also receive bonus points for attendance.

The these items will be weighted as follows:

  • 15% Exam 1
  • 15% Exam 2
  • 30% Final Exam
  •   5% Lab Activities (in-lab)
  • 10% Lab Quizzes
  • 25% Lab Projects
  • Attendance Bonus Points: Up to two bonus points will be added to the final average computed above. See ATTENDANCE POLICY below for details.
Letter grades for the course will be assigned based on the standard 10%-point scale. For example, a student making 75 on the first midterm, 85 on the second midterm, 90 on the final, and a 93 average on the labs assignments and quizzes, will have 75 * 0.15 + 85 * 0.15 + 90 * 0.30 + 93 * 0.40 = 88.20 for the course average. If the student earns the two bonus points for attendance, the final course grade will be 88.20 + 2 = 90.20, and thus will be assigned the letter grade A for the course.

Any changes to the dates for Exams 1 and 2 will be announced at least one week in advance. The Final Exam will be given at the time indicated by the University final exam schedule. Appeals for exam re-grading must be made in writing to me no later than one week after the exam is returned to you. In the appeal, you must describe (a) exactly what portion you wish to be re-graded and (b) the reasons you are requesting the re-grading in a clear, concise manner. Only written appeals will be accepted (preferably via email).

Help Sessions
  • COMP 1210 Help Sessions - all sections
    Fri 10:00 a.m. - noon and 1:00 p.m. - 3:00 p.m. (unless indicated otherwise in Canvas), Shelby 2122 (and Shelby 2119 if needed)

  • College of Engineering Tutoring - all sections
    See the following link for more details.

  • Coding Practice - CodingBat provides coding exercises for Java. In each exercise you write a few lines of code in the body of a method so that the method returns a specified value based on one or more parameters. CodingBat checks your solution with numerous test cases and shows whether you passed or failed each test. Based on these test results you modifiy your solution try again. I encourage you to do some of these to ensure that you understand the basics of programming in Java.

Course Policies
  • ATTENDANCE POLICY: It is important for you to attend all class meetings. Information provided during class meetings is vital to your understanding the material and ultimately to earning a good grade. You are responsible for all material presented in class and in lab whether you are present or not. Graded materials will be returned only in person. If you are excessively late to an exam, I reserve the right to count you absent from the exam. If you miss an exam, you will only be allowed to make up an exam per the "MAKE UP WORK" policy below.

    Bonus Points for Class Attendance/Participation: In an effort to encourage you to attend class and participate in the discussion, you have an opportunity to earn bonus points. The bonus points are also intended to help you get to the next higher letter grade if your course average is on the border. To faciliate the recording of attendance, you need to be in your a seat of choice by the beginning of the second full week of class. The attendance GTA will take attendance using a sign-in sheet for each row usually during the first few minutes of each class. In order to be marked present, you must sign the sheet and remain in class. Signing the attendance sheet for another student will be considered academic dishonesty for both parties and may result in an F for the course. You may be absent or tardy for up to two classes with no loss of bonus points. Each additional unexcused absence or tardy reduces your bonus points by one. With four unexcused absences or tardies you will receive no bonus points. Bonus points will be added to your course average to arrive at your final course grade. It is your responsibility to contact the attendance GTA within a week of any excused absence or tardy. If you have a valid AU excuse for an absence, you should provide the attendance GTA with a copy of your excuse on the day you return to class OR prior to missing class if you know you are going to be absent (e.g., to attend AU sponsored event).

  • MAKE UP WORK: Work missed during the semester will assigned a grade of zero points. Make up work will be given only for legitimate reasons with appropriate written verification (see the Tiger Cub). It is always your responsibility to initiate arrangements to make up missed work. If you know you may miss an exam, you should let me know before the exam. However, in any case if you intend to make up an exam, you must make up the exam you missed before I return graded exams to students (which is usually within one week of the exam).
  • GRADED MATERIAL: You are required to keep on file all graded materials in case there is any question about your course grade.
  • CHEATING: You are responsible for adhering to the Academic Honesty policies described in the Student Academic Honesty Code. For information specific to lab assignments, see Lab Guidelines, page 3, Academic Dishonesty.
  • AUDITORS: According to the policy in the University Bulletin, students who are officially registered as auditors of this course and "attend rarely or not at all will have non-attendance of the course indicated on their records." It is your responsibility to check in with me at the beginning of the quarter so that I can learn to recognize you and give you credit for attending. It is the policy of the university that all students attending class must be enrolled in the class, either for a grade or as an auditor.
  • SPECIAL ACCOMMODATIONS: Students who need special accommodations in class, as provided for by the American Disabilities Act, should arrange a confidential meeting with the instructor during office hours the first week of classes - or as soon as possible if accommodations are needed immediately. At the time of your meeting, an Accommodation Memo should be available to your instructor online from the Program for Students with Disabilities web site. If you have not made arrangements but need accommodations, make an appointment with the Program for Students with Disabilities, 1244 Haley Center, 844-2096. Accommodations for exams must be arranged at least one week in advance.
  • GRADE CONFERENCE: Any student receiving a failing grade or a grade that could place them in academic jeopardy, on any element of the course, is urged to meet with me as soon as possible.
  • CLASS ANNOUNCEMENTS: Activities, quizzes, projects, and exams are posted on the course Calendar in Canvas. Class announcements are made on the first page of each of the 11 course modules. It is your responsibility to check Canvas regularly.

Copyright 2018 - All rights reserved.