CSCI 280 INTRODUCTION TO ALGORITHMS
csci 280 INTRODUCTION TO ALGORITHMS |
spring 2005 |
course information |
|
Instructor: |
Esmail Bonakdarian |
|
Office Hours: |
|
|
Office: |
King 223D |
|
Monday |
13:00-13:20 |
|
Phone: |
440.775-8831 |
|
Tuesday |
11:00-Noon |
|
E-mail: |
esmail@cs.oberlin.edu |
|
Wednesday |
13:00-14:00 |
|
Web: |
http://www.cs.oberlin.edu/~esmail |
|
Friday |
13:00-14:00 |
|
|
|
|
Or by appointment and open-door walk-in |
|
TEXTBOOKS
Goodrich, M.T., Tamassia, R., Algorithm Design: Foundations, Analysis, and Internet Examples, Wiley 2001 (Required)
Weiss, Mark Allen , C++ for Java
Programmers,
Prentice Hall 2003 (Recommended)
Additional web resources will be made available on the class web page.
(see http://www.cs.oberlin.edu/~esmail/students.html for the appropriate link)
COURSE OBJECTIVES
The goal of this class is to introduce you to the fundamentals of data structures and algorithm analysis and design. Students will also learn about basic graph algorithms and various algorithmic techniques including dynamic programming, backtracking and greedy algorithms.
All algorithms will be implemented with the C++ programming language under Solar/Linux. The course will start with a brief introduction to C++, but students will no doubt want to continue their study of this language on their own in order to effectively use it throughout the semester.
General reading assignments will be given periodically. In order to keep up with the current topic being discussed in class, you are expected to read the relevant section of your text.
Prerequisites: CSCI 275/MATH 220. A basic proficiency with an OOP language (Java or C++) and *nix is assumed.
TENTATIVE SCHEDULE
While I dont anticipate any changes, I reserve the right to adjust this schedule if need be.
|
Week |
Exam |
Topic |
Reading |
|
Feb 7 |
|
Introduction & Overview. Intro to C++ |
|
|
Feb 14 |
|
Intro to C++, Analysis of Algorithms |
1, 4 |
|
Feb 21 |
|
Analysis of Algorithms, Review of basic DS/Algorithms |
1, 2 |
|
Feb 28 |
|
Stacks/Queues/Trees |
2, 3 |
|
Mar 7 |
|
Trees |
3, 9 |
|
Mar 14 |
|
Trees |
3 |
|
Mar 21 |
#1 |
Greedy Algorithms |
5 |
|
Mar 28 |
|
* SPRING BREAK * |
|
|
Apr 4 |
|
Dynamic Programming |
5 |
|
Apr 11 |
|
Graph Algorithms |
6, 7, 8 |
|
Apr 18 |
|
Graph Algorithms |
6, 7, 8 |
|
Apr 25 |
#2 |
Backtracking |
|
|
May 2 |
|
Student-driven/buffer/flex |
|
|
May 9 |
|
Wrap up |
13 |
|
|
|
|
|
|
May 18 |
Final |
7 - 9 PM |
|
Please keep up with your e-mails which will be sent to your CS accounts. For help on forwarding mail see: http://www.cs.oberlin.edu/~esmail/forward.mail.html
ASSIGNMENTS & EVALUATION
All assignments are due at the beginning of class, as defined by the registrars schedule.
Deadlines will be strictly enforced.
If you have a problem with meeting a deadline due to exceptional circumstances, you must make arrangements with me before the assignment is due. This means that you have to get my approval; it is not enough to just notify me.
All written work, including program documentation and user-interface text has to be in proper English and free of spelling and grammatical errors. We will strive for excellence in all of our work.
Programs:
Programming style is very important; therefore your code should be documented and formatted consistently and clearly -- both for hard-copy and on-line viewing.
Note that a program that works 100% correctly gets a B. In order to get an A, your program also needs to be clearly organized and well-documented and of course on-time.
You can use any standard style, as long as you stick to it. For those not certain as to what style to choose, I can provide some guidance (some minimal requirements and various programming standards are available via the student web page).
Programs have to compile and run correctly on the OCCS system, so be sure you test it there (the local Linux boxes may have slightly different versions of the compiler, so dont skip this test). Programs that do not compile on OCCS will not be graded so please make sure your program works before you submit it.
Policy on Late Assignments:
- Programs need to be submitted electronically by 11:59:59 PM on the due date to count on-time. You will loose 10% for each 24-hour period the assignment is late, up to a maximum of 5 days unless stated otherwise.
- All other assignments are due at the beginning of class. These assignments can be handed in up to one class period late for a 10% penalty (1 point minimum).
Please place your assignments on the desk at the front of the class. I will collect them into an envelope when I come to class whatever doesnt get into that envelope at that time will count as late.
- T4-Clause: Every student may apply the T4-clause (T4->Twenty4) to one assignment during the semester by sending me an e-mail before the assignment is due informing me of their intention and putting a big fat T4 on the front of the assignment in question. T4 will allow you to turn in one assignment one 24-hour period late without incurring a penalty.
Out of fairness to everyone these class policies will be applied consistently.
If you miss a deadline, you should still try to complete the assignment as this is the only effective way to learn the material. I will be glad to help - before or after the deadline.
Exams:
Exam 1: Week of March 21
Exam 2: Week of Apr 25
Final Exam: Wed May 18, 7 - 9 pm
Final exam times may only be changed with the permission of the Dean of Studies.
See http://www.oberlin.edu/dstudies/acadpolicies/finalsTimeChange.html for more information. Note that that specifically states: Travel schedules are NOT considered a legitimate reason to change exam times.
Regular attendance in class is required. The textbooks, while required, are supportive in nature, the bulk of the information will be presented in class lectures. Please note that you will be responsible for all material covered in class, so you may miss some important information by skipping class. If you must miss class, please make arrangements to get notes from a classmate.
You can use this form to note contact information for two classmates:
|
Name |
Phone Number |
Electronic Mail Address |
|
|
|
|
|
|
|
|
In cases where a student is on a grade border, excessive absence may influence the final grade.
Assignment |
Points |
|
2 Exams |
250 |
|
Final |
150 |
|
Programs |
500 |
|
Homework/Labs |
100 |
Total |
1000 |
Please keep all of your graded assignments until you receive your final grade.
GRADE ADJUSTMENTS
Scores for assignments should only be appealed by attaching a type written justification to the assignment in question and handing it in to me no later than one class session after the assignment was returned to you. I will review your case, and a final decision regarding any score adjustments will be made.
Time permitting assignment solutions will be covered in class and general questions about the assignment will be answered. Questions about specific individual scores cannot be discussed in class due to time constraints, Ill be glad to discuss your concerns during office hours.
HOW TO CONTACT THE INSTRUCTOR
E-mail: I usually check my mail several times a day, though it may not happen on occasion such as weekends or holidays.
Phone: My office phone number is 440.775-8831
Office Hours: In addition to my posted office hours, I am available on a walk-in basis if my door is open. We can certainly also set up a mutually convenient time to meet if the above is not possible. If my door is closed I am either not there, or busy with class preparation work, so please try another time, or e-mail me instead. Always come prepared with specific questions and a current program listing if needed.
THE HONOR CODE
The Honor Code has a straight forward application to this class. On all of the exams you are responsible for your own work; you may neither give nor receive aid during the course of the exam. If someone takes an exam at a different time than the rest of the class there may be no communication concerning the exam between that person and anyone else in the class, to even about whether the exam was easy or difficult.
The atmosphere is somewhat more relaxed for the programming assignment where you may discuss program design in only the most general of terms with others. You are responsible for your own specific design and implementation and in the end you must produce your own code and solution. Ill always be happy to discuss these with you.
According to the honor code, at the end of each academic exercise students shall write in full and sign the Honor Pledge:
"I affirm that I have adhered to the Honor Code in this assignment."
For more information on the honor system, please see:
http://www.oberlin.edu/students/student_pages/honor_code.html
STATEMENT ON CLASS CONDUCT
Out of courtesy for all those participating in the learning experience, all cell phones and pagers must be turned off before entering any classroom, lab, or formal academic or performance event.
In order to minimize disruptions to others, please arrive on time and do not leave class until it is over.
Being late is disruptive and disrespectful to everyone in class, please be on time.
Please refrain from eating, sleeping, talking, working on the computer, or any activities that are not appropriate for a classroom setting. This will create the best possible environment for all.
Finally I am concerned about what you learn in this class and the grade that you decide to earn. I understand that there may be a great diversity of background in the class, which could lead to difficulties for some with the course material. However, I do not believe that such problems reflect on a students ability.
If you are not performing at the level you would like, please see me as early as possible and I will help you to plan a strategy for mastering the knowledge and skills needed to perform well in this class. I encourage you to talk to me early if you are having problems with any of the material. The key to effective learning is communication.