Personal tools
You are here: Home Classes Fall 2004 - Spring 2005 CS 280 CSCI 280 INTRODUCTION TO ALGORITHMS
Document Actions

CSCI 280 INTRODUCTION TO ALGORITHMS

by admin last modified 2005-05-12 17:12

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 don’t 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 registrar’s 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 don’t 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 doesn’t 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, I’ll 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. I’ll 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 student’s 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.

 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: