Coursework


This page explains the rules of the game you will play in this course!

Your are currently a Newbie in algorithms. We hope that you will become a Grand Master by becoming an Apprentice, an Expert, a Master and finally a Grand Master!

At the end of the semester, you will receive a grade out of 20% depending on your level and rank in the class. Our class currently has around 90 newbies!

To gain points, you can do any of the following tasks:

Task
Max Points
Notes
Implement an algorithm explained in class
75 pts
The maximum possible points will start decreasing after 10 days from posting the task online.
Implement a new well-known algorithm
125 pts
The maximum possible points will start decreasing after 14 days from posting the task online.
Solve a programming problem
Varies per problem
These problems are related to the topics covered in class and require some analysis and thinking from your part.
Solve a quiz
Varies per quiz
There will be at least one Quiz per topic. Questions usually cover basic ideas related to the topic.
Find a mistake
10 - 25 pts depending on the mistake
If you spot a mistake in the notes, exams, quizzes, online tasks or in whatever I say in the lecture.
Answer a random question
10 – 50 pts
These will be random questions posted either on Facebook or during lectures.
Don’t be late
40 pts (never late)
30 pts (late once)
20 pts (late twice)
These points will be added at the end of the semester if you have 2 or less absences.
Don’t miss classes
180 pts (0 absences)
160 pts (1 absence)
110 pts (2 absences)
70 pts (3 absences)
40 pts (4 absences)
These points will be added at the end of the semester.
For MoWe lectures, students missing 4 lectures won't receive any points.
Translate a Wikipedia article into Arabic Or record a video in Arabic explaining an algorithm covered in class.
150 pts
You can get points at most for 2 articles.

you can get points at most for 1 vedio.
Take good notes
75 pts
You can get points at most twice
Find a good online resource
20 pts
You can get points at most 5 times


All programming tasks and quizzes should be completed and submitted through the online system found hereYou will first have to register here.

In this website, you can see the available quizzes and programming tasks, your current rank, number of points collected so far, your current level and a time-line that shows how you have been doing since the beginning of the semester.


The following are the details of the levels:
  • Newbie: scored 0-24% of the total possible points (in quizzes and programming tasks posted so far).
  • Apprentice: scored  25-49%.
  • Expert: scored 50-79%.
  • Master: scored 80-99%.
  • Grand Master: scored 100% or more.


The following are more elaborate notes regarding the tasks:

Quizzes
  • All quizzes are open book and will be completed online.
  • Once you start solving a quiz, you have two hours. You can resubmit your answers multiple times (if you wish) through these two hours.
  • You are not allowed to discuss about any quiz question with anyone before the deadline of the quiz.
  • After the deadline, you will be able to see the points you have collected and the correct answers for the questions.


Wikipedia Articles
  • Why Translate? Watch this video
  • You can translate a Wikipedia article into Arabic about any of the following topics:
    (Master Theorem, Knapsack Problem, Longest Common Sub-sequence, Quick Select, Topological Sort, Breadth-First Traversal, Greedy Coloring, Backtracking, Branch-and-Bound, Activity Selection Problem, Adjacency List, Adjacency Matrix, Prim's Algorithm, Kruskal's Algorithm, Disjoint Set Data Structure).
  • If you wish to translate another article that is related to algorithms, then please notify me first.
  • It is advisable to translate an article after we have covered the topic in class!
  • In all cases, before starting to translate an article, discuss with me, so that I could make sure that no other student is already working on the same article and approximate the number of points you can collect for the article you have chosen.
  • Here are two links that can help you learn about how to author an article in Wikipedia: link 1, link 2.


Recording Videos

You can gain up to 200 points if you prepare a video in Arabic that explains one of the algorithms we have covered in class (or a closely related algorithm).

You do not have to appear in the video. You can only record your voice and your hand as you write/draw and explain the algorithm. Animations or sketches are also welcome.

Here are a few guidelines:


  • The video has to be in Arabic.
  • The video has to be posted on Youtube.
  • You have to ask me first about the algorithm you have chosen.
  • You can only get points for this task once, but you are welcome to do it more than once for the benefit of humanity!
  • The number of points you will gain will depend on the quality of the explanation, richness of content, clarity, etc.

Taking Notes
  • Are you good at taking lecture notes? Is your handwriting clear? Share the notes with others!
  • For each topic we finish, you can send me a scan of your notes. I will choose the best notes submitted to me and post them for everyone else. You can get up to 75 points (at most twice).
  • Wait until I post about it on the Facebook group. You can then send me scanned copies of your notes through email.

Finding Good Online Resources
  • Have you watched a video or read an online link about a topic we have covered in class? Tell us about it and get points!
  • You can send me an email about the link you have liked.
  • Beware! The judgement is subjective! If I like the link, you will get up to 20 points and I will share it with everyone on the course website.
  • You can at most receive 100 points in this category.


Cheating?
  • Exercises are meant for you to practice. Therefore, do not expect to get points for submitting the work of someone else. In fact, you will not only not get points, you will also lose points.
  • If you decide to be dishonest, here is how to compute the number of points you will lose:
    • 1st cheating attempt: You lose 2 x the points in the cheated task.
    • 2nd cheating attempt: You lose 3 x the points in the cheated task.
    • 3rd cheating attempt: You lose 5 x the points in the cheated task.
    • 4th cheating attempt: You lose 8 x the points in the cheated task.
    • Got the pattern? Yes, it is Fibonacci.
  • We don't care much if you helped someone cheat in the game or if you cheated yourself. For us, it is the same.
  • The role of the smiley policeman you see when you login is to arrest cheaters. Therefore, whatever he says is not negotiable.

  • "Is it OK if I discuss about the coding tasks with others in my class?" a student asked.
  • "Bien Sur!" the teacher replied with an awkward French accent.
  • "Discussions are always good. However, never show your code to anyone or look at the code of anyone else." continued the teacher.
  • "I don't have to add also that you should not write any piece of code for anyone or allow anyone to write any piece of code for you."
  • "What about the internet?" interrupted the student.
  • "It is the source of all sin and virtue at the same time!" the teacher replied.
  • "If you google around to understand a concept or fix a bug, you will learn a lot. But if you look for ready code to copy and paste from ... then expect a visit from the police soon"

Enjoy!!

No comments:

Post a Comment