Course #: | COMP 271-001 1773 (online) |
Day/Time: | Wednesday, 6:00 - 9:00 p.m. |
Classroom: | Zoom meeting: https://luc.zoom.us/my/cnaiman |
Prerequisites: | Prerequisites: COMP 170 or COMP 215 Corequisites: COMP 163 or Math 201 Students are expected to be able to read, write, and debug basic computer programs using standard tools including compilers and editors. Students are expected to know the basics of Object Oriented Programming and be able to use classes and methods they or others have written. The logical mindset of mathematics is generally helpful in learning programming. See me if you have any questions or concerns about your preparation. |
Instructor: | Dr. Channah Naiman |
email: | cnaiman@luc.edu |
web page: | http://webpages.cs.luc.edu/~cnaiman |
office hours: |
Zoom, by appointment |
TA: |
John O'Sullivan (limited,
as explained in the Orientation) |
Data Structures: Abstraction and Design Using Java. E.B.Koffman and A.T.Wolfgang. Wiley 2015 3rd edition. ISBN 978-1-119-18652-6. Online companion site (freely accessible)
The online version is recommended. You can try the online text free for 14 days at www.WileyStudentChoice.com
Additional course materials will be online, in Sakai, or provided in class.
The official documentation for Java version used in class is from Oracle
https://docs.oracle.com/javase/9/docs/api/
https://docs.oracle.com/javase/10/docs/api/overview-summary.html
It is useful to look up specific terms, concepts, and other things you want to see.
Oracle has a much material to help Java programmers: start from this link:
http://www.oracle.com/technetwork/topics/newtojava/overview/index.html
Software:
Sakai:
As of this writing, Sakai will be used for course announcements,
homework submissions, and grade postings. While the raw scores
posted on Sakai should be correct (although I have encountered some
problems with that too!), please do not rely upon Sakai's Course Total
calculations. Usually, they are okay, but there have been
problems. I check the total grade postings periodically, to check
up on Sakai's calculations. Certainly, before the mid-term grade
posting on Locus, and before the drop deadlines, check your grades (and
I will too!) Grades are calculated as specified in this
syllabus. If Sakai presents too many problems, we will switch to
CourseSites.
Class Format:
Flipped: Extremely important!!! This
course will use a "flipped" approach, where lectures and labs are
covered in videos, and online class time is devoted to answering
questions or providing additonal clarifiation and assistance. The
videos are extremely detailed and comprehensive. Please come prepared
to the scheduled class time having already watched the videos, so that
you may ask questions, or you may benefit from the the questions of
others. I will not be lecturing during the scheduled class time.
Even if you feel comfortable with the material, you should still
attend the class, as you are reponsible for any announcements made in
class, including changes to the syllabus or the course schedule.
Labs: The course is structured around 10 labs. The labs include the text material, as well as other material covered in class or included as links. In general the labs include a starter template with comments inserted instructing you what you need to do to complete the code. And in general, the labs are written in a more sophisticated level of code than you would normally be expected to write at this level, incorporating concepts and techniques that are not, strictly speaking, part of a data structure assignment. So in this way, you get the exposure to a better way to code without having to be fully responsible for writing this code from scratch. The first lab is a very simple Java program (something you should find very easy if you've taken COMP 170). However, there are many "non-functional: requirements: you will be required to complete the Orientation activities, including installing software, configuring git, using IntelliJ, importing a gradle-wrapped Java project from GitHub to IntelliJ, and other "housekeeping" type of activities. Often, the labs will require that you reference a structure that already exists in Java, but you are required to write your own version of the structure. In this way, you will become very familiar with the capabilities and limitations of the structures.
Pair
Programming: It
has been demonstrated recently that Pair Programming, two
people collaborating on one problem with one person coding while the
other looks on, whether beginner
students or seasoned professionals, allows projects been done
better and faster with more confidence, and also that
students learn at least as well and have
more enjoyment in
the process. We will have the option to do pair programming
in
this course for in-class work and programing assignments.
(Your
exams
will NOT be in pairs however!) Read the page on how
to make pair programming work and also the page of administrative
guidelines for pair programming (mostly for when it does not
work
out as planned!).
In this class software
will be used to record live class discussions. As a student in this class, your
participation in live class discussions will be recorded. These recordings will be made available only
to students enrolled in the class, to assist those who cannot attend the live
session or to serve as a resource for those who would like to review content
that was presented. All recordings will become unavailable to students in the
class when the Sakai course is unpublished (i.e. shortly after the course ends,
per the Sakai administrative schedule: https://www.luc.edu/itrs/sakai/sakaiadministrativeschedule/). Students who prefer to participate via audio
only will be allowed to disable their video camera so only audio will be
captured. Please discuss this option
with your
The use of all video
recordings will be in keeping with the University Privacy Statement shown below:
Privacy Statement
Assuring privacy among faculty and
students engaged in online and face-to-face instructional activities helps
promote open and robust conversations and mitigates concerns that comments made
within the context of the class will be shared beyond the classroom. As
such, recordings of instructional activities occurring in online or face-to-face
classes may be used solely for internal class purposes by the faculty member
and students registered for the course, and only during the period in which the
course is offered. Students will be informed of such recordings by a statement
in the syllabus for the course in which they will be recorded. Instructors who
wish to make subsequent use of recordings that include student activity may do
so only with informed written consent of the students involved or if all
student activity is removed from the recording. Recordings including student
activity that have been initiated by the instructor may be retained by the
instructor only for individual use.
*No second try*: If you have an excuse for not being prepared to take the exam, but decide to take it anyway, you don't get to change your mind after you see a poor grade. Being sick is not a way to get one more chance than everyone else. I may allow you to delay an exam due to illness, but I will not let you be reexamined due to a poor grade.
Religious Holidays: Students with religious holiday conflicts: Please let me know within the first week of class if you have a religious holiday conflict with any exam or homework due date, so that we can plan on an accommodation.Students with Disabilities: If you have a documented disability and wish to discuss academic accommodations, please contact the Services for Students with Disabilities Office (773-508-3700 and SSWD@luc.edu) as soon as possible. Students with documented disabilities who provide me with a letter from the SSWD office will be fully accommodated as per the terms of the letter. Students who are allowed to take their exams in the SSWD office are encouraged to do so. Should you choose to take the exam in the classroom, I cannot guarantee that the classroom environment will be quiet enough to provide you with the environment that your disability may require. If you choose to take the exam in the classroom, you are taking that risk.
Students with Sponsorships and Scholarships: If you require a certain grade in order to satisfy a sponsor or a scholarship requirement, please be sure to monitor your grade on Sakai. I will consider only your performance in this course in calculating grades, using the grading rubric posted in this syllabus. If you cannot achieve a minimum grade that is required by a sponsor or a scholarship, I will not change your grade to help you meet that requirement. This would be unfair to other students, and not reflecive of your performance in this course. You are reponsible to monitor your grade and to keep apprised of the withdrawal dates posted by the registrar.
|
A |
93 |
A- |
90 |
B+ |
87 |
B |
83 |
B- |
80 |
C+ |
77 |
C |
73 |
C- |
70 |
D+ |
67 |
D |
63 |
The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class. Be sure to keep up with where we really are in class.
Labs (except for Lab 0, which isn't really a lab) are listed for the class when we will work on them together. The TA or I should check off your completion or at least your participation during the same class. Labs 1, 2 and 3 cannot be made up outside of class. Sometimes, we can't finish the labs in class. In that case, I will check that work was done during class and allow a submission later, usually that night or the next day. Labs 4 - 7 have assignments associated with them. Due dates are listed on this syllabus and on Sakai.
Assignments are to be turned in on the date where they are listed below as due, generally by 11:55PM.
The Orientation and Module 1 include many topics that are essential for our programming environment. These topics are not Data Structures, but it is extremely difficult to porgram successsfuly in this course without mastering these toipcs. The first lab assignment requires that you feel comfortable with the different software components of the course's infrastructure.
The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class. Every attempt will be made to meet this timeline, and changes will be posted on Sakai. Links for supporting docuements and files, and submission links for assignments are on Blackboard.Week |
Date |
Topic |
Readings/Materials |
Assignments |
0 |
Orientation (before class begins) |
|
Installation, Configuration and import assignments Details on Sakai |
|
1 |
5/23 |
|
|
Lab 1: Infrastructure and FizzBuzz |
2 |
5/30 |
|
|
Lab 1, continued |
3 |
6/06 |
|
|
Lab 2 DUE: Lab 1 DUE: JUnit screenshots |
4 |
6/13 |
|
|
Lab 3 begin Lab 4 (short and easy lab) DUE: Lab 2 |
5 |
6/20 |
|
|
Complete Lab 4 Lab 5 DUE: Lab 3 |
6 |
6/27 |
|
|
Lab 6 DUE: lab 4 |
7 |
7/04 | No class on July 4! But school is in session the rest of the week!!
|
DUE: Lab 5 |
|
8 |
7/11 |
|
|
Lab 7 DUE: Lab 6 |
9 |
7/18 |
|
|
DUE: Lab 7 Lab 8 |
10 |
7/25 |
|
|
Lab 9 DUE: Lab 8 |
11 |
8/01 |
|
|
DUE: Lab 9 Lab 10 |
12 |
8/08 |
|
DUE: Lab 10 |
Key Event | Day | 2018 |
Early Summer Session (4-Week Session) and Summer Session A (First 6-Week Session) begin | Monday | 21-May |
Early Summer Session (4-Week Session) and Summer Session A (First 6-Week Session): Late registration (fee applies) Late registration ends at midnight (second day of the session) | Monday & Tuesday | May 21-22 |
Early Summer Session (4-Week Session) and Summer Session A (First 6-Week Session): | Tuesday | 22-May |
Last day to drop a course without a grade of "W"; midnight | ||
Session A (First 6-Week Session): | Friday | 25-May |
Last day to convert from credit to audit or vice versa | ||
Last day to request or cancel pass/no pass option | ||
Memorial Day: No classes | Monday | 28-May |
Early Summer Session (4-Week Session) and Summer Session A (First 6-Week Session): | Friday | 1-Jun |
Makeup day for Memorial Day holiday | ||
Summer Session C (8-Week Session) begins | Monday | 4-Jun |
Summer Session C (8-Week Session): | Monday & Tuesday | June 4-5 |
Late registration (fee applies) | ||
Late registration ends at midnight (second day of the session) | ||
Summer Session C (8-Week Session): | Tuesday | 5-Jun |
Last day to drop a course without a grade of "W" | ||
Early Summer Session (4-Week Session): | Friday | 8-Jun |
Last day to withdraw from session without a penalty grade of "WF"; midnight | ||
Summer Session C (8-Week Session): | Friday | 8-Jun |
Last day to convert from credit to audit or vice versa | ||
Last day to request or cancel pass/no pass option | ||
Early Summer Session (4-Week Session) ends | Friday | 15-Jun |
Summer Session A (First 6-Week Session): | Friday | 22-Jun |
Last day to withdraw from session without a penalty grade of "WF"; midnight | ||
Summer Session A (First 6-Week Session) ends | Friday | 29-Jun |
Summer Session B (Second 6-Week Session) begins | Monday | 2-Jul |
Independence Day Celebrated: No classes | varies | July 4 (Wednesday) |
Makeup day for Independence Day | Friday | 6-Jul |
Summer Session B (Second 6-Week Session): | Monday & Tuesday | July 2-3 |
Late registration (fee applies) | ||
Late registration ends at midnight (second day of the session) | ||
Summer Session B (Second 6-Week Session): | Second Day of Session | 3-Jul |
Last day (midnight) to drop a course without a grade of "W" | ||
Summer Session B (Second 6-Week Session): | Thursday | 6-Jul |
Last day to convert from credit to audit or vice versa | ||
Last day to request or cancel pass/no pass option | ||
Summer Session C (8-Week Session): | Friday | 13-Jul |
Last day to withdraw from session without a penalty grade of "WF"; midnight | ||
Summer Session C (8-Week Session) ends | Friday | 27-Jul |
Summer Session B (Second 6-Week Session): Last day to withdraw from session without a penalty grade of "WF"; midnight | Friday | 3-Aug |
Summer Session B (Second 6-Week Session) ends | Friday | 10-Aug |