Course: CS220, Computer Programming I
Course Description:
The main purpose of this course is to provide students with a comprehensive
understanding of the C++ programming concepts and techniques, to develop the
ability to logically plan and develop programs, to learn to use object oriented
programming and design, and to learn to write, test, and debug programs using
C++. Topics will include IO, Expressions, Selection, Repetition,
Functions, User-Defined Simple Data Types, Namespaces, Files, Arrays, Strings,
Recursion, Structs, Vectors, Classes and Data Abstraction, Inheritance and
Composition, Pointers, Virtual Functions, Overloading and Templates, Linked
Lists, Stacks, and Queues.
Course Goals and Course Objectives:
This course covers the one-semester CS1 curriculum using C++. The course begins
with core computer science concepts and moves into data structures in the second
half. OOD methodology is stressed, as are searching and sorting algorithms, and
basic coverage of abstract classes. Each new concept is introduced in the
textbook with complete programming examples, extensive exercise sets, and clear
visual diagram.
Course relationship to Major Program and Department:
This course will enable the student to have a better understanding of computers
in the business environment.
Course Relationship to Content Area Knowledge and Skills:
This course will enable the student to have a good understanding of computer
software applications. It will enable the student to design and prepare
data for computer processing in a high level application such as C++. The
student will be able to use basic problem solving skills such as identifying,
defining, postulating and evaluating, planning and acting, and assessing
results. The student will understand one’s own and others’ ethics and
values. The student will be aware of contemporary scientific and
technological trends and implications for the future. The student will be
able to send, receive, and interpret information which is presented graphically
and numerically. The student will understand the power and limitations of
science and technology in a changing world. The student will be aware of
how societies, institutions, and individuals are responsible to see that
technology is used ethically and appropriately.
Text: D. Malik, C++ Programming: From Problem Analysis to Program Design, Third
Edition. Course Technology Incorporated, 2007, ISBN 1-4188-3639-7
Topics or Units of Instruction:
· An Overview of Computers and
Programming Languages
· Basic Elements of C++
· Input/Output
· Control Structures I
(Selection)/Control Structures II (Repetition)
· User-Defined Functions
I/User-Defined Functions II
· User-Defined Simple Data
Types, Namespaces, and the String Type
· Arrays and Strings
· Applications of Arrays
(Searching and Sorting) and the Vector Type
Additional Readings (Suggested): Supplementary information for the course is
available from the publisher at http://www.course.com. There will also be
additional information available at http://pending. This Web Site will contain
class notes, class announcements, exam summaries, the course syllabus, test
dates, and additional links. Answers to the end of chapter review questions and
student assignment files also can be obtained from the Web Site.
Methods of Instruction and Learning:
You are expected to read each assigned project prior to the lecture. Lectures
will be short, to the point, and address the highlights of the Project for that
week. Most of the class time will be spent working on your Laboratory
assignments.
Weekly Laboratory assignments can only be handed immediately BEFORE lecture
begins the following week. Laboratory assignments handed in after lecture begins
are considered late.
No assignments will be accepted more than one week late. Late assignments are
penalized 25%, and assignments two weeks late are penalized 50%. Plan to spend
approximately six to eight hours each week working on laboratory assignments.
Make sure your name, student ID, and exercise number appear in the upper-left
corner. If an exercise has multiple sheets, then staple them together. Do not
staple different assignments together. Disorganized assignments (pages out of
order, mislabeled, unreadable, etc.) will receive zero points. If your
assignment is multiple sheets, sequence it according to the order of the
exercise.
Course Requirements and Means of Evaluation:
· 40 % of the grade is based on
a mid-term and final examination. Both examinations are cumulative and given in
a multiple-choice format. An in-class review will be held prior to each
examination.
· 40 % of the grade is based on
completing the end of chapter case project assignments. An electronic version of
the case project assignments can be downloaded from the course’s web site.
· 10 % of the grade is based on
quizzes. Quizzes are announced one day in advance and may vary from 5 to 10
questions, which may be in any format.
· 10 % of the grade is based on
keeping a project notebook. Students are asked to obtain a small notebook or to
use a lab notebook in which to keep notes on the results of the hands-on
projects (found at the end of each chapter in the text).
Point System:
A = 90- 100
B = 80 - 89
C = 70 - 79
D = 60 - 69
Addendum:
COURSE POLICIES
E-Mail
All students are requested to obtain an e-mail account. If you have any question
about the course or need assistance, please contact me in person or by telephone
during office hours; or by e-mail at any time. Also, you may submit the end of
chapter case project assignments in class on the due date or by e-mail with a
date stamp of 5:00 PM on the due date. E-mail submissions should be as an
attachment in Microsoft Word format. If you do not have access to Microsoft
Word, a file format of ASCII text or RTF (rich text format) will be acceptable.
Student Conduct in Class Policy
Any acts of classroom disruption that go beyond the normal rights of students to
question and discuss with instructors the educational process relative to
subject content will not be tolerated, in accordance with the Academic Code of
Conduct described in the Student Handbook.
Children in Class Policy
Only in extreme cases are children allowed in classroom or laboratory
facilities, and then only with approval of the instructor prior to class.
Electronic Devices in Class Policy
Cellular telephones (if a cell phone is activated during class or test points
will be deducted from your grade, no exceptions) pagers, CD players, radios, and
similar devices are prohibited in the classroom and laboratory facilities.
Calculators and computers are prohibited during examinations and quizzes, unless
specified. Reasonable laptop-size computers may be used in lecture for the
purpose of taking notes.
Appeals Policy
To appeal a grade, send an e-mail to your instructor's e-mail address within two
weeks of receiving the grade. Overdue appeals will not be considered.
Incomplete Policy
Students will not be given an incomplete grade in the course without sound
reason and documented evidence as described in the Student Handbook. In any
case, for a student to receive an incomplete, he or she must be passing and must
have completed a significant portion of the course.
Cheating Policy
Students are expected to uphold the school’s standard of conduct relating to
academic honesty. Students assume full responsibility for the content and
integrity of the academic work they submit. The guiding principle of academic
integrity shall be that a student's submitted work, examinations, reports, and
projects must be that of the student's own work. Students shall be guilty of
violating the honor code if they:
1. Represent the work of others as theirs.
2. Use or obtain unauthorized assistance in any academic
work.
3. Give unauthorized assistance to other students.
4. Modify, without instructor approval, an examination,
paper, record, or report for the purpose of obtaining additional credit.
5. Misrepresent the content of submitted work.
The penalty for violating the honor code is severe. Any student violating the
honor code is subject to receive a failing grade for the course and will be
reported to the Office of Student Affairs. If a student is unclear about whether
a particular situation may constitute an honor code violation, the student
should meet with the instructor to discuss the situation.
For this class, it is permissible to assist classmates in general discussions of
computing techniques. General advice and interaction are encouraged. Each
person, however, must develop his or her own solutions to the assigned projects,
assignments, and tasks. In other words, students may not "work together" on
graded assignments. Such collaboration constitutes cheating. A student may not
use or copy (by any means) another's work (or portions of it) and represent it
as his/her own. If you need help on an assignment, contact your instructor or
the TA, not other classmates.
Disabilities Policy
In compliance with the Americans with Disabilities Act (ADA), all qualified
students enrolled in this course are entitled to “reasonable accommodations.”
Please notify the instructor during the first week of class of any
accommodations needed for the course.
Date of Preparation/Revision: Spring 07
Course Schedule
Topics
Chapter Readings
Exercises
Hands-on
Programming Exercises
Exams
Week One:
An Overview of Computers and Programming Languages
Basic Elements of C++
Chapter 1
Chapter 2
Exercises 1.1 – 1.11
Exercises 2.1 – 2.24
Program 2.4
Week Two:
Input/Output
Control Structures I (Selection)
Chapter 3
Chapter 4
Exercises 3.1 – 3.3, 3.7
Exercises 4.1, 4.6 – 4.9
Program 3.4
Program 4.2
Week Three:
Control Structures II (Repetition)
User-Defined Functions I
Chapter 5
Chapter 6
Exercises 5.1 – 5.4, 5.6, 5.12. 5.13, 5.18
Exercises 6.1, 6.3 – 6.5
Program 5.3
Program 6.3
Week Four:
User-Defined Functions II
User-Defined Simple Data Types, Namespaces, and the string Type
Chapter 7
Chapter 8
Exercises 7.1 – 7.12
Exercises 8.4 – 8.6, 8.9
Program 7.6
Program 8.4
Week Five:
Arrays and Strings
Applications of Arrays and the vector Type
Chapter 9
Chapter 10
Exercises 9.4 – 9.8
Exercises 10.1 – 10.4,
10.7 – 10.11
Program 9.7
Programs 10.13
Week Six:
Records (Structs)
Classes and Data Abstraction
Chapter 11
Chapter 12
Exercises 11.1 – 11.4
Exercises 12.1 – 12.5
Program 11.6
Program 12.5
Week Seven:
Review
Mid-Term Exam
Review
Mid-Term Exam
Week Eight:
Inheritance and Composition
Chapter 13
Exercises 13.1, 13.6, 13.7, 13.10
Program 13.6
Week Nine:
Pointers, Classes, and Virtual Functions
Chapter 14
Exercises 14.1 – 14.5, 14.9 – 14.13
Program 14.3
Week Ten:
Overloading and Templates
Chapter 15
Exercises 15.1 – 15.14
Programs 15.1, 15.2
Week Eleven:
Exception Handling
Chapter 16
Exercises 16.1 –16.6
Program 16.1
Week Twelve:
Recursion
Chapter 17
Exercises 17.1 – 17.5
Program 17.5
Week Thirteen:
Linked Lists
Chapter 18
Exercises 18.1 – 18.10
Program 18.1
Week Fourteen:
Stacks and Queues
Chapter 19
Exercises 19.1 – 19.2, 19.6
Program 19.1
Week Fifteen:
Review
Final Exam
Final Exam