CSC 1550
Computer Science II
A required course in the FSU CS and CIS BS program
Fall 2013 -- 3 credit hours


Meeting in Edgerly 202
  CSC1550-01:
Tuesday, Thursday 12:30PM-1:45PM
Sep 4-Dec 10
  CSC1550-02:
Wednesday, Friday 12:30PM-1:45PM
Sep 5-Dec 11


Contact Information

Instructor:Stephen Taylor
Office: Edgerly 312A
Office hours: W 2PM-4:30PM
Web page: http://computersystemsartists.net/
Email: staylor@fitchburgstate.edu
Office phone: 978-665-3704
Home phone: 508-867-9288

Catalog description

This course builds on the concepts covered in Computer Science I. Topic covered include inheritance, polymorphism, recursion, advanced GUI programming, exception handling, and input/output handling. Students use an integrated development environment to create, compile, run and debug programs. Textbook

Course goals

Students will learn concepts of object oriented programming with Java and practice their programming skills

Course Objectives

Upon successful completion of this course, a student will have demonstrated knowledge of:
  1. Data Structures in Java: Arrays and Strings. Simple Sorting and Searching Algorithms. Multidimensional Arrays.
  2. HTML and Applet Basics. Event Driven Programming. The Applet Life Cycle. Interactive Applets.
  3. How to use int(), start(), stop(), destroy(), paint(), repaint() methods within applets.
  4. Graphics Basics. How to use draw String() method. How to use set Font() and set Color() methods. How to set an appletís background color. How to create graphic objects.
  5. The concept of Inheritance. How to extend classes. What is a derived class.
  6. Public and Private variables and methods. Constructors with and without arguments. How to access Super class methods that have Constructors.
  7. Advanced Inheritance concepts. Abstract Classes and Dynamic Method Binding
  8. Abstract Windows Toolkit
  9. Using Layout Managers and the Event Model
  10. Exception Handling in Java. The concept of Exception. How to throw and catch and exception?
  11. Input/Output and File Techniques. File organization and streams. How to use streams. How to write a file and to read data from a file. Writing and reading formatted file data.
This is a project-oriented course, and during the term we will write a number of small programs, 50-500 lines of code and commments, at roughly the rate of one a week.

Attendance policy

This is partly a lab course; that is why it is taught in a computer lab. You must be present to win. There will be a written in-class lab once a week, and I will not accept, although I may excuse, labs which are not prepared in class.

Ten percent of the grade is based on class-room participation. During the first several meetings of the course, I call the roll. Once I learn names and faces I stop calling the roll, but I continue to be interested in your presence.

Course resources

There is no required textbook.

Here are some useful links:

I intend to place some programs that we discuss in class on the web .

Projects

This is a project-oriented course, and it is absolutely essential for you to work on each project. The point of the course is to practice programming, and of course to improve with practice. Learning to program is like learning a human language in that it involves a number of different skills, and you must practice each in order to master it. These skills include: writing code of course, but also reading code, writing specifications, writing documentation, debugging. As the course progresses, we will consider each of these from different perspectives,
Project TopicProject due date
character counterSept 13
secret codesSept 27
New lines for oldOct 4
Animated PuppetOct 19
Another PuppetNov 1
Puppet and friendNov 15

Final Exam

There is a final exam, and two or three mid-term exams, all of which are in very similar formats. Because the time available for an exam is short, I usually test code reading skills, rather than writing skills, on exams.

Topics

Grading policy

Class Participation: 10%
In-class labs: 20%
All exams: 30%
Programming Projects: 40%

Late work

Deadlines are made to be bent, but exceptions create extra work for me. Assignments are due at the beginning of class. Work received after 12:35 AM is late, unless Blackboard is down. I may give credit or partial credit for late work, but you should talk to me as soon as you know it will be late. I will always give at least partial credit for partial work, so turning in something incomplete but on time is a sensible strategy.

I do not consider homework which is emailed to me to be turned in on time, no matter when you sent it. Use the Blackboard dropbox for the assignment.

There are no makeup or early exams, but I may excuse an exam for a good story, presented in advance, like your grandmother getting married that day in Provincetown.

Peculiar procedures

There are non-programming activities which are included in each project. Sometimes I will ask you to interpret your results, or provide charts or graphs.

For every assignment, I expect you to turn in a Development diary. The development diary will be at least half a page long, and I actually like longer ones better. It will be neatly word-processed and beautifully formated. It will tell me about your successes and frustrations in coding up the program, which blind allies you went up, how you figured out where you went wrong, etc. If you never make any mistakes at all, you can tell me how how avoid them, because I'd sure like to know! Part of your grade for the project will be based on this development diary.

Each student is responsible for completing all course requirements and for keeping up with all activities of the course (whether a student is present or not).

Academic Honesty

I expect you to be so interested in your projects and homeworks that you discuss them with everyone, including your mom, your little brother, and other members of the class (who will at least know what they're being sympathetic about.) So I won't be too surprised if several people come up with the same idea, or even the same programming trick. But I want you to do each homework yourself, and I don't want you to share typing, even if you both worked on the problem together, and you can't really tell anymore who came up with what. (Except of course for group projects, for which the group will be designated in advance.) To keep from confusing me, you should mention everyone you talked to and every web site you looked at in your development diary. You can skip mentioning your little brother, if you think he wasn't any help at all...

I consider it plagiarism to share typing or fail to give credit to other peoples' ideas.

Fitchburg State has an Academic Dishonesty policy, which can be found in the college catalog. Penalties for academic dishonesty, including submitting work which is not your own, and assisting other students on examinations, can be severe.

Accomodation

If you require course adaptations or accommodation because of a disability or acute medical condition or if you require assistance in the event of an emergency evacuation of the classroom, please see the instructor as soon as possible. Students with disabilities are encouraged to register with the Office of Disability Services on the 3rd floor of the Hammond Building.