Introduction to analysis and complexity of algorithms. Big-O notation. Running time analysis of algorithms for traversing graphs and trees, searching and sorting. Recursive versus iterative algorithms. Complexity, completeness, computability . 3.000 Credit Hours.
CSCI 180: Data structures and Math 143: Calculus 2. While not officially required, you are also strongly encouraged to have completed either MATH 135: Discrete Mathematics or MATH 266: Principles of Mathematics before taking this course.
Aside from the textbook, I will also use lecture notes written by Jeff Erickson for the algorithms course at University of Illinois. His complete notes are available on his webpage here; I'll also try to post the relevant notes in the course schedule as we go. He also has a list of old homework and exam problems on his webpage, which are a good additional source for practice problems.
Outside of office hours and lectures, email is usually the easiest way to get ahold of me with questions. I will check email several times throughout the work day, and will also check email once per evening to answer questions and resolve issues. Email contact over the weekend will likely be more sporadic, although I will be sure to check at least once.
Laptops and other electronic devices are unnecessary for most of this course, and are frequently a distraction to other students in lecture. Since you are unlikely to need a computer during lecture, please do not bring laptops or other electronics for use in class.
Also, please ensure that your cell phone is set to vibrate or silent during lecture, and do not send text messages of any kind.
There will be homework due every week, for a total of about 10 homework assignments over the course of the semester. Some homeworks will be written assignments turned in during class, while others will be presented orally to the instructor.
For all homeworks, you are allowed to work in pairs. In fact, given the difficult nature of the assignments, I encourage all of you to work with another student, as the best way to learn this material is to discuss and problem solve in a small group.
As discussed below, students are expected to complete assignments using only approved course materials.
It is important in this course to write clearly and concisely. Don't babble, regurgitate, or otherwise try to fake out the instructor if you don't know the answer! Include relevant details or citations, and make sure to write the entire solutions clearly and in your own words.
For any question, either on the homework or on an exam, if you do not know the answer, you may write "I don't know" and nothing else to receive 25% of the total points for that problem. So if you don't know the solutions, don't waste the grader's time by writing steaming piles of crap for a solution; it'll only make her grumpy.
Letter grades will be based on each students overall percentage of awarded points according to the following formula.
Any modification to this scale at the end of the year will be in favor of the students. That is we may later decide to award an A to a student who is slightly below the cutoff, but we certainly will not deny an A from someone who is above the cutoff.
No matter what curve I impose, I maintain that the minimum passing grade for this class is a 50% - so if your average is lower than that, you will fail this class.
In general, extra credit will not be assigned in this class. The programming and homework assignments provided will be challenging enough for most students, so I would like for students to focus on the assignments provided.
Upon occasion (and solely at the instructor's discretion), some small extra credit activities may be included, either by announcement in class or as part of an assignment. Please keep in mind that the extra credit is unlikely to significantly affect your grade; if you are concerned about your final grade, it is much better to focus your energy on the regular assignment. Extra credit is solely designed to provide an opportunity to students who wish to explore the topics further.
And no, you can't say "I don't know" on an extra credit problem to get 25% of the points!
Late homework will suffer a penalty of 10% for every hour they are late. For example, homework which is submitted one hour late is worth at most 90% of the total credit.
In unusual circumstances, such as extreme illness or injury (documented by a doctor's note), family emergencies, etc., please contact the instructor as early as possible to arrange accomidations.
I am happy to regrade any assignmentss or exam problems which you think were unfair or incorrect. Please bring me the original assignment, plus a written explanation of your question or complaint, within two weeks of the time the paper in question is graded and returned to you.
In the context of this course, I encourage students to discuss general course material, which includes studying for exams, sharing notes if a student must miss class, and working on any practice problems which are assigned. You are also allowed to turn in homework assignments in pairs. I also encourage you to discuss problems with other students, but please be careful to write up all solutions separately and do not copy any material from another student. As a good rule of thumb, make sure to write your solutions without using any notes or papers written while talking to anyone other than your partner. Remember, you will be on your own in the exam, so it is in your own best interest to make sure that you really understand the material and can solve each problem on your own!
You are allowed to use outside sources of information in this class, including textbooks and webpages. If the complete and correct answer is on page 263 of the lecture notes, the best solution you can submit is "See page 263 of the lecture notes." Period. However, if you find a solution from any other source, such as a web page, a journal paper, a different algorithms textbook, or your mom, you must rewrite the solution in your own words, and you must properly cite your sources. Assume the graders have access to all the official course material, but nothing else. While we strongly encourge you to use any outside source at your disposal, please remember that the homework is supposed to demonstrate that you understand of the material, not just how to use Google and a printer.
Students who violate academic integrity policies will be reported to the department. First time offenses on homework will result in a minimum of a failing grade on the assignment in question, with egregious or repeated offenses resulting in failure in the course. In addition, students may be referred to the College of Arts and Sciences for further disciplinary action.
The following is a statement of minimum standards for student academic integrity at Saint Louis University; I expect full compliance with the policies described.
The University is a community of learning, whose effectiveness requires an environment of mutual trust and integrity, such as would be expected at a Jesuit, Catholic institution. As members of this community, students, faculty, and staff members share the responsibility to maintain this environment. Academic dishonesty violates it. Although not all forms of academic dishonesty can be listed here, it can be said in general that soliciting, receiving, or providing any unauthorized assistance in the completion of any work submitted toward academic credit is dishonest. It not only violates the mutual trust necessary between faculty and students, but also undermines the validity of the University�s evaluation of students and takes unfair advantage of fellow students.
Further, it is the responsibility of any student who observes such dishonest conduct to call it to the attention of a faculty member or administrator.
Examples of academic dishonesty would be copying from another student, copying from a book or class notes during a closed-book exam, submitting materials authored by or editorially revised by another person but presented as the student�s own work, copying a passage or text directly from a published source without appropriately citing or recognizing that source, taking a test or doing an assignment or other academic work for another student, tampering with another student�s work, securing or supplying in advance a copy of an examination without the knowledge or consent of the instructor, and colluding with another student or students to engage in an act of academic dishonesty.
Where there is clear indication of such dishonesty, a faculty member or administrator has the responsibility to apply appropriate sanctions. Investigations of violations will be conducted in accord with standards and procedures of the school or college through which the course or research is offered. Recommendations of sanctions to be imposed will be made to the dean of the school or college in which the student is enrolled. Possible sanctions for a violation of academic integrity include, but are not limited to, disciplinary probation, suspension, and dismissal from the University.
Any student who feels that he or she may need academic accomidations in order to meet the requirements of this course, as outlined in the syllabus, due to the presence of a disability, should contact the Student Success Center. Please call the office at (314)977-8885, send an email to firstname.lastname@example.org, or visit the Student Success Center on the 3rd floor of the Busch Student Center. Confidentiality will be observed in all cases.
Our department employees many junior/senior computer science majors to help out in our department labs. Those students are also available to provide assistance with course materials at such times.
Our department web page maintains a current list of the available times and locations.
As stated in the Academic Integrity policy, these workers are an acceptable resource for help, yet you should still document both the source of the help as well as the extent, if significant.