| 20-ECES-228-001 |
Instructor:
Name: John Franco
Office: 821 Rhodes (Office Hours: T-H 11:00-12:00AM)
Phone: 556-1817
Email:
franco@gauss.ececs.uc.edu
Grader:
Xxxx Xxxx (xxxxx@email.uc.edu)
Office Hours: X:XX-X:XX Xxxxx Xxxxx XXXX
Description:
| The student will learn how to organize data for faster, more maintainable solutions to common programming problems such as sorting, searching, and optimization problems. The course focuses on a few fundamental structures and alternative machine representations. Thus, we consider lists, stacks, queues, trees, graphs, linked lists, heaps, and arrays. The advantages of data abstraction are described and illustrated. Algorithms based on the above topics are developed for some specific problems. Some tools of analysis are presented to provide the student with a rudimentary means of comparing alternative algorithms. |
Prerequisite:
| Computer Science II (20-ECES-122). |
Grading:
|
I will attempt to assign grades according to the descriptions below
based on evidence obtained from one midterm exam, one final exam, seven
homeworks, and contributory class participation. An "A" student is an
excellent performer, has an excellent attitude, and has remarkable
creativity, imagination, and knowledge. I would have complete
confidence in an "A" student to complete a task with minimal
supervision. Usually the "A" student will decide what the task is
without supervision (because usually the supervision does not exactly
know what the task is). The "A" student is motivated partly by pride
and partly by a desire to contribute to satisfying needs of other
individuals. A "B" student is a good performer. He or she can be
relied on to complete some tasks well. A "B" student has a pretty
good understanding of material with perhaps a few gaps here and there.
A "B" student will usually have to be told what to do and often cannot
act effectively independently of others. A "C" student has learned a
few things but is generally unmotivated and cannot be relied upon to
complete a task. Unlike a "B" student, a "C" student is often not a
hard worker and generally puts a minimal or even inadequate amount of
effort into a task. A "D" student is a slacker. An "F" student is
hopeless.
Exams will be graded on a scale from 0-100 and each homework will be graded on a scale from 0-10 if completed on time (see below for more details). These results will be used only as a guide to help classify the student as above. It is possible that a student with a higher "average" score will get a lower grade. For example: a student with one low grade but otherwise consistently high grades may be given a relatively high grade with respect to his or her "average" score if I am convinced that the low grade was a fluke. If a student who is unhappy with his or her final grade seeks an adjustment, that student should consult the descriptions above and be prepared to justify his or her claim accordingly. |
Homework Policy:
| Seven homeworks will be
assigned this quarter. All homeworks are programming assignments: in
each, a problem will be posed and the student will write and test C++
code to solve it. Each assignment has a due date and a grader's email
address which are clearly indicated. Source code only should be
submitted to the grader indicated before the due date indicated.
Submissions received on or before the due date will be graded on a
0-10 scale. Points are awarded roughly as follows:
Any submission received after the due date will not be graded. The graders will test the code you develop using g++ on a unix box. If your code does not compile using g++ the grader will send a note to you indicating that fact and will request a second version that does compile under g++. So, it is your best interest to use g++. Code compiled using Virtual C++ frequently does not compile under g++. |
Policy on Incompletes:
| None given except in extreme emergency (death etc.) |
Textbook:
| Data Abstraction and Problem Solving with C++: Walls and Mirrors, 4th Edition by Frank Carrano, Addison-Wesley, ISBN: 0-32124725-6 (2004). |
Accounts:
We will need to use
machines that have an ANSI C++ compiler and a text editor. The ideal
environment consists of g++ and emacs on a Linux, FreeBSD, or Mac box.
There are some Windows IDEs that may be useful as well. If you have a
UCENG account you are set. If not, and if you have a Windows based PC
at home, and you don't want to spend money, you can download
|
Joint Work:
| At this early stage in your technical development it is inadvisable for people to be working together unless all parties are contributing about equally. If more than two people submit essentially the same homework they will be asked to explain why and how. If the explanation is inadequate, all parties involved will be dismissed from the course. There is similar intolerance of students hiring someone else to solve homework problems or take exams, and of students using solutions from previous years and posted on course websites. |
Approximate Schedule, SUBJECT TO CHANGE
|