Instructor: Thomas Kunz, CB 5202, 520-3573,
tkunz@sce.carleton.ca
Office Hour: Wednesdays 2-3 pm
Course Description and
Objectives:
·
To
introduce students to common programming techniques/algorithms (recursion,
searching and sorting, etc.)
·
To
introduce students to several fundamental abstract data types (ADTs) and data
structures. Students will learn how to develop the specifications for ADTs,
design their underlying data structures, and implement the ADTs as Java
classes. Some common applications of these ADTs will be presented.
·
To
introduce students to techniques for designing and analyzing algorithms
Prerequisites:
Precludes
additional credit for SYSC 2002 and COMP 2402.
Prerequisite(s):
(SYSC 1102 or SYSC 2006) and (SYSC 1101 or SYSC 2004).
Textbook:
Data Abstraction and Problem
Solving with Java: Walls and Mirrors, 3rd edition, by Frank M. Carrano and Janet J. Prichard. Prentice Hall 2011, ISBN-10: 0132122308, ISBN-13:
9780132122306.
I recognize that textbooks are not cheap. So if you can get a (used) version
of the textbook, either the 3rd or the 2nd edition, that
will work as well, and I will accept either for the exams. Both midterm and
final exam are open textbook, so I encourage you to acquire a copy of the
textbook early in the term, as the bookstore will not carry them beyond the
initial few weeks of classes.
Other References:
I will use cuLearn for managing course
interactions, grades, as well as assignment submissions. There is also a course
webpage where I will post announcements, assignments, as well as other course
material. The webpage is at http://kunz-pc.sce.carleton.ca/sysc2100/, and access to
parts of the course material is password-controlled.
Laboratory Sessions:
A 2-hour weekly lab period has been scheduled, but formal lab sessions
will normally not be held at that time. Supplementary lectures or tutorials or
the midterm exam may be scheduled for some of the lab periods on an as-required
basis; these will be announced in class.
Students can use the undergraduate computer labs whenever the
Attendance:
Students are expected to attend all lectures and be able to attend the
lab periods as required. The Faculty of Engineering and Design requires its
students to have a conflict-free timetable, so requests to accommodate missed
exams, assignment due dates, etc., because of conflicts with other courses,
jobs, or vacation plans will not be considered.
Assignments and Exams:
Students will be evaluated by means of 5 assignments, a midterm exam,
and a final exam.
There will be a total of 5 programming assignments. Doing the
assignments is the best way to learn the course material, so students are
encouraged not to “write off” any particular assignment just because of its
relative low weight in the overall grading scheme. In addition, completing a
subset of the assignments will be a pre-requisite for being allowed to write
the final exam. Late assignments will not normally be accepted, and will
receive a mark of 0; however, students who cannot submit an assignment by the
due date for valid medical or compassionate reasons should contact the
instructor immediately and prior to the due date to arrange for
appropriate accommodations (e.g., an extension of the due date). Arrangements
must be made in a timely manner, otherwise the assignment will be considered
late and not accepted. Note that assignments will be submitted using cuLearn,
using the cuLearn server cutoff time. However, all assignments can be submitted
multiple times, so I encourage you to submit an early version.
Students are encouraged to discuss design issues when working on
assignments; however, you are expected to write your own programs. There is a
fine line between cooperating with your classmates (discussing problems and
ideas) and copying program code (plagiarism). Not only is plagiarism an
instructional offense (see the current Undergraduate Calendar, Academic
Regulations of the University, Section 14), but doing the assigned work by
yourself is by far the best way to prepare for the exams. Note that it is not
only an instructional offence to submit someone else’s work as your own. It is
also an instructional offence to knowingly allow someone else to hand in your
work as his/her work.
You are encouraged to ask the TA(s) for feedback and suggestions for
improving your Java programs. When you ask a TA to help you with one of your
programs, you will be expected to present a well-documented listing of your
program. The TA(s) may be unable to provide much assistance of all you can show
is an undocumented, difficult-to-understand program.
A midterm exam will be held in-class on February 27. Students who are
unable to write the exam because of illness or other circumstances beyond their
control must provide evidence. In the case of illness, this requires a medical
certificate dated no later than one working day after the exam. The certificate
must specify the date of the onset of the illness, the (expected) date of recovery,
and the extent to which the student was/is incapacitated during the time of the
examination. If this information is provided to the instructor no later than
five working days after the exam, the final exam mark will be used as the
midterm exam mark; otherwise, the mark for the missed exam will be 0.
Final Exam: Is for the
evaluation purposes only and will not be returned to the student.
A final exam will be held during the University’s April examination
period. For SYSC 2100, only students who
completed at least four out of five programming assignments are eligible to
write the final examination or, where circumstances warrant, apply to the
Registrar’s Office for deferral of the final exam. Completed means any assignment mark greater than 0 (note that in
case of confirmed cases of plagiarism, the usual penalty is to be awarded zero
on an assignment). In case of deferral, the following rule will apply:
Students who miss the final exam may be granted permission
to write a deferred examination (see the Undergraduate Calendar for regulations
on deferred exams). These students have additional months to study and a less
crowded examination schedule compared to their colleagues who write the final
exam in April. As such, it is only fair to expect substantially better
performance from these students on the deferred examination than on the April final
exam.
Grading Scheme and Schedule:
To pass the course, a student must pass the final examination (D- or
better). For these students, the marks will be calculated as follows:
Assignments: 25%
Midterm exam: 25%
Final exam: 50%
The complete schedule of assignments, exams, and their weights are
listed in the following table (programming assignments are due at noon on their
deadline day – but you are welcome to submit them earlier):
|
Assign. 1 |
Assign. 2 |
Assign. 3 |
Assign. 4 |
Assign. 5 |
Midterm |
Final Exam |
Handed out |
Jan. 16 |
Jan. 30 |
Feb. 13 |
Mar. 6 |
Mar. 20 |
|
|
Due |
Jan. 29 |
Feb. 12 |
Mar. 5 |
Mar. 19 |
Apr. 2 |
Feb. 27 |
April |
Weight |
5% |
5% |
5% |
5% |
5% |
25% |
50% |
All assignments are due at noon. For the
exams (both midterm and final exam), I will allow the course textbook as aid. Note that only proper copies of the
required course textbook will be accepted, no alternative textbooks, electronic
versions, photocopies, etc. I may accept an older version of the course
textbook, however, i.e., the 2nd edition, for example. If in doubt,
please check with me.
Students with
Disabilities:
Students with disabilities requiring academic accommodations in this course are encouraged to contact a coordinator at the Paul Menton Centre for Students with Disabilities to complete the necessary letters of accommodation. After registering with the PMC, make an appointment to meet and discuss yours needs with me at least two weeks prior to the first in-class test or CUTV midterm exam. This is necessary in order to ensure sufficient time to make the necessary arrangements. Please note the following deadlines for submitting completed forms to the Paul Menton Centre: March 6, 2015 for the Winter Term.
Plagiarism
(copying and handing in for credit someone else's work, as well as allowing someone else to copy your own work) is a
serious instructional offense that will not be tolerated. Please refer to the
section on instructional offenses in the Undergraduate Calendar for additional
information.
Course Outline (by Topic):
·
Introduction
·
Recursion
·
Data Abstraction
·
Example Abstract Data
Type: Linked Lists
·
Problem Solving with
Recursion
·
Stacks
·
Queues
·
Algorithm
Efficiency/Complexity
·
Trees
·
Tables and Priority
Queues
·
Advanced Tables:
Hashing
·
Graphs