Course Syllabus
Description and Objective:
This course is intended as an introduction
to data structures, algorithms, and more advanced programming
techniques. Some topics covered include recursion, linked lists, trees,
graphs, sorting, hashing, and the analysis of
algorithms. The main objective of the course is to give students
exposure to more advanced programming tools. We hope to achieve this
goal by presenting higher level concepts in lecture and hands-on
computer practices in the lab. The lectures will be taught independent
of a particular programming language; students will be able to program
in either Java or C++.
Text:
The required text book for this course is Algorithms in
C++ or Algorithms
in Java Sedgewick,
(Addison-Wesley) 1998. 3rd edition. We will use both the
Volume 1-4, and The Volume 5 books.
People:
| Ben Hescott | Debajyoti Bera |
| 64 Cummington Street Rm. 221 | 64 Cummington Street Rm. 221 |
| 617-358-2354 | 617-358-2354 |
| bhescott@cs.bu.edu | dbera@cs.bu.edu |
|
Office Hours: T 1- 3, W 12-1, F 11-12 |
Office Hours: T 3-4, W 10-12 |
Course Web Page:
The course web page is http://cs-people.bu.edu/bhescott/cs112. Please
visit the website frequently for course materials, homework
assignments, and announcements.
Course Mailing List:
Each student is required to join the course mailing list. You can do so
by running csmail while on csa at a shell prompt. Namely
while on a Linux machine in the computer lab open a
shell window and type csmail
-a cs112.
Lectures/Labs:
Lectures in the course will focus on the higher level design of algorithms and data structures. Examples will be presented in pseudocode. All students are required to attend lectures and are responsible for the material presented. The lab is intended to reinforce ideas presented in lecture, here students will practice the concepts by implementing actual algorithms and data structures using Java or C++. It is imperative that students attend the lab sections in order to successfully complete the homework assignments.
Homework:
Homework will be assigned regularly in the course, it will come in three forms:
Reading Assignments: It is important that students use the textbook to supplement their understanding of the material presented in the lecture and the lab.
Written Assignments: This homework will consist of things like essay questions, small research work, and "math like" problems. These assignments are to be turned in on paper at the beginning of class on the due date specified.
Programming Projects: This homework will extend the programming work done in the lab. These assignments will be done on the computer and checked via the computer. It is important to repeatedly test your code before submission, all programming projects will be tested on the CSA cluster. These assignments will be submitted over the web.
Late Homework:
Because of the size of the class and the amount of homework 15% of the total number of points for the assignment will be deducted daily. No homework will be accepted after one week.
Exams:
There will be two exams during the course, a midterm that will cover material from the first half and a cumulative final exam which will be weighted toward material covered after the midterm. The midterm will be around October 25. The final exam is going to be held December 15 at 9:00am.. Makeups will not be given.
Grade Calculation
| 40% Homework |
| 25% Midterm |
|
35% Final |
Academic Misconduct:
The first reading assignment of the course is to read Boston University's Academic Code of Conduct, located at: http://www.bu.edu/cas/undergraduate/conductcode.html
A few highlights are presented to emphasize importance.
Absolute adherence to the code of conduct is demanded of the instructor, teaching fellow, and students. This means that no matter the circumstance any misconduct will be reported to Boston University.
While students are encouraged to discuss course materials, no collaboration is allowed on homework. Specifically you may discuss assignments and projects verbally, but must write up or work on the computer alone. In addition any discussion should be documented. An example on the project would be "Thanks to Bera for showing me how to initialize the linked list." Another important example is citing a source, this could be "This information was adapted from www.boston.com"
While computers enable easy copying and collaboration both with other students and materials from the Internet, it is possible to use these same computers to detect plagiarism and collaboration.
If any student does not understand these terms or any outlined in The Academic Code of Conduct it is his/her responsibility to talk to the instructor or teaching fellow.
Feedback:
Your thoughts and concerns on this course are important. You are encouraged to give feedback to the instructor and teaching fellow throughout the term. As always students will be asked to fill out a course evaluation at the end of the term.