Data Structures and Algorithms

CSC-122 Fall 2015

Course website and syllabus:

Quick Link: Moodle


Andrea Tartaro

General Information


Carrano, F.M. & Henry, T.M. (2015). Data Structures and Abstractions with Java, 4th Edition.

Assignments & Grades

One of the goals of this class is to learn to build larger projects. To help you do this, you will have a number of assignments that build on previous assignments. This is to demonstrate how to break a project down into workable pieces. Thus, to complete the next assignment, your previous assignment must be well-designed and fully functional. This also reflects what happens in the "real world," software must work! The "assignments" portion of you grade (20%) will be based on how many assignments have been accepted as complete. An assignment is "complete" when it is well-designed and fully functional. All assignments will be available by 1pm on lab days and "due" the following lab. I will work with each one of you during lab to evaluate your progress on the assignment. You will receive full credit towards your "assignment progress" grade if the project due is fully functional. However, you may be asked to make design revisions before it is accepted as complete. Once it is accepted as complete, you will submit an electronic copy on moodle. If the assignment due is not fully functional, your progress for the week will be graded out of 5 points (0 = no progress from previous lab; 5 = assignment due is fully functional). Note that an absence from lab that has not been approved in advance will result in a progress score of 0 for the week.

At the end of the course, you will complete a final project designed for you to break into workable pieces more on your own. This project will be graded based on a design and funtionality rubric. This project will require a lot of planning and work, so do not leave it to the last minute.

There will be two in-class exams that must be completed individually (you can study with whomever you choose).

There will be independent and/or group in-class exercises. These will not be announced in advance and are to motivate you to keep up and provide feedback on your progress.

Finally, class attendance and participation is a critical component of the course. Please discuss any necessary absences with me (see below).


Working together is a great way to more fully explore the concepts of the course. At the same time, independent work is also critical so both you and I know that you fully understand the material on your own. During lab, you will have the opportunity to work on assignments, receive help from the lab assistant, and work with each other on the assignments. However, lab (Wednesdays 2:30-4:30) is the ONLY time you are allowed to collaborate or receive help from ANYONE (except me) on ANY assignment. Working together or helping someone on an assignment is very different from one person showing another person their completed assignment. During lab, the lab assistant and myself will be available to support appropriate collaborations. Note that while you are welcome to start working on an assignment at 1pm on Wednesdays, you may not collaborate until 2:30. I am available to help you during office hours or by appointment.

Handing in assignments

For all assignments, you will turn in an electronic copy on moodle after I have indicated it is accepted. You will not receive credit for an accepted assignment that has not be submitted on moodle. You must bring an electronic copy of all assignments to lab, where I will "workshop" the assignment with each of you individually.

Grade Allocation

Policies, etc.

Basic Course Requirement

In order to pass the class you must earn a passing grade. In addition, you must also meet the following basic requirements. Before the final exam time for the course, you must complete at least 50% of the assignments. You must also take both exams. In other words, you cannot blow off an entire aspect of the course (assignments, exams) and pass the class! Note that this basic requirement is necessary but not sufficient to pass the class.

Email Policy

It is a course requirement to check your email at least once per day. Important announcements regarding assignments and class meetings will be sent via email.


Class participation is a critical component of the course and attendance is mandatory. In addition, there are numerous hands-on activities and in-class exercises. Please discuss any necessary absences (eg. athletics, religious holidays, emergency, illness) with me PRIOR to class. You may be asked to make up for missed material. You will not receive credit for make-up material if you did not discuss your absence with me prior to class.

"Late" Assignments

Late assignments do not affect your "assignments" grade - an assignment is either accepted as complete or receives no credit. However, late assignments affect your progress grade as well as your ability to follow what is going on in class. No assignments, including the final project, will be accepted after final exam time scheduled by the Registrar's office.

Students with Disabilities

It is the policy of Furman University to make reasonable accommodations for qualified individuals with disabilities. I encourage students with disabilities to make an appointment to meet with me as soon as possible to discuss accommodations that might help facilitate your learning. You will need appropriate documentation from the University's Disability Services Coordinator. All discussions will remain confidential.

Academic Integrity

(adopted by the Department of Computer Science)

The ready availability of information in digital form necessitates that a clear definition of plagiarism be provided for the context of computer science coursework. Plagiarism is a form of dishonesty when a person expresses words or ideas as his or her own without attributing another person as the true source or contributor of those words or ideas. In computer programming, for instance, words are computer code and ideas are the algorithms or design of code.

Although you are engcouraged to discuss requirements of assignments and to help others with general programming concepts, all work you submit as your own should be your own. You may never use code and algorithms from anyone else to complete a program that you submit for credit unless the original source of the code is clearly documented in the comments. This documentation must include the names of individuals or complete citations of books or articles and must describe the ideas or code you are using. Unless otherwise stated in the requirements, it is assumed that sources outside the course textbook, class notes and handouts, and designated teammates are forbidden even if those sources are correctly cited.

The following activities are considered serious instances of academic dishonesty:

There are many opportunities for peer tutoring that do not fall under the category of plagiarism. These opportunities include the following examples:

As stated above, you may collaborate with your peers on labs, though you must hand in your own completed assignment and indicate the student(s) you worked with. You may not collaborate with peers on homework assignments. Viewing another person's homework assignment or showing your assignment to another student is forbidden.

How to succeed in this course


Available on Moodle.