An exploration of classic algorithms and their application in the real world using advanced features of the C++ programming language. Algorithm run-time complixity is examined with respect to the impact on applications. Advanced sorting and searching techniques are examined. Common file organizations and file processing techniques are presented.
Prerequisites: CIS 136.
Neapolitan and Naimipour; Foundations of Algorithms, using C++ Pseudocode, 3rd edition; Jones and Bartlett, 2003. ISBN: 0-7637-2387-8.
Grades are based on the following assessment items:
A final average is calculated according the the weights above and are rounded to the nearest full percent. The final grade is awarded according to the following scale:
|
|
|
Assignment will require programming and will usually include a written component. Acceptable programming languages for assignments are C++ and Java. Other programming languages may be used, but must be approved by the instructor in advance.
Programs should be well documented using comments. Please include, at the beginnning of your program, a comment block with your name, course number, assignment number, date, a brief description of the problem, and an overview of your approach to the problem. Also include comments throughout the program to clearly describe all steps in your algorithm. Each function should have a comment block describing the function, all parameters, and return value. Further, code should be indented to enhance readability.
Written assignment components should be produced by word processor when practical.
Program components are to be submitted in both printed and electronic form. Your instrutor will provide instructions for submitting programs electronically.
Tests will be written and will consist of problems and short answer questions. Usage of the computer will not be allowed during tests. Tests will be open-book and open-notes.
For classes that meet one evening per week, the test period will be during the second half of the class meeting.
The student will write a paper or implement a programming project that further explores some topic presented in, or related to, the course. A paper should be a minimum of 8 pages double-spaced, and is to include proper references. Whether the student chooses to write a paper or implement a programming project, the student will approve the topic/project with the instructor in advance.
At the end of the semester, the student will present his/her paper or project to the class in a 10-15 minute formal presentation.
Students who are active and attentive members of the class, and who contribute to the class from time to time, will receive 5 points for class participation. Students who fall short of this expectation will receive fewer points, commensurate with their level of participation. Also, students who do not abide by Classroom Protocol guidelines will receive a reduced class participation grade.
Regular attendance is an important factor contributing to the student's success in the class. Although much of the material covered in class comes from the textbook, some course content comes from the instructor's notes or other resources, and may be delivered only in lecture form. The student is responsible for all material covered in class, and should arrange to get notes from another student in the event of absence from class. The instructor's notes are not available for perusal by the students.
Your instructor keeps an attendance record for the class, however this record does not directly affect the student's grade. If a student has excessive absence and is not showing responsibility for the course material, a report of concern will be issued to the Advising Center.
If the student is absent on the day of a test, arrangements for a makeup must be made in advance of the test. Failure to do so will result in a grade of zero for the test.
Your instructor will announce the date and time that each assignment is due. This information will also appear on your instructor's web site. Note that, for some classes, assignment due dates might not correspond to class meeting dates.
By turning in assignments on time your work will be graded and returned in a timely manner (usually within one week), and with comments as appropriate.
Late work will be accepted up to two weeks past the due date and will be subject to any or all of the following:
Any work that is not turned in within two weeks of the due date will receive a grade of zero.
The Cedar Crest College Student Guide includes the following under Honor Philosophy, Community Standards for Academic Conduct, Academic Integrity:
Academic integrity and ethics remain steadfast, withstanding technological change. Cedar Crest College academic standards therefore apply to all academic work, including, but not limited to, handwritten or computer-generated documents, video or audio recordings, and telecommunications.
All Cedar Crest students shall:
- Only submit work which is his/her own.
- Adhere to the rules of acknowledging outside sources, as defined by the instructor, never plagiarizing or misrepresenting intellectual property.
- Neither seek nor receive aid from another student, converse with one another when inappropriate, nor use materials not authorized by the instructor.
- Follow the instructions of the professor in any academic situation or environment, including taking of examinations, the following of laboratory procedures, the preparation of papers, and the proper and respectful use of sharing of College facilities and resources, including library and computing resources.
- Abide by the Cedar Crest Computer Use Policy.
- If a student perceives a violation of the Academic Standards, he/she will go to their instructor.
- If you are unable to resolve the problem with the instructor, you should go to the chair of the department. If you need further assistance after consultation with the instructor and the chair, you should see the Provost.
Unless specifically designated by the instructor, assignments for this course are individual assignments, not group projects. It is reasonable and appropriate for students to discuss an assignment outside of class, but the actual assignment work is to be one's own. It is not appropriate to collaborate on assignments, nor is it appropriate to copy another student's assignment, alter its appearance, and present it as one's own individual work. Such behavior is plagiarism and a violation of the Honor Philosophy, and will result in a grade of zero for the assignment. A second offense will result in a grade of F for the course.
Students with documented disabilities who may need academic accommodations should discuss these needs with their professors during the first two weeks of class. Students with disabilities who wish to request accommodations should contact the Advising Center.
In order to remain in compliance with the Family Educational Rights and Privacy Act (FERPA), the following policies will be in effect with regard to the release of information related to the student's academic record (i.e. grades):
Your instructor may, at his option, offer the class an extra credit assignment, based on the overall need of the class. How such an assignment affects the grade will be determined if and when the extra credit assignment is offered. Individual requests for extra credit will not be granted.
The Cedar Crest College Student Guide includes the following under Honor Philosophy, Community Standards for Academic Conduct, Classroom Protocol:
Appropriate classroom behavior is implicit in the Cedar Crest Honor Code. Such behavior is defined and guided by complete protection for the rights of all students and faculty to a courteous, respectful classroom environment. That environment is free from distractions such as late arrivals, early departures, inappropriate conversations, and any other behavior that might disrupt instruction and/or compromise students' access to their Cedar Crest College education.
Anyone not registered for the course who wishes to sit in as a visitor must obtain permission from the instructor in advance. Class visitors are to adhere to the same classroom protocol as is expected from registered members of the class. For classes held in a computer classroom, visitors will not be permitted to use the computers in the classroom.
When a class is held in a computer classroom, the computers in the room are to be used for class-related activities only. Using the computers for Web browsing, instant messaging, gaming, or other non-class-related activities is prohibited.
Specifically, students are to follow these guidelines during class:
Any student violating this policy will be subject to the following penalties:
| Mo | Topic | Reading | |
|---|---|---|---|
| Aug | 23 |
Algorithm Efficiency and Analysis C++ Template Funcitons Sorting and Searching |
1.1-1.4.2, 2.1 2.2, 2.3, 2.4, 2.8, 7.1, 7.2, 7.4, 7.5, 7.6, 7.8 |
| 30 | |||
| Sep | 13 | C++ STL | notes only |
| 20 |
Graph Theory Graph Data Structure |
notes only | |
| 27 |
Dynamic Programming Test 1: Oct 4 |
3.1-3.3, 3.5, 3.6 | |
| Oct | 4 | ||
| 18 | Greedy Algorithms | 4.1-4.3 | |
| 25 | Backtracking | 5.1-5.7 | |
| Nov | 1 | ||
| 8 | Branch and Bound | 6.1, 6.2 | |
| 15 |
Number-Theoretic Algorithms Test 2: Nov 22 |
10.1, 10.2, 10.6, 10.7 | |
| 22 | |||
| 29 |
Presentations Other Topics |
||
| Dec | 6 |