COURSE GUIDELINES

CIS 083
Data Structures and Algorithms

Spring, 1998
Dr. Friedman

Office: Wachman Hall, Room 303
E-Mail

SUMMARY OF COURSE GOALS:

The purpose of this course is to provide exposure to and ample exercise with the fundamentals of the design and implementation of well structured programs -- programs that are concise, clear, easy to read, test and modify. Particular attention will be paid to the concepts of program and data abstraction. Numerous complete program examples will be illustrated in class, and a number of design and programming problems will be assigned. All programs will be implemented in the C++ programming language.

GRADES:
Base Grade:
  • 5% - class and lab participation
  • 15% - homework
  • 15% - quizzes (in lab; based on homework)
  • 30% - 2 exams (15% each in class, around weeks 5 and 10)
  • 30% - final exam
  • NOTE: These percentages are approximate, and can be expected to vary slightly depending upon individual circumstances, and strengths and weaknesses in student background. Homework is used only to raise or lower your grade and can affect your final grade by no more than one letter. Excellent homework could raise your Base Grade by as much as a full letter. Poor homework could lower your Base Grade by as much as a letter. If your exam grades do not average out to at least a mid-range D, your homework will probably not affect your grade much if at all.

    NOTE: I no longer give grades of C- D+, or D-. If your work does not meet a minimum satisfactory grade, you will receive a D or an F and you will have to re-take the course if you wish to continue as a CIS major.

    CLASS ATTENDANCE:

    If you miss class, please obtain notes and missed assignments from your fellow classmates. If there is anything that you do not understand, I will be happy to help you, but you have to make the first effort to make up the work. All assignments must be turned in on time. I will not give incompletes except under extraordinary conditions. I EXPECT EACH STUDENT TO TAKE THE INITIATIVE TO MAKE UP WHATEVER IS MISSED IN CLASS.

    OFFICE HOURS:

    By appointment (204-5559), or as available Monday through Thursday. I cannot always guarantee that I will be able to be in my office during these hours, but I will try. Your best bet is to make an appointment ahead of time and leave a number where you can be reached during the day in case of changes in my schedule.

    CHEATING:

    Academic cheating (such as plagiarism, copying during an exam, copying homework, stealing files and passwords, etc.) is strictly prohibited in this course. The penalty for the first offense will normally be an F in the course. A subsequent offense (in this or any other course) may also be referred to the University Disciplinary Committee.

    No collusion what-so-ever during an exam will be tolerated. In particular, no talking or other sharing of information (for example during open book exams) is permitted. Keep your eyes on YOUR paper.

    IGNORANCE OF ACCEPTABLE GUIDELINES OF CONDUCT IS NO EXCUSE.

    Your Temple Student Handbook (especially the section on Student Code of Conduct and Disciplinary Procedures) has information on this subject. Everyone in this class is expected to become familiar with this document. This reading should be completed no later than the third class meeting for this course.

    YOUR PASSWORD:

    Your password is your unique "key" to CIS computing resources. It is your key and is not to be shared with anyone else regardless of who it is or the reasons you might think you have. Misuse of your password may result in the removal of your computing access privileges and in University Disciplinary action. Please treat this password as your own personal property -- that's exactly what it is!

    WITHDRAWAL POLICY:

    You may withdraw from this course (with a grade of "W passing") at any time prior to the "magic date" specified by the University (usually about three weeks before the end of classes). It is up to you to find out when this date is for a given semester. I will generally try to give, grade, and return the SECOND EXAM in time for you to make a decision about what to do if you are not happy with your progress in the course. Students who simply "drop out" of class without formally withdrawing will receive a grade of F.

    HOMEWORK ASSIGNMENTS -- WORKING IN GROUPS:

    Your homework assignments are intended to help YOU learn the C and C++ languages and to help YOU master the software design and object-oriented concepts stressed in the course. I tend to give a lot of programming assignments and a good bit of reading. For most students in the class, doing the reading and the programming assignments is the only way you will master the concepts and ideas discussed; it is most surely the only way you will learn the C and C++ languages.

    Because of the amount of work given, it is expected and desirable for people to work together and help each other. Working with classmates should be a major component of the learning process. I will probably form groups of 3 students each early in the semester, and I will indicate for each assignment whether it is a group or an individual assignment. Group members will have to learn how to communicate with each other -- for starters, there is the phone, e-mail, and the lab time. Learn how to use these facilities!!! Help each other, but make sure that everyone pulls his or her own weight. Group work sounds easy -- it is NOT! It takes planning and communication and a sense of fair play and cooperation. It takes time -- but in the end, a smoothly working group can accomplish much more than individuals working alone.

    The work that you (or your group) turn(s) in must be YOUR OWN (our unique to your own group). In the event that two (or more) homework assignments are too much alike, the grade will be divided by two (or more).

    Because I view homework as a learning vehicle, you will not receive letter or numeric grades for your work -- just a check, check +, or check - . It is up to you to ensure that your homework effort serves its purpose -- for you to learn the material.

    LAB ATTENDANCE:

    Lab attendance is required, roll will be taken, and your presence will be recorded and can affect your grade. Lab is a great time for groups to meet.

    HOMEWORK DUE DATES:

    The due date for all programming assignments will be announced at least one week ahead of time. LATE assignments will be graded at half credit for up to one week late and no credit thereafter. Numeric grades will not be assigned to your homework but we will provide feedback in a timely manner for homework that is turned in on time. There will be regularly scheduled quizzes directly related to the homework, These quizzes will probably be given once a week, at the start of lab period and will generally last about a half an hour. If you are paying attention in class, doing the assigned reading, and working diligently on the homework you should have no trouble at all with the quizzes.

    All assignments should be carefully documented (commented). Your name, section, the date, and the title of your assignment (and your instructors name) should appear at the top of each program as part of the documentation.

    LATE ARRIVAL:

    I would appreciate it if all students would arrive for class and lab on time. As is the case with absences, you will be responsible for making up all work missed on your own. Late arrival for exams or quizzes will mean time subtracted from the total time you have to take the test. It is up to you to be sure you arrive on time for all class and all exams and quizzes.

    EXAMS:

    As for the exams -- no missed exam can be made up without a doctor's excuse or the equivalent. If you have something that will prevent you from taking an exam at the scheduled time, you are expected to notify me ahead of time so that alternative arrangements can be made.

    Exams will be designed to test your understanding of the C++ language, a few key features of C, the design and programming methods and processes used in class, and other relevant material about computers including the UNIX operating system, editors, compilers, loaders, etc.

    A final note:

    In signing up for this course, you have signed a contract to do the work that is required and to fully participate in course activities, including standard home-works, all labs, group/cooperative projects, quizzes, and exams. I expect you to live up to your end of the bargain. You will be graded according to how well you satisfy course requirements. If you have questions, come see me. Thanks.