SPRING 2020
COSC 237.002: Introduction to
Computer Science II
Instructor: -------------- |
Iliana Zimand Lab : Wednesday 1:00 p.m. -
2:40 p.m. Location: YR 402 |
Course Description: This course provides
an introduction to data structures and their implementations, computer systems
concepts, application of data structures in sort and search algorithms and the
software development process (TU catalog).
This is the
second course in a sequence aimed at introducing students to computer science
and programming. The emphasis is on object-oriented programming using Java, the
design and implementation of abstract data types, recursion, searching and
sorting, and non-linear data structures.
Course Objectives: Upon
completion of this course, students will be able to:
·
Improve program design and coding skills
acquired in CS I
·
Understand, explain and use fundamental
concepts of object-oriented programming, including abstract and generic data
types, encapsulation, inheritance, and polymorphism.
·
Use this understanding to write
object-oriented programs.
·
Understand the fundamental programming
concepts and use of a variety of data structures, including lists, stacks,
queues, and trees.
·
Use data structures to solve various computing
problems.
·
Understand and use basic concepts of
algorithmic analysis, with an introduction to the time efficiency of various
searching and sorting algorithms.
·
Design recursive and iterative solutions to
problems.
The overall
objective is to provide students object-oriented programming skills and a firm
foundation for further study in computer science or information systems.
Prerequisite: COSC 236
Prerequisite: MATH 211 or MATH 273. (TU catalog)
Class Organization: This course is crucial for almost any other computer class that you will take in the future so it is important that you do well. The class will consist of two lectures per week and one lab session. You are strongly encouraged to do all the class work assigned and participate in class discussions.
The software development environment for the course will be DrJava and it is available in our labs. As these are open labs and you are using public machines, you will want to make arrangements for saving your work (e-mail, Tiger File space, USB memory sticks, etc.)
Work Load: This class requires object-oriented programming and this implies a lot of individual work. How much? It depends on your previous exposure to programming, but in principle plan to work 6-8 additional hours per week in the open labs (or at home if you have a computer and the necessary software). There will be 3 tests (two semester tests, and a cumulative final exam), some unannounced quizzes, 5 programming assignments, and 14 - 15 lab assignments. Students will not be permitted to retain (or copy) exams. Any student wishing to review the exam in greater detail should make an office appointment and I'll be happy to go over it with you in person. Lab assignments and exercises will be given each week during lab period; they are due at the start of the next lab. In most cases you will be able to finish the lab assignments during the two-hour lab session. It is very important that you complete all labs and programming assignments: most students will find it extremely difficult to do well on the tests if they do not do the labs and the homework.
Note: Students who don't
already have a TU e-mail account should acquire one. This is the account
you should use to communicate with me and the TA.
Topics to be covered:
Books and References:
(Main
text) Building
Java Programs: A Back to Basics Approach, Reges and Stepp, Addison-Wesley, 2016
(Reference,
optional) Java
Programming, Program Design Including Data Structures, by D.S.
Malik, Thomson Course Technology, 2008.
Class
website:
http://orion.towson.edu/~izimand
Lecture notes, assignments, labs, tutorials, announcements, and other materials
will be posted here.
Software Downloads:
The program development environment used will be DrJava, a Java programming environment developed specially for students. It is available for free download at http://www.drjava.org. In addition, the Java Development Kit (JDK) must be downloaded here
Grading Policy:
|
NOTE: Towson University uses
the +/- grading system. The percentage intervals are as given in the table
below:
--- |
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+: 67% - 69.9% |
D: 60% - 66.9% |
--- |
--- |
F: 0% - 59.9% |
--- |
Course Policies /
Guidelines:
All course policies are fundamentally intended to sustain an atmosphere that is non-disruptive and conductive to learning.
2. Attendance: Class attendance is
essential to doing well in the course, and coming to
class shows your commitment to doing the work and understanding and learning
the material. Students are expected to attend each class meeting and attendance
is mandatory. This class is not just a lecture
and the lecture notes posted online are not a replacement for class attendance.
During the class session, I may use exercises, questions, and other approaches
that may challenge students to solve problems – student involvement in these
discussions is important and this course will weight attendance and class participation
as a small part of the final grade. Students who miss class meetings or
show a pattern of lateness without permission of the instructor will be
penalized with a reduction in grade.
The
following Attendance Policy was developed by the Computer and Information
Sciences Department for COSC 175, COSC 236 and COSC 237 courses, in an effort
to be consistent and to inform students of the attendance expectation in these
courses.
1.
Students are expected to come to
class on time and prepared.
2.
Attendance will be recorded at every
class session lecture and lab
3.
Your 3rd and each subsequent
unexcused absence will lower your grade by 5%.
4.
The equivalent of 2 weeks’ worth of
unexcused absences will result in an automatic F. No exceptions.
In accordance with University policy, student absences will
be excused under the following circumstances:
1.
Cases
of illness or injury that prevent attendance in class (written documentation
required)
2.
Religious
observance that prevents attendance in class (two weeks advanced written notice
required)
3.
Participation
in authorized university activities during class time (two weeks written notice
from authorized university personnel)
4.
Compelling
verifiable circumstances beyond the control of the student.
Also, all students are
expected to be on-time for (and remain for the duration of) all class sessions
and make every attempt to avoid disrupting the class. Students are required to
notify the instructor via e-mail if they are unable to attend a class meeting.
Written documentation of the reason for the absence will be requested by the
instructor and must be submitted for the absence to be excused. If a student is
absent from an exam during the scheduled time for that exam, the student will
automatically receive a grade of 0 for the exam unless: (a) the student
notifies the instructor of the absence at least 24 hours BEFORE the exam
and supplies a written doctor's excuse explaining the absence or (b) there is
an extraordinary situation which the instructor allows as an acceptable excuse.
If (a) or (b) applies, arrangements for a make-up exam will be made.
Several unannounced
quizzes will be administered during the semester. Quizzes cannot be made-up
under any circumstances.
3. Assignments: All assignments (along
with other course materials) will be posted on the class website, so you should
check it out before emailing the instructor with any questions pertaining to
assignments or daily topics. Keep in mind that the website is not a replacement
for class attendance and not every instruction given in class will necessarily
be repeated online; again, you should make every effort to attend class on a
regular basis. Assignments are due at the beginning of class on the due date.
Assignments are expected to be submitted on time regardless of your attendance
on a particular day. Late programming
assignments will not be accepted. All assignments should be typed and
appropriately documented. You will not be graded for any loose sheets turned
in. So make sure to staple all the sheets you turn in or to bring them in a
folder. Note that any deadlines indicate the amount of time and effort
required both toward the completion of the assignment and its documentation. Do
not anticipate completing your assignments 1-2 days prior to the final
deadlines.
Department Notes:
Only under exceptional circumstances will the
department accept a third attempt of this course. It is the policy of the
Department of Computer and Information Sciences to deny any third attempt that is not in the best interest
of the student. If this is your third attempt of this course, you must fill out
a Third Attempt Petition and have it approved before continuing in this course.
Third Attempt Petitions are available online at the following link or can be
picked up in the CIS department front office: http://www.towson.edu/registrar/forms.html.