California State University Stanislaus

CS 3100: Data Structures and Algorithms

Fall 2008

MWF 11:15 am - 12:13 am, P 114,  Dr. Melanie Martin


[Basic Information]         [Announcements]         [Calendar/Assignments]          [Links]   

Welcome to CS 3100, Data Structures and Algorithms

Course Description

Fundamental concepts and abstraction of data structures. The design and analysis of algorithms involving such data structures as arrays, stacks, queues, lists, trees, strings, graphs, and files. Techniques for estimating the time and memory requirements of computer programs. Several large programming assign­ments.

Goals:

Announcements and Upcoming Events

9/5/08

Welcome to CS 3100!

9/29/08
Wednesday and Thursday Office Hours this week are cancelled due to RSCA Week - please contact me for an appointment if you need to see me.
Come see the posters at the event center on Wednesday and Thursday!
12/3/08
Lab Assignment Amnesty
All lab assignments turned in have been graded and handed back in class. If you lost points for anything, you can correct and resubmit up to 11:15 am on Friday 12/12/08 (sooner is preferred). You must email me to notify me that you have uploaded something new to have it regraded.

Basic Information

Textbook is Data Abstraction and Problem Solving with C++(Fifth Edition), by Frank M. Carrano                

Instructor: Dr. Melanie Martin                                  Office: Demergasso-Bava Hall 276

Email: mmartin@cs.csustan.edu                               Office Phone: (209) 667-3787

Web Page: www.cs.csustan.edu/~mmartin

Office Hours: 

Monday                  12:15 – 1:00 PM  and 4:35 – 5:35 PM
Wednesday              4:35 – 5:35 PM
Thursday                 6:00 – 6:30 PM
Friday                     12:15 – 1:00 PM
and by appointment.

Best way to contact Dr. Martin:  Email mmartin@cs.csustan.edu  Please put "CS3100" in the subject line of the email.

Prerequisite: Passing grade in CS 2500 (Computer Programming II) or equivalent.

Warning: I reserve the right to make changes to the syllabus at any time during the term by announcing them in class and on my web page.

Course Email list: There is an email list set up for this course. Please join it at your earliest convenience, since class announcements and discussion may take place on the list.
To sign up, go to: http://majord.csustan.edu
Enter your email address and cs3100-1 as the name of the list.
Alternately, send email to:
cs3100-1-request@pollux.csustan.edu
with the following in the message body:
subscribe
end


COURSE COVERAGE:

We will cover most of chapters 5, 9, 8, 11, 12, 13 and portions of 10 as necessary: recursion, algorithm efficiency and sorting, advanced C++ topics, tables and priority queues, advanced implementation of tables, and graphs.

BASIC INFORMATION ABOUT CLASS SESSIONS:

Each class session will be some mixture of laboratory and lecture activities. Mainly the purpose of class sessions is twofold: to help students absorb the readings and related material, and to help them complete the programming assignments.

Students are responsible for working on programming assignments outside of class time. Doing the assignments can fill up a lot of hours. To keep the pace, you will need to "work smart." In any case, expect to spend up to ten hours per week on this class, in addition to class time.

My expectation is that everyone will attend all the class sessions and keep current with everything that is happening in class. 


Grading and Policies

TESTS & GRADING:

Your grade will be based on two main components: tests and programs. In addition, 10% of your course grade will be for participation. This component will include attendance, and participation in discussions, and presentations.

There will be a set of five tests and a set of four or five programming problems (possibly including written exercises, and smaller weekly programming assignments).

Your score on the set of tests will be the average of your four best scores on the individual tests.

Your score on the set of programming problems will be the average of your scores on all the individual programs.

To pass the course you must: If you meet the conditions above I will compute your course grade by giving a weight of 50% to your score on the test set, a weight of 40% to your score on the set of programming problems and a weight of 10% for participation.

MISSED EXAMS AND LATE ASSIGNMENTS:

I will give no make-up, late, or early tests.

Get started early on assignments. That way, if you run into difficulty, you can seek help in class and/or office hours in a timely fashion.

I will assess a late penalty of 10% credit per calendar day (including holidays and weekends) on programming assignments turned in between one and five days late. I will not accept programming assignments late more than 5 days.

We can have class discussions about test dates and program due dates. I may be willing to change some of these dates. If you want a change in the schedule, please bring this up (in class, preferably) as soon as possible, and not at the last minute.

If you cannot finish a programming assignment on time, please turn in whatever you have done. It may be possible to get partial credit on an unfinished program, depending on the quality of the work and the circumstances. If you are having difficulty on a program it is crucial to get help as soon as possible and to maintain communication about your progress.

I'm sorry but if you fail to turn in the final version of just one program by the fifth day after the due date, you fail CS 3100. You will not be allowed to continue in the class. I will not make exceptions. Final grades will be based on projects and assignments, a term project and exams. A plus and minus grading scale will be used to assign final grades.

Academic Honesty: The work you do for this course will be your own, unless otherwise specified. You are not to submit other people's work and represent it as your own. I consider academic honesty to be at the core of the University's activities in education and research. Academic honesty is expected at all times in this course. As further clarification:

RESPONSIBILITY FOR YOUR OWN WORK:

Sometimes it can be difficult for students to figure out the difference between 'cheating' and 'working smart.' Here is some guidance:

Programming Assignments: When your purpose is to clarify the meaning of program specifications, you may discuss programming assignments with other people, including your classmates, as much as you like. You may also freely discuss the relative merits of various general approaches to designing and engineering solutions to a programming assignment.

You are permitted to use algorithms or segments of code from

  1. any printed material available for student check-out in our library,
  2. our course text, or
  3. any programming textbooks to which you have access.
You are permitted to share such material, as described in 1-3 above, with other members of this class. When you make use of such material you must cite the source appropriately.

You may ask me for help and hints on assignments. I prefer that you ask questions in class, so that everyone has a chance to benefit from the discussion.

On the other hand, Tests: You must write your tests with no discussion or help from anyone. The one exception is that you are allowed to come forward and ask me to clarify the meaning of a test question, if you wish. It will be up to me to decide how to answer, or whether to answer at all. I will tell the class any new information that arises from such an exchange.

Penalties: If there is compelling evidence that an assignment or test was not done according to the above criteria, I will withhold credit.

(Portions of the above are borrowed from Dr. John Sarraille's CS 3100 course description, with permission.)

Cell Phone Policy:
During class time, your cell phone is to be turned off and out of sight. Any use of a cell phone during class will result in confiscation of the phone until that day's class has ended or your removal from the class for that day. If you attempt to use your cell phone or leave it on during an exam, you will be considered to have finished your test, and I will collect your exam at that time.  Exceptions may be made only if you discuss your situation with me prior to the start of that day's class, in this case, your cell phone must be set to vibrate/silence.

Important dates:

(See Schedule of Courses or Academic Calendar)

Last day to add a class:                     

Sept 17;

Last day to drop a class:

Oct 1;

Last day to change grade options (CR/NC): 
Nov. 22;

No classes:

Oct 13, Nov 11, Nov 27, Nov 28, Dec 10.