COSC 237, Section 002:
Introduction to Computer Science II
Spring 2008
Room: Lectures: YR 401, Labs: YR 402
Time:
Monday, 12:30-2:220, Wednesday 12:30-1:30, Lab: Wed., 1:30PM-2:30 PM
Textbook:
Final Exam: The final exam will be held from 12:30-2;30pm
on Wednesday, May 14.
Course Description:
This course provides a continuing
introduction to problem solving, algorithm development, and
computer programming. We will discuss basic concepts of
object-oriented programming, including design, inheritance,
polymorphism, and generic types. Data structures will be introduced,
including both implementation and use. Software development for
graphical user interfaces will be introduced.
Java:
This experimental section of COSC 237 marks the introduction of the
Java programming language for
Introduction to Computer Science at Towson University. I have gathered
some resources that students having
taken COSC 236 in C++ might find useful. Please let me know if you
have any other suggestions.
Software:
All of our programming in this class will
be done with the Java programming language. Java can be downloaded
from the Java Homepage if you are
using Windows or Linux. If you are using a Mac, OS X should ship with
Java 1.5 installed, or you can see Apple's Java site for more
information.
We will be using two software development
tools in this class:
Dr. Java is an instructional
environment for writing Java Programs. Developed at Rice University,
Dr. Java features an interpreter that can be used to interactively
execute lines of Java programs.
Some short notes on Dr. Java might
help you get started.
- Eclipse is a professional
quality integrated development for Java.
Both of these tools are available online for free download, for all
major operating systems. These tools will be introduced in class as
needed.
Computing/Storage Issues:
We will use the machines in
the lab to start work on the lab assignments. As these are public
machines, you'll want to make arrangements for saving your work. You
can use your Tiger
File space or WebDisk
to upload files. As the lab machines are also equipped with USB
connection, you can use USB memory sticks if you want, but I don't
recommend it - they are too easy to lose.
You will submit all lab assignments electronically: please see the
instructions for electronic
submission.
Don't expect to be able to do all of the lab assignments during the
one-hour lab session. You can use your own computer (see above). See
the COSC labs web
pages for detail on lab hours and tutoring services.
Course Organization:
Coursework will consist of weekly lab assignments,
two tests,and a final exam. Although they do not account for a large portion of the grade, the lab assignments must be completed in order to do well on the exams.
Assignment Handout & Submission
The syllabus and all assignments will be posted on the class
web site: they will not be distributed on paper. Please check the
site regularly for updates, assignments, solutions, and other relevant
information. All of this information will be accessible via links from
the class schedule page.
All assignments will be turned in electronically. Please follow the
instructions for electronic submission.
Evaluation:
- Homework:
10%.
- Participation and Attendance:
5%.
- Test 1:
25%.
- Test 2:
25%.
- Final (Wednesday, May 14):
35%.
Grading Policy
|
A: 93-100 |
A-: 90-92.9 |
|
B+: 87-89.9 |
B: 83-86.9 |
B-: 80-82.9 |
|
C+: 75-79.9 |
C: 70-74.9 |
|
D+: 65-69.9 |
D: 60-64.9 |
|
F: < 60 |
.
Policies:
- Attendance will be taken for each class
session. Coming to class shows your commitment to doing the work
and learning the material. If you can't be bothered to come to
class, I may find it hard to be bothered if you have complaints
about your grades. Class participation and attendance count for 5%
of your grade.
- Please come to class on time, and expect to stay for
the entire class. There may be times when circumstances beyond
your control make it necessary for you to arrive late and/or leave
earlier. Barring such circumstances, please arrive for an on-time
start to lectures and labs.
- This class has two quizzes and one final exam. As these tests make
up the bulk of your grade, your attendance for tests is particularly
crucial. If you miss a test without presenting verifiable,
documentation of the reason for your absence, your grade for that
test will be zero. This information must be presented in a timely
manner: if you don't provide documentation within 1 week of the test,
your grade will be zero.
-
The weekly lab assignments will be the homework for this
course. You will start working on each assignment during lab,
and hand it in before the start of the following lab session.
-
Although the homework only counts for 10% of your semester
grade, it is vitally important that you complete the
assignments: most people will find it extremely difficult to do
well on the exams if they do not do the homework.
- You have the option of doing the homework individually or with a
partner. Working in pairs can be helpful for people in introductory
computing courses, but this should not be an excuse for one partner
to do all of the work: both partners will be expected to understand
the work that was done. If you choose to work with a partner, you
should hand in one assignment with both names on it. You may choose
to work with different partners on different weeks, or to work
individually on some assignments and with partners on others, but
you may not work with more than one partner. Resolving any
conflicts that arise due to work done with a partner is your
responsibility.
- All homework will be handed in on the due date. Late
assignments will not be accepted. However, since the material in
this class is cumulative, you should complete all assignments,
even if you will not get credit for them.
- Documentation is a crucial part of effective software
development. All assignments should be documented, using styles
like those discussed in class or in the text. Solutions will not
be considered complete, and will therefore not get full credit,
without proper documentation.
- Your work should be easy to read: there are many
papers to be graded and we do not have the time to decipher
cryptic handwriting. If possible, type your work. Otherwise,
please write neatly and clearly. In any case, please explain your
answers clearly and succinctly. No credit will be given for
answers that we cannot understand.
- The work you turn in must be your own. You can feel free to
discuss assignment questions with others, and you may need to work
in teams during lab times, but the written assignments that are
turned in must be your own work. I may use automated tools to
identify instances of plagiarism. Cheating in any form -
including copying someone else's work or letting your work be
copied - is unacceptable at Towson University. This includes the
use of online "coder for hire" services. Do not turn in
work that has been copied from somebody else, do not let your
work be copied. Anyone found cheating (on either side, copying
or being copied) will receive an F for the course and a letter
will be sent to the dean. Any incidents of cheating will be
handled through appropriate administrative channels.
- Towson University does not post grades. The department
office will not inform you about your grade after a course is
completed since you can check your grades online.
- University policy states that students may not
repeat a course more than once without prior permission of the
Academic Standards Committee.
-
Please don't use cell phones, pagers, laptops, etc. in class.
Syllabus:
- Introduction of Java: Translating from C++.
- Objects as References in Java
- Object-Oriented Programming introduction
- File input/output
- Encapsulation and Access Control
- Inheritance
- Polymorphism
- Generics
- Introduction to Algorithm Analysis
- Recursion
- Stacks
- Queues
- Linked Lists
- Trees
- Unit Testing
- Graphics