CMSC 280:  Programming in a Second Language - Java
 (Fall 2017)
(as of August 21, 2017)

Instructor: Scott McElfresh (pronounced  mac' - el- fresh)
Ruffner 346     Phone:  x2249
Email:   ProfScottMcElfresh @ (checked more frequently) or  mcelfreshsa @
Office Hours: 
- MWF 3-3:45pm 
- Th  12:30-1:30pm
- or when I am in my office with the door open
- or by appointment
Other times may be announced in class or on the website.

Course Web Page:  Most of the handouts in this course will be available through this World Wide Web address.   

Canvas will be used for submission of some assignments and recording of grades on individual assessments.  You may wish to set up Canvas to send you an email when grades and/or feedback is entered.   NOTE:  Canvas does not always calculate course grades correctly.  The relative weights are in this syllabus.

Course Description:   
From the catalog:
"A programming-intensive course that gives students a comprehensive introduction to a language not taught in the introductory sequence. Examples of languages which may be taught are Ada, Fortran, and Java. May be repeated for credit when language changes. Prerequisite: CMSC 160 or consent of the instructor. 3 credits."

Course objectives:
At the end of the course, a successful student will be able to:

Textbooks:  There are two required textbooks for the course:

Technology:   It is assumed that you have a laptop that you can bring to class and can install software on if necessary.     The software is free.

Pictures, Audio, and Video:
Students should not take audio or video recordings in the classroom without prior permission.    Still pictures of the board may be taken as a supplement to note-taking.    However, these should not be posted online or elsewhere such that they might be shared with someone not enrolled in the class.

Attendance:   As some work will be done in class, including groupwork, attendance is especially important.   More than 5  unexcused absences may at my discretion result in a loss of one letter grade in the course.    Missing more than 10 class periods may at my discretion result in a grade of F for the course.

Exercises (Homeworks/Labs): 
The exercises in thiscourse will include readings, program commentaries,  program/script creation, or other work.       They will come from three scenarios:
i)  Lab.   Some class days will be "lab days" where there will be an exercise to be completed in class.  Some of these will be individual assignments while others will be group or paired work.    Labs will be due at the end of the class period.    You will need to have your laptops on these days.    Late submissions due to absence will require permission and may incur a 50% penalty.     These days will be announced ahead of time.
ii)  Homework.    These will be assignments to be completed outside of class.   Some of these may be due the very next class period while others may have a longer handin horizon, depending on the nature of the assignment.      Late submission will require permission and may incur a 50% penalty.
iii)  Combination.    There will be assignments that contain a portion to be done in class and a portion to be done outside of class.    Late submission will require permission and may incur a 50% penalty.

Due the varying nature and horizon of assignments, some assignments will be worth more than others.   In order to determine the overall exercises grade, I will add up the number of points received on exercises, and divide that number by the total number of points that it was possible to recieve on exercises.

There will be quizzes throughout the semester.   These will typically take the form of short (5-15 minutes) sets of questions.   If more than 5 quizzes are given, the lowest two quiz scores for each student will not be calculated into the course grade.    There will be no makeup exams given without proper medical documentation.

Final Projects: 
During the scheduled Final Exam slot, there will be final project presentations.  More details on this will be announced as the time approaches. 

The relative weight of each item in determining your course grade will be as follows:
  Exercises: 60%

Quizzes: 15%

Final Project: 25%
Course Grades will be assigned as follows: 
Course percentage   Course Grade
90 - 100
A-, A
80 - 89.9
B-, B, B+
70 - 79.9
C-, C, C+
60 - 69.9
D-, D, D+
 0  - 59.9 
+'s will be assigned in the top 2 percentange points of the range.
-'s will be assigned in the bottom 3 percentange points of the range.
SPECIAL NOTE:  Exercises that are not handed in, or quizzes and exams not taken will count as a 0.    Canvas does not always calculate these accurately.

Unless otherwise specified, all work is assumed to be your own.   You are encouraged to discuss the exercises with other students, but you must write up your own solutions.  Some guidelines:
Efforts will be made in class to describe these issues.  If you have any questions as to what is appropriate and what is not, please ask me about it.

Academic Honesty:     
Longwood University is an academic community that subscribes to an honor system.   By accepting membership in this community, we all assume the obligation to be trustworthy in all pursuits.  Violations may receive grade penalties in the course and be referred to the Honor Board, which may impose additional penalties.

Tentative Topic outline:

Week Dates Topics
1 Aug 21 - 25 Java introduction; Using Eclipse; Objects
2 Aug 28 - Sept 1 Inheritance
3 Sept 4 - 8 Objects with State
4 Sept 11 - 15 Objects with State; API
5 Sept 18 - 22 Text-based work
6 Sept 25 - 29 Java collections Framework
7 Oct 2 - 6 Interfaces
8 Oct 9 - 13 Built-in algorithms
9 Oct 16 - 20 Development Environments
10 Oct 23 - 27 Fall Break; Development Environments
11 Oct 30 - Nov 3 Working with files
12 Nov 6 - 10 GUI
13 Nov 13 - 17 GUI; TBA
14 Nov 20 - 24 TBA; Thanksgiving
15 Nov 27 - Dec 1 TBA
Dec 4 Final Project Presentations

A detailed day by day calendar will be kept up-to-date on the course website.