Introduction to Programming

CIS 280 Syllabus

Spring Quarter 2007

Donald D. Derkacht

CIS 280A, Introduction to C++, 5 Credits

Tuesday and Thursday; 9:00 – 11:00 AM

AAR123 (Lecture)

AAR105 (Lab 7) (Lab)

Introduction to Programming in a C-Based Language (CIS 280) /
Offers an introduction to the art and science of computer programming using a language in the C-family of languages. Computer programs will be designed and implemented to solve problems in mathematics, science, and business.
Prerequisites: MATH 099 and CIS 180

(Credit Quantity: 5)

General Comments: There are many programming languages that have been designed based on the syntax of the C programming language, such as C++, C#, and Java. CIS280 provides an introduction to algorithms, space and time complexity, searching and sorting, and data structures using the C# programming language. This syllabus is a general guide and I reserve the right to make changes, adjustments and correct mistakes.

This syllabus is a general guide to CIS 280 and I reserve the right to make changes, adjustments and correct mistakes. This shall be a great class. Concerning the agenda before us, we might consider carefully the words of the poet:

“The heights of great men [and women] reached and kept,

were not obtained by sudden flight,

But they while their companions slept,

were toiling upward in the night.”

Henry Wadsworth Longfellow (1807 – 1882)

Also, the following portion of a poem from LOTR is important:

ENT:
When Spring unfolds the beechen leaf, and sap is in the bough;
When light is on the wild-wood stream, and wind is on the brow;
When stride is long, and breath is deep, and keen the mountain-air,
Come back to me! Come back to me, and say my land is fair!
ENTWIFE:
When Spring is come to garth and field, and corn is in the blade;
When blossom like a shining snow is on the orchard laid;
When shower and Sun upon the Earth with fragrance fill the air,
I'll linger here, and will not come, because my land is fair.

Instructor Information: The following table shows some basic instructor information.

Instructor / Donald D. Derkacht
Department / Business (CIS)
Office / Vocational Building, Room 102
Telephone / (360) 442-2723
Email /

The following table shows my schedule for this quarter.

Monday / Wednesday / Friday
5:00 – 6:00 / Office Hours
6:10 – 7:10 / CIS 252 (Lab Voc. 117)
Tuesday / Thursday
9:00 – 11:00 / CIS 280 A (AAR 123, Lab 7) / CIS 280
11:10 – 12:00 / CIS 252 A (Online, Lab Voc. 117)
1:00 – 3:00 / Office Hours / Office Hours
4:00 – 6:00 / CIS 284 N (AAR 123, Lab 7) / CIS 284
6:15 – 8:20 / CIS 180 N (AAR 124, Lab 3) / CIS 180

Please note: if you need help during office hours, but for whatever reason cannot meet during those times, then please schedule an appointment. You may also come for help at any time. If the door is shut and it is outside of office hours, then I am either not there or in a time bind. But office hours are the best time.

Mistakes in this Syllabus: I am not bound by mistakes in this syllabus and reserve the right to make necessary corrections.

The Class Text: The class text is Computing with C# and the .NET Framework by Art Gittleman. ISBN: 0-7637-2339-8. This is a Jones and Bartlett Computer Science Publication.

Course Description: CIS 280 provides an introduction to elementary data structures using the C# programming language.

Communication: Communication, written as well as spoken, is one of the premier skills. Part of a robust problem solving methodology and well conceived design spring from neatness and organization. Disorganized work is too often a symptom of equally disorganized thoughts. Programming and text assignments, etc., that show inadequate levels of organization will not fare as well as work that is well done. Please do not give to me to grade an assignment whose pages have been ripped from a spiral binder. Do not dog ear your work; instead use a stapler. Commit to a uniform paper size. Identify each assignment with your name, what the class is, what the assignment is and the date. I will provide sample documentation for a program so that each student will know what I expect concerning this.

Academic Integrity: Work submitted by a student should reflect his or her own thought and intellectual property. All other work should be cited. The following should be avoided: cheating, which is willfully using or attempting to use in the pursuit of any academic exercise materials, study aids, information, computational devices, etc., that have not been authorized by an instructor; fabrication, which is the willful or unauthorized falsification or invention of any data and information, citation or document or lying during an investigation concerning cheating, fabrication or plagiarism; plagiarism, which is willfully representing the words, thoughts and intellectual property of another as one’s own. Under United States copyright law, any document that is created, such as a mathematics assignment or computer program is automatically protected by copyright. Any student copying the assignments of other will be in violation of the copyright. Further,

“Plagiarism is committing literary theft by presenting as new and original an idea or words from an existing source. Plagiarism occurs whenever you attempt to pass off those words or ideas as your own. A student shall be subject to disciplinary action for acts of academic dishonesty in violation of the Academic Code or for failure to meet the accepted academic standards of the College (2004-05 Student Handbook 21, 37).”

Anyone caught cheating on any assignment, programming project, quiz, test, etc., will receive a zero on that particular “assignment”. If cheating occurs a second time, an F in the class may well be the end result.

Minimizing Classroom Disruptions: During the lecture and lab time slots, please deactivate cellular telephones and pagers. During the lecture, please listen quietly, both to myself and others when given an opportunity to move forward the class agenda. Please do not engage in private, autonomous conversations during the lecture. This is very disruptive, especially when the subject of the day is programming.

Incompletes: A failing grade is not a legitimate excuse for obtaining an incomplete. The incomplete exists for those who are doing well but run into trouble at the end of a quarter and are unable to finish. However, the incomplete is given in the context of the bulk of the work having been satisfactorily completed, so that finishing the remainder of the work at a more opportune time is not a significant hurdle and could be concluded in a matter of a week or two of effort.

Individual logins: Please note well the following information concerning access to the computers in the Instructional Computing Center.

Beginning fall quarter all students will be required to enter individual logins to use computers in the Instructional Computing Center. To obtain their login information, students will need to bring their LCC student photo ID cards to the Help Desk in Lab 2 (AAR 110). No login information will be given without photo ID. They will be given their logins and passwords by the lab assistants, Cindy, or me. This change coincides with an upgrade to Windows XP and Office XP.

Once logged in, students will be able to save their work in their own My Documents folders.

Please remind your students that if they wish to use the LCC lab computers, they must obtain their login information prior to doing so. The generic logins have been disabled.

Warning: do not rely on the system to archive your work. You are responsible for provide the documentation for each assignment in a timely fashion; viz., on the due date. If the system loses your work, that is your problem and not mine. Archive it on a flash disk. Also, create a hard copy of each programming assignment. Also, keep each assignment for study, use during examinations (if open book) and as a resource for later programming classes.

Visual Studio .NET 2005: Through the Microsoft Academic Alliance, in which LCC participates, those students taking this class can obtain a free copy of Visual Studio .NET 2005 for use on their home computer.

Class Work: Various kinds of assignments and tests comprise the graded material of this course. These are detailed in the following table.

Tests: There are two tests, a mid-term and a final examination. Each examination will be comprehensive and may cover material from the text, programming assignments, lectures and any collateral material. Tests will emphasize programming and there may be questions of other types as well, such as true/false, multiple choice, essay, etc. The mid-term will be given shortly before mid-term grades are due. The final examination will be given according to the LCC published final examination schedule.
Text Assignments: Problems may be found at the end of each chapter in the class text. Each student is expected to work those that are assigned as part of the course work. These problems may involve programming, but are usually general knowledge type questions. I will not collect text assignments for a grade. However, each student should make every effort to work the problems to gain a deeper knowledge of the subject. The tests may well, to a certain degree, reflect the question assigned.
General Note: The article review, the quizzes and the programming assignments each carry the same value. E.g., if 10 programming assignments, 5 quizzes and the single review article are collected by the end of the quarter, then together these form half of each student’s grade and each assignment carries the same value. So, for this example, each would be worth a total of 50 (out of 100)/16 = 3.125 points. The programming project will count as at least three programming assignments.
Also, I will not accept any handwritten documentation for programming assignments, quizzes or the article review. You may use Visio for flowcharts, as these may not be hand drawn. I expect professional documentation: this includes grammar, spelling, organization, clarity and so forth. For the mid-term and the final, handwritten work is acceptable, but it must be neat.
Article Review: A single article review is due by mid-term. These may be based on any article that you find in the area of computer science. The review must be at least two pages in length and include a copy of the article being reviewed.
Quizzes: Quizzes may be unannounced or scheduled. These are usually programming oriented but also may cover general knowledge. If a quiz is given during the lecture, these cannot be made up. A programming quiz can be. It is the students’ responsibility to track all assignments, including quizzes, and make sure they are completed.
Programming Assignments: Along with the examinations, programming assignments form the bulk of the class work. There will be at least five such assignments and these should reflect each student’s individual work. Programming assignments will be partly graded in the lab. In the lab I will determine if the program being submitted for a grade functions correctly, and has a well designed user interface. At this time, the documentation for the particular assignment must be ready, as I will collect the documentation and mark it with the partial grade concerning correctness and interface. The overall grade will also depend on the quality of documentation, which should include a flow chart, a hard copy of the source code properly commented and any other material. Also, when programming assignments for certain weeks are very short, more than one programming assignment will be given. See the sample program to understand the format I expect when grading your programming assignments. This sample will be given to each student later in the week. Your documentation should follow the structure of the sample documentation that I provide, include the grading table on the last page. I will not accept programming assignments on disk and I must see them work in the lab- no exceptions.
Also, please note especially well: I allow lab time during the class time slot to work on programming assignments. It is during this time I grade, concerning correctness of execution and interface clarity, programming assignments. This time is also provided for each of you to work on your programming assignments and receive help from me, and others, if needed. However, there is not sufficient time during lab for most people to finish their programming assignments. I expect each of you to use time outside of class to complete these assignments. I expect that at least eight to ten hours per week outside of class is needed to complete the assignments. You may either use your own computer and those available in the labs. Start early. Then if you run into problems there will be sufficient time to seek help and thinking space. Also note that no assignments will be taken after the last day of lecture.
Late Work: All programming projects and other assignments, expect for quizzes, are due seven days from when they are assigned. However, see the following.
Programming projects, and other assignments, will be accepted without any questions asked up to one week late. This gives you some latitude for minor emergencies and sunny days. However, the assignments from the second to the last and the last week of the quarter will not be accepted late, for obvious reasons. Those assignments are due no later than the last day of instruction.
Programming projects, and other assignments, that are more than a week late will be accepted only under prior arrangement between the instructor and student. If, for example, you are sick, let me know and I will accept the work when you are well and back on campus. A zero will result on any assignment more than a week late for which a prior agreement has not be negotiated.
Please do not miss tests unless you have a sickness that can be spread to others. Wait until you are well. Also, note well: I do not like to give tests to individuals who cannot take the mid-term or the final during the assigned time slot. However, under extremely extenuating circumstances (illness and so forth), I may consider allowing a student to complete the midterm on a different day than the one selected for the test. However, do not expect this test to be the same as that taken by the class. It will not be, and may even be more difficult, as I have a limited amount of time and do not like to spend it writing multiple tests. For me to give the same test outside the allotted time slot to an individual student would violate the integrity of my examinations. Note well: if a student misses a test without prior approval a score of zero will result. In this case, the test cannot be made-up.

You may mind storm together when working on the various assignments, except for tests, but make sure that you complete work that is original and is uniquely yours. If you rely on help to understand a difficult concept, re-forge it on the anvil of your own thinking and make the material your own. Do not copy the work of others.