Rules
Communication
- Reach me through my official U.M. email, not through blackboard.
- Always make sure your name appears, and say which class you are in.
Attendance
- This is an in-person class. Attendance is required. Watching by Zoom does not count.
- Attendance will be taken on random dates and will count towards your final grade.
- Arrive on time for the beginning.
Submitting Assignments
- Assignments must be submitted as word documents.
- They must begin with your name and which assignment it is.
- Then say exactly where I can find the file in your rabbit account.
- Then any comments about clever/complicated things you have done that might need to be explained to me.
- Then, if it is a resubmission, include all of my original feedback and say a few words about how you have corrected everything.
- Then include all of your code as plain text, not as screen-shot images.
- Make sure your code is readable, and that I will be able to copy and paste it somewhere if necessary.
- Good coding practice: consistent proper indentation and spacing is required. Unreadable means ungradeable.
- Good coding practice: things must have sensible and meaningful names.
- Include useful test runs.
- Be sure that your test runs really test all the important features.
- Your test runs should also be plain text, not screen-shot images.
- Except that if you do produce some graphical output, then of course a regular screen-shot is OK.
- Faked test runs will be treated like any other form of cheating: a zero with no resubmissions allowed.
- All assignments are to be submitted through blackboard under Assignments.
- Grades will be posted on blackboard.
Do it yourself
- This is all about learning algorithms. You must create them yourself.
- If an assignment or question is about hash tables, you must implement your own hash table.
- Even a regular official C++ library is disallowed.
- <unordered_map>, <unordered_set>, <map>, <set>,
<deque>, <algorithm>, <priority_queue>, <multiset>,
<multimap> ...
are just examples. Nothing of that kind is permitted.
- auto and iterators are forbidden, they suppress learning.
- Third party software is completely out of the question.
- In this class, you may always #include
<iostream>,
<fstream>,
<sstream>,
<iomanip>,
<string>,
<vector>,
<cctype>,
<cmath>,
<cstdlib>,
<cassert>,
<ctime>,
and "library.h".
- If you think I have left something out of that list, tell me. Don't just assume.
- The old-fashioned C libaries like
<cstring>,
<fcntl.h>,
<unistd.h>, and so on are not strictly forbidden. But if you think you need
one of them, you can be sure you are doing something wrong, so don't.
- In particular input and output operations must be done the C++ way, not the C or Unix way.
Lateness
- There will be real deadlines for assignments.
- Assignments are graded out of 10,
For every day (or part of a day) it is late, the maximum grade will be reduced by 1.
- Extensions will only be granted for exceptionally good reasons.
- You are always given plenty of time to complete assignments,
If you don't start until the day it is due, you are asking for trouble.
Where to do your assignments
- You will all have accounts on the Unix server rabbit.eng.miami.edu
- You should do all of your assignments there; it is very important to be familiar with Unix
- If you insist on not following that rule, you must at least upload your work to rabbit,
and make sure it works there. Visual Studio sometimes fails to detect errors.
- When you submit an assignment, you must tell me exactly where to find it in your account.
Collusion and Plagiarism
- All assignments are to be individual effort. There will be no group work.
- When an assignment asks you to do something, you are expected to do it yourself.
- It is not acceptable to find something on the internet or in a book or anything like that.
- It is not even acceptable to find an official library function or class that does the job for you.
- Failure to follow these rules will result in a zero, without the possibility of resubmission.
Final Grades
- 50% of your final grade will come from the assignments,
- 50% of your final grade will come from examinations.
- Therefore you will not be able to pass the course if you don't do the assignments.
- There will be two mid-terms and one comprehensive final.
- Most, maybe all, of the final will consist of opportunities to improve your mid-term grades.
The Book
- It is not absolutely required to buy the text-book,
but it is definitely recommended.
- Old versions from amazon and ebay are good enough and can be very cheap.