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 Mackenzie Building and Minto CASE are open, except for those times when labs are reserved for specific courses.

 

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:

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