Você está na página 1de 8

ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 1 of 8

Semester 2 (Spring 2018) 2017-2018

UPR : Mayaguez
ECE and CSE Departments

Syllabus for ICOM 4035 / CIIC 4020 – Data Structures (CS2)


Spring 20181
Prof. Pedro I. Rivera Vega e-mail: p.rivera@upr.edu
2
Office: S-613 Office hours : MJ 1:00-2:00, W 2:00-4:30
Phone: (787)-832-4040, x-2448

1. Course Description
Introduction to the design, analysis and implementation of data structures and sorting algorithms, using object-
oriented programming techniques. Study of computational complexity and Big-O notation. Design and
implementation of abstract data types and containers classes: Vector, List, Set, Sequence, Table, Stack, Queue,
Priority Queue, Tree, and Graph. The list of concrete structures to be studied includes: dynamic arrays, linked
lists, Bit vectors, binary trees, binary search trees, 2-3 Trees, heaps, hash tables, adjacency matrices and
adjacency lists. Recursion, generics and inheritance will be used extensively. This course is often called
Computer Science II (CS2). This course counts for four (4) credits. Pre-requisites: ICOM 4015, CIIC
4010, or equivalent proficiency with Java, and basic knowledge of UNIX.

A NECESSARY ACTIVITY TO PASS THIS COURSE IS READ, READ, READ, ...; THEREFORE, START BY GIVING CAREFUL
READING TO THIS DOCUMENT.

2. Textbooks and References


Required:
Data Structures & Algorithms in Java, 6th Edition3
Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser
John Wiley
ISBN: 978-1-118-77133-4
Recommended References:
▪ As a reference you can use any book in data structures, preferably using Java.
▪ Get used to surf the Web to look for tutorials about each of the topics covered. For example, use
Google to search for “linked list tutorial” and you will get access to online tutorials about linked
lists. These are an excellent resource to complement what is seen in class or in the textbook.
▪ Access the Web page for the textbook. You will find the necessary information in the book itself.
▪ Watch lectures in YouTube, Coursera, iTunes, etc.

1
See the last section of this document for class/lab schedule and lab instructors.
2
To meet at an hour different from the ones listed here you need to make an appointment.
3
Notice that this is a new edition. Consider buying the electronic version in CourseSmart platform.

Page 1 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 2 of 8
Semester 2 (Spring 2018) 2017-2018

IMPORTANT RESOURCE ON THE WEB Access the website Computer Science Student Resources where
you can find a large number of useful resources that may be of great help in your studies, not only for this
course, and also in the practice of the profession after graduation.

3. Grading
Your grade will be based exclusively on the scores that you obtain in the class projects, exams and laboratory
assignments. The curve to be used to assign a grade to your final score will be as follows:

Final Average Grade

100 – 90 A

89 – 80 B

79 – 70 C

69 – 60 D

59 – 0 F

Your final score will be computed as a weighted average of your individual scores in: class attendance,
programming projects, exams, and laboratory activities. The weights assigned to each of these categories are as
follows:
Class Attendance and Participation - 05%
Midterm Exams (3) - 45%
Final Exam (Comprehensive - 20%
Programming Projects (at least 3) - 15%
Laboratory Work - 15%

Bonus Points - up to 5% can be added to your final score in the course at discretion of your instructors.
The Bonus points are based on the various class activities; such activities are optional and you may earn up to
5% of bonus points at discretion of your instructors. There is no appeal or remark request for such activities.

There will be no special project, no special homework, no special exam, nor any other kind of “special work” to
improve grades. However, each project or exam might have an extra credit problem that you can use to help
improve your score in that corresponding category.

IMPORTANT: We need to work with a problem that has been experienced in the past. Some students have
had the idea that they can pass the course even if they do not work on the programming projects or in laboratory
activities, perhaps thinking that if they do well in the exams and attendance, they can still get a final average of
70 out of 100. Well, the truth is that those activities (projects and lab exercises) are aimed for you to put in
practice important topics covered in the course and general strategies about problem solving and software
design and development. If you do not gain such experience well, the higher is the chance that you will not do
well in exams, hence it is more likely that you will not pass the course. But even if you can do well in the exams
and pass the course with a C, it would be very likely that you have not learnt some important concepts of this
type of course and which are required for future courses or for your formation as a professional in the
computing discipline. Hence, we need to enforce the following rule: In order to pass the course, you have to

Page 2 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 3 of 8
Semester 2 (Spring 2018) 2017-2018

get a final score of at least 50 in the programming projects, at least 50 in the laboratory work, and at least
50 in partial exams average.

4. Class Mode, Communication Mode, Shared GDrive Folder


The class is offered through the standard mode of weekly lectures and lab activities, both requiring attendance
of the student at the particular hours according to the section he/she is registered in. However, as in any
traditional course, and perhaps in this type of course is even more so, you will need to reserve several hours per
week to work on class projects and suggested exercises. This is necessary to fully understand the different
topics that are covered in the course; in particular, practice is essential. Most of the material covered in the
course will be made available on slides handouts that the students will have access to.

Official communication between me and you will occur through the official email accounts at upr.edu domain.
When doing so, my emails’ subject will start with prefix i4035/c4020:. If you want contact me through this
medium, you email’s subject should also begin with prefix i4035_sss or c4020_sss, depending on the course
that you are registered in, either ICOM 4035 or CIIC 4020. The “sss” part is substituted by the number of the
section which you belong to. Emails regarding some issue related to the course and which uses a different
subject may get lost inside my long list of emails. I usually give priority to emails from students in my courses
to reply back, if needed, as soon as possible.

All the material used in this course will be shared with you through a shared Google Drive folder, which I will
announce in the coming days; as soon as the registration process is completely finished and I have the chance to
compile the mailing list of all students registered in this course. In that shared folder, we include general
information about the course (syllabus, list of topics, suggested exercises from book, etc), presentation slides
(handouts in pdf), information about exams, specifications of programming projects, specifications for lab
activitties, etc. So, it is your responsibilite to be in touch with this shared folder once made available. But
usually, when a new thing is added there, I will send a notification email.

Important Remark: It is important to mention that even when the course will follow the standard approach for
lectures, because of extraordinary circumstances that may occur (weather event, no access to physical facilities,
no electricity, no water, etc), it may happen that some of the lectures need to be made available as video
recorded for you to watch on a specified period of time. Should that be the case, you will get detailed
instructions as to how to access such lectures, as well as the time to watch. On those instances, office hours, as
well as other interactive course activities, can be completed through internet-based communication systems
(also to be announced if needed). The extend of how much material of the course can be covered under this
modality will not exceed whatever is allowed by existing rules at UPRM regarding traditional courses.

5. Class Attendance
Class attendance is required by university rules. Attendance will be verified on every lecture. You will need to
sign the attendance sheet where your name appears. In the past, cases have been reported of some students
signing for other students different from themselves. Signing for another person different from yourself will be
considered as a violation to academic integrity rules, and possible sanctions may be applied to persons involved.
Avoid any trouble, just sign your name. On randomly selected days, I will do a double check of the attendance
list.

The final grade corresponding to class attendance (which has a weight of 5% in the final grade) will be assigned
using the following formula: max(0,100-x*20), where x is the numbers of lectures in which the student is
not present. Any late arrival to the class will be considered as an absence, unless a reasonable excuse is
presented by the student. Moreover, any student with 7 or more lectures missed with no reasonable
excuses will automatically get an F grade in the course.

Page 3 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 4 of 8
Semester 2 (Spring 2018) 2017-2018

IMPORTANT: Under no circumstance we will accept as an excuse to be absent your need to take an exam or
to comply with some requirement from another course that has been scheduled for an hour that conflicts with
the official periods of lectures for this course. No professor of anyone of your courses can force you to miss
another class, or activity officially scheduled in advance, for the reason of scheduling his/her exams out of the
regular hours of the particular course you might be taking with him/her. In that case, that professor should make
an arrangement for you to be able to take his/her exam without affecting your other classes. I myself need to
comply with this rule as well should it be the case that I schedule some activity in an hour that conflicts with
your other courses.

OTHER IMPORTANT RULES TO FOLLOW:


● No use of cellular phones is allowed inside the room during the lectures. Turn-off your phone before
entering the room, or set it to vibrating mode, or silent, …
● No use of computers of any kind will be allowed inside the room during lectures, unless during the
lecture you get authorized to. Portable tablets (iPad, etc.) may be allowed if you use them to take class
notes. Exceptions to this rule can be made based on reasonable circumstances.
● Once the class has started, if you get out of the room before the class ends, be aware that without a
reasonable excuse to do so, if the attendance list is revised by me (sometimes I do to verify that no one
has signed for another person, either by mistake or intentionally) you may be marked as absent. Also
remember that if you go out, please, use your common sense to do it in a way that the class is not
interrupted or the other students are not distracted.

6. Exams
In this course, there will be three midterm exams and a comprehensive final exam. Unless otherwise indicated,
all exams will be taken with closed books and closed notes. The midterm exams will be administered outside
the regular class time. The date and time for each midterm exam will be as follows:

Exam Number Date Time Room


I Friday, March 16, 2018 3:00 PM – 6:00 PM TBA
II Friday, April 13, 2018 3:00 PM – 6:00 PM TBA
III Friday, May 11, 2018 3:00 PM – 6:00 PM TBA

If for any other course, an exam has already been scheduled in one of the dates and hours listed above or it is
the case that the official schedule of some of your other classes conflict with the previous dates/hours, you must
notify it immediately, so that we can make arrangements to reschedule the particular exam for you. Should that
be the case, we will make arrangements for you to be able to take the particular exam on the same day at an
earlier hour. No excuse due to conflicts will be accepted if reported after the day of the first session of
your corresponding section4. Each exam lasts 2 hours5.

Remember, the exams are offered out of regular hours in order for you to be able to have more time available to
work on them. If for any reason (storm, bad weather conditions, etc.) we cannot offer a particular exam
on the given date, unless otherwise established, that particular exam will be automatically rescheduled
for the first day of classes that we are able to meet afterward at regular lecture hours of the respective

4
Except if it is because you ended registering a new course whose official schedule conflicts with some of the given dates and hours.
5
We have reserved 3 hours for each exam with the objective to better deal with possible conflicts; however, the time allowed to complete the exam shall
be at most 2 hours (after the student gets the exam paper). Any student having a valid excuse can start his/her exam, the latest, at 4pm. Be aware that at
6pm all exams papers will be collected and the exam will end; hence, if you arrive after 4pm and you are allowed to take the exam (only if there is a valid
excuse) your time to answer it can not go beyond 6pm.

Page 4 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 5 of 8
Semester 2 (Spring 2018) 2017-2018

section. The final exam will be administered in accordance with the schedule specified by the Registrar of the
University of Puerto Rico, Mayagüez Campus.

Each question included in each exam (midterm or final) will fall into one of the following categories:

● Explanation of a technical concept.


● Proof of a mathematical proposition.
● Solution to a problem using the concepts discussed in class.
● Tracing of either Java code segments or algorithms.
● Analysis of either Java code segments or algorithms.
● Implementation of Java classes and code segments.

Exam Reposition Policy: In this course, there will be NO repositions for missed midterm exams with no
reasonable6 excuse notified in advance (not later than the day of the exam).

7. Programming Projects
You are expected to complete four programming projects that are designed with the following objectives:
1) Test your knowledge of the data structures presented in class.
2) Test your individual skills for engineering a programming solution to a particular problem.
3) Test design and implementation skills of software modules using object-oriented techniques and
applying important concepts studied in the course.
You will be given at least two weeks to complete each programming project. You must implement your project
using the Java programming language, and you must work individually. You might discuss with your peers
general aspects about the project and/or programming environment. However, you cannot share your code with
any student, nor use code written by someone else. Failure to comply with this requirement will be considered
as an act of academic dishonesty and you may receive a grade of F in the class (read section below titled
Academic Integrity). Also, it is your responsibity to verify that your code executes at least in a computer
environment compatible with those in the Amadeus lab as per the requirements for execution that are be
included in the project’s specifications.

The grading process consists of compiling the project that you submit and executing it to verify that it
complies with specifications. Your programs shall be graded as submitted by you on the established
deadlines; no chances to resubmit not working code will be given after the established deadline. If your
program is not submitted as specified, or does not compile, you will receive a score of 0. On those cases, no
further check of your code will be done. In general, we verify: compilation, complying with specifications,
program documentation, and clarity of your code. Again, you will receive further instructions on how to submit
your project electronically. A project that is not submitted for grading on time, or that does not comply
with the specifications about how to submit, file names, file formats, etc, will automatically receive a score
of 0.

Late Project Policy: Each project will have a due date composed of an hour, month and day. A project shall be
considered late if it is submitted for grading at any moment after its due date. For example, if the due date for a
project is 11:59 PM-October 30, then a project submitted at 12:00 AM-PM-October 31 is considered as one day
late. Any late project will be considered as not submitted, except when the corresponding specification
documents establishes otherwise. The importance of this rule is that it is common that in any professional
practice you have to deal with deadlines for delivering software components or completion of important parts of

6
What is “reasonable” will be decided based on the instructor’s judgment of the particular evidence shown.

Page 5 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 6 of 8
Semester 2 (Spring 2018) 2017-2018

a large software system. You need to get use to this. In this course, it is easy to avoid consequences of late
submission; just start working as soon as possible after the specifications for a project have been shared and
announced to you.

NOTE: We will not debug your code via e-mail. We shall only look at your program source code listings,
or login to see your code files during the allotted office hours. In those instances, it is highly
recommended that you bring your own computer with your code ready to be examined, or make it
available through Git for your instructor to replicate it when the time for your visit to his/her office hours
comes.

8. Laboratory
This course includes a weekly 2-hour laboratory session in which concepts discussed in class are put in practice.
In each session, some practical activity will be specified, and you are expected to develop Java code to comply
with the specifications given. In addition to the coding activities, there might be others requiring you to answer
questions based upon experimentation with code that is provided or developed during the lab session. All of the
lab activities are based upon fundamental topics that must have been previously discussed in lectures. You shall
receive more detail rules about the laboratory on your first lab session. Lab activities may include quizzes.

9. Incomplete Grade Policy


A student will receive an incomplete grade if and only if the student misses the final exam, has a valid excuse,
and if with the reposition of that exam (assuming the largest possible grade) the student has a chance to obtain a
final passing grade in the course. Such excuse must be one of the following:

● Medical certificate indicating illness.


● Legal certificate indicating an appointment to attend a Court of Law.
● Certificate from a hospital or a physician indicating the death of either: parent, child, husband, wife or
sibling.

10. Academic Integrity


Each student is expected to work individually on all projects, exams and laboratory assignments. You may not
share your answers to the laboratory assignments. You may not use code from another student, or code that you
find on the Internet or any similar resources (unless explicitly allowed). You may not share your code with
another student. Failure to comply with these requirements will result in a grade of F in the course for the
student(s) violating these rules. Unauthorized group efforts, particularly during exams, will be considered
academic dishonesty and the students involved will receive an F in the course. You should read the
“Reglamento General de Estudiantes de la Universidad de Puerto Rico” to learn more about the possible
sanctions that you might experience if caught in an act of academic dishonesty.

Page 6 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 7 of 8
Semester 2 (Spring 2018) 2017-2018

11. List of Topics


The following is a list of the course topics in general. This list is subject to change and it will vary
depending on the pace of the lectures.

TOPICS:

1. Discussion of the Course Syllabus and General Review of Important Java Concepts
2. Java Programming Basics – general review about Java and simple program design
3. Object-Oriented Design – general review of the O-O design, and using Java in particular.
Design goals, design principles, design patterns, inheritance, polymorphism exceptions,
interfaces and abstract classes, casting and generics.
4. Arrays, Linked Lists, and Recursion – revisit arrays and introduce the linked list data
structures and how both can be used as data structures to support implementation of more
abstract collections. Revisit recursion and discuss general strategies to develop recursive
algorithms and how recursion is handled.
5. Analysis Tools – useful functions, general approaches for the analysis of algorithms to
measure effort and determine correctness.
6. Stacks and Queues – Abstract specification of stacks and queues, different implementations,
and applications
7. Lists and Iterators – Study of different types of lists, their abstract specification, different
implementations, and applications.
8. Trees – Study of the tree data structures (general trees and binary trees): specification,
implementations, and applications. Algorithms to traverse trees and tree iterators.
9. Priority Queues – Study of the priority queue, different implementations, and their
applications. Study of heap data structure and the heapsort method to sort comparable elements
in an array.
10. Maps and Dictionaries – The Map and the Dictionary data structures, their specification, and
implementations. Hash-based implementations and applications.
11. Search Trees - Application of trees to the implementation of indexes to improve performance
in the operations to access elements, and to store elements in collections of objects. In
particular, we will study: binary search trees and balanced trees.
12. Sorting, Sets, Selection – Sorting methods: merge-sort, quick-sort, bucket-sort, and radix-sort.
Lower bounds for sorting. The Set ADT and its implementation. Selection.
13. Graphs – Introduction to graph theory concepts, different types of graphs, data structures for
graph implementations, typical algorithms for traversing graphs, shortest paths, and
applications.

For information about relating these topics to exams in the course, as well as list of suggested
exercises for each of them in the textbook, see here.

Page 7 of 8
ICOM 4035 / CIIC 4020 : Syllabus of the Course Page 8 of 8
Semester 2 (Spring 2018) 2017-2018

12. Sections for This Course and TA Assignment


Both courses, ICOM 4035 and CIIC 4020, have the same section numbers for the differrent groups
that are formed to deal with the assignment of lab hours. Be aware that under this scheme, students
having the same class hours may be assigned to different lab sessions. Therefore, you should be aware
as to what lab session you are assigned. The following table summarizes that.

Section Class Hours Lab Hours (S-121) Lab Instructor

010 MJ 5:00 - 6:15pm L 7:30 - 9:20 am

030 MJ 2:00 - 3:15pm L 9:30 - 11:20 am

050 MJ 3:30 - 4:45pm L 11:30 - 1:20 pm

070 MJ 5:00 - 6:15pm 1:30 - 3:20 pm

090 MJ 2:00 - 3:15pm 3:30 - 5:20 pm

110 MJ 3:30 - 4:45pm 5:30 - 7:20 pm

Page 8 of 8

Você também pode gostar