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
 

Mr. John E. Carroll

 

Assistant Professor of Computer and Information Systems

 

 

 

 

johncarroll@twcnet.edu

Courses Taught

 

CS101

CS210

CS218

CS220

CS228

CS320

CS350

CS450

CS470

BA355

Professor Bio

Office Hours

TWC/Contact Info