CSCI 135-10Fundamentals of Computer ScienceSpring 2016

Instructor: Michael O'Conner

Office: SS 401

Office Hours: MWF 1:00-2:00 (or by appointment, or drop by office)

Phone: 243-2217

E-mail: (note “er” in oconner)

Overview:

This course is designed to give you a good general understanding of software development and logical reasoning.It focuses on introducing general programming concepts as well as object oriented programming concepts using the Java programming language.We will consider those concepts, as well as provide a number of hands-on opportunities for you to become proficient in their use.

Upon completing this course, the successful student will be able to:

Understand the basic components of a computer and how they work together.

Declare and understand the difference between primitives and object data types

Create UML diagrams based on requirement descriptions

Instantiate and use classes from the built-in Java library, as well ascreate your own custom classes

Create graphical programs using appropriate layout managers and event handlers

Implement appropriate looping and control structures to solve problems

Implement and understand method overloading and method overriding

Create test cases to aid in debuggingprograms

Read from a file, iterate through a file, and manipulate the data within a file

Attendance:

Attendance is mandatory. However, I realize there are times when you must be absent. Please give me advance notice of any absences.

Class consists of lectures Monday and Wednesday from 10:10 to 11:00 in ED 312, with a Thursday lab in FA 210from 10:10 to 11:00 for section12and a Friday lab in LA 206 from 10:10 to 11:00 for section 11.

Generally, you are welcome to attend the other section’s lab (as space allows).

Grading:

I will make an Excel spreadsheet that you can download from Moodle.

It will show the homework assignments, their point values, and their due dates.

I recommend you record your scores there as work is graded, so you can see how you are doing in the course.

The midterm and final will each consist of an exam and a programming assignment.

All Assignments are to be submitted on Moodle.

Because some students use earlier versions of the text, which have different assignment numbers than the current text, I will have each assignment written out on Moodle, for you to view or download.

Each program must have its own Eclipse Project, appropriately named:

PP_<ch #.program#>_<first initial, last name>_135

So my project for Programming Project 2.7 would be named:

PP_2.7_moconner_135

For Moodle projects with no assignment number, my project would be: PigGame_moconner_135

for the PigGame project, or HiLoGame_moconner_135 for the HiLoGame project

What you submit for grading is an “assignment” folder, having your name and 135 as its name. (Mine would have the name moconner_135) It contains each separate project folder you created, one for each project in that assignment. If there is only one project to submit, then there is only one project in the folder. After the project folders are in the “assignment” folder, you “zip” (compress) it, giving it the extension .zip. (Mine would be moconner_135.zip) Don’t use other compression formats. When you submit it, it will be recognized as a file, not a folder. (Moodle doesn’t like to upload folders) The submission link in Moodle will allow for the compressed “assignment” folder, plus an extra one or two items, in case you need to submit a corrected project or word document, for example. This will make better sense after you have submitted an assignment or two. We will practice this in a lab.

Put your name in a comment at the top of each Java file you create, especially in any one that contains

public static void main(String [] args)

If you are having trouble with an assignment, please eMailme about it, so I can help you before the due date.

Your subject line should be: help and the project name. Mine for problem 2.7 would be, for example,

help PP_2.7_moconner_135 Assignment

The CS Department also has someone in the student lounge (times to be announced) so you can get help there, too.

Grading Scale

100-90A, A-

89-80B+, B, B-

79-70C+, C, C-

69-60D+, D, D-

59-0 F

P/NP – In pass/not-pass grading, 70 or greater is passing (as determined by Computer Science Department policy, which requires a C- or better for passing).

Late Assignments:

Late assignments will not be accepted, except for very special circumstances.

Contact me if you feel your situation qualifies. Sorry for the inconvenience.

I plan to have some “extra credit” projects available, in case they are needed.

Requirements

Course Text:

Java Software Solutions 8th edition – Lewis and Loftus

(Earlier editions – for example, edition 6 or 7 – may work fine.)

Pre-requisites for this course:

CSCI 100 or consent of instructor

Required Software:

Java JDK

from

Eclipse

from

Suggestions:

It would be beneficial to read ahead, and ask questions in lecture or lab.

Feel free to set up an appointment if you need help. My goal is to help you understand and do well.

Collaboration:

I encourage you to help each other understand problems, but copying and plagiarism are not acceptable practices.The work you submit must be your own. If you are caught cheating, I will give you an F for the course.

Please refer to the Student Conduct Code to see the official university policy:

Incompletes:

“An Incomplete grade for a course is not an option to be exercised at the discretion of students. In all cases it is given at the discretion of the instructor….” Some guidelines for receiving an incomplete are listed in the catalog,and include: having a passing grade up to three weeks before the end of the semester, and regularly attending the course. “Negligence and indifference are not acceptable reasons.” If you feel your situation has special circumstances, contact me to discuss your options.

Also note that there may be financial aid implications.

Late Drops:

The University’s policy on drops after 45 days of instruction is very specific. The Computer Science Department follows this policy rigorously. Here are five circumstances under which a late drop might be approved after that "45 days" deadline is passed: (1) registration errors, (2) accident or illness, (3) family emergency, (4) change in work schedule, (5) no assessment of performance in the course. Except in very unusual circumstances, I will approve late drops only if there is documented justification for one of those circumstances.

Disabilities:

This course is accessible to and usable by otherwise qualified students with disabilities. To request reasonable program modifications, please consult with the instructor. Disability Services for Students (DSS) will assist the instructor and student in the modification process. For more information, visit the Disability Services website at

Class Etiquette:

Be respectful of your fellow classmates.

Call me anytime if you have a question.

Profanity and Obscenity will not be tolerated in class or in assignments.

Special Dates:

Monday 25 January – Classes Begin

Monday 15 February–Presidents’ Day [No Classes]

Sunday 13 March –Daylight Savings Time begins

Monday 4 April –Spring Break begins [No Classes until 11 April]

May 9 – 13 –- Final Exam Week [No Classes]

Tentative Schedule:

Week 1 –Syllabus, Course Overview, Eclipse IDE, Chapter 1 Introduction

Week 2 - Chapter 2Data and Expressions

Week 3 - Chapter 2 Data and Expressions, continued

Week 4 - Chapter 3Using Classes and Objects

Week 5 - Chapter 4Writing Classes

Week 6- Chapters 4Writing Classes, continued

Week 7 - Chapter 5Conditionals and Loops

Week 8 - Midterm – Monday, March 14

Week 9 - Chapter 5Conditionals and Loops, continued.

Week 10 - Chapter 6More Conditionals and Loops

Week 11 - Spring Break – No classes

Week 12- Moodle– Fit or Fat

Week 13 - Chapter 6More Conditionals and Loops, continued

Week 14 - Chapter 7 Object Oriented Design

Week 15 - Review

Week 16 - Final