|
This course introduces the abstract data types of lists, stacks and queues, and
shows how one can implement them in C++ using fundamental data structures. It also introduces recursion
and studies recursion as a problem solving technique using data abstraction.
Quizzes: 5%
Homework: 25%
Midterm: 30% (open book)
Final: 40% (open book)
There will be at least two in-class quizzes. Quizzes will be given in class,
without advance notice. The quizzes are going to be about the content of the lecture that is being
delivered at the time of the quiz. Students that take a quiz will automatically be granted half of
its full points.
Homework assignments will be posted on the course web site about two weeks
before their due dates. Assignments are expected to be turned in by 17:00 on the due date. For the
late assignments, each student will be given a total of three grace days (whole or partial) for the
whole semester. Once these late days have been exhausted, no late assignments will be
accepted. As an example, if Student A submits her/his 2nd assignment 29 hours late, s/he will
have used two late days and have only one day left. If Students A then submits her/his 4th
assignment 5 hours late, s/he will have used her/his remaining late day. If Student A submits
her/his 5th assignment 1 minute late, this assignment will not be accepted.
You should turn in your homework as a hardcopy (printer output) and also upload
it using the online submission form (both before the deadline). Your submission must include both
source code and sample outputs; otherwise, it will not be graded. Always make sure that the code
you submit does compile and run correctly. Sample outputs should test a sufficient number of
inputs so as to demonstrate that your program works correctly. Graded assignments are to be
picked up from the TAs during their office hours.
Late submissions should be done through e-mailing them to your instructor or TA, they
should also include both source code and sample outputs. You should also turn in the
hardcopy of your submission to your instructor or TA before the late days that you will be
using being exhausted.
Copying or communicating during an exam is cheating. Students caught cheating
on an exam will be subject to disciplinary action, as explained in the "Student Disciplinary Rules
and Regulation" (
http://www.provost.bilkent.edu.tr/procedures/AcademicHonesty.htm).
Academic integrity is a problem on programming assignments. Students naturally
want to work together, and it is clear that they learn a great deal by doing so. Getting help is often
the best way to interpret error messages and find bugs, even for experienced programmers. In
response to this, the following rules will be in force for programming assignments:
- Students are allowed to work together in designing algorithms, in interpreting error
messages, in discussing strategies for finding bugs, but NOT in writing code.
- Students may not share code, they may not copy code, and they may not discuss code
in detail (line-by-line or loop-by-loop) while it is being written or afterwards. This
extends up to three days after the submission deadline.
- Similarly, students may not receive detailed help on their code from individuals
outside the course.
- Students may not show their code to other students as a means of helping them.
Sometimes very good students who felt sorry for struggling students have provided
them with "just a peek" at their code. Such "peeks" often turn into extensive copying,
despite prior claims of good intentions.
- Students may not leave their code (either the electronic versions or the printed copies)
in publicly accessible areas. Students may not share computers in any way when there
is an assignment pending.
We use an automatic code comparison tool to help spot assignments that have
been submitted in violation of these rules. The tool takes all assignments from all sections and
compares them, producing a rank-ordered list of pairs of programs that are most similar. It produces a
web page for each pair, highlighting the regions of the code that are similar. We check these
similar pairs of assignments very carefully ourselves, and make our own judgment about
which students violated the rules of academic integrity on programming assignments.
Students caught cheating on programming assignments will be subject to disciplinary action.
|