SYLLABUS FOR C++ PROGRAMMING I

 

Term:  Fall, 2006-2007 (061) (August 28 – December 9, 2006)

Course Number: CIS 312x

Instructor:   Mr. Darren Henderson

Office: Room 508

Office Phone: (219) 473-4346

E-mail:   dhenderson@ccsj.edu

Office Hours:      Monday                                 12:00 p.m. - 1:00 p.m.

                                                                  3:00 p.m. - 7:00 p.m.

Tuesday                  4:00 p.m. - 7:00 p.m.

Wednesday            3:00 p.m. - 7:00 p.m.

 

Instructor Background:

Darren Henderson earned a B. S. in Engineering from Purdue University Calumet and a M. S. in Electrical Engineering from Purdue University with a specialty in Communications and Signal Processing.  His undergraduate curriculum was characterized by a strong emphasis in mathematics and physics including courses in Advanced Calculus, Partial Differential Equations, Complex Analysis, Advanced Analysis, Electromagnetic Field Theory, Optics, and Quantum Mechanics.  As his undergraduate senior design team project, Darren worked on a prototype for a home security and convenience system that provided a speech synthesis capability.  His task was to write the assembly language software for the Motorola HC11 microcontroller and to work with the Texas Instruments speech synthesis chip.  Darren’s graduate coursework included courses in Digital Communications, Digital Signal Processing, Image Processing, Computer Networks, and Estimation Theory.

Darren joined the Computer Information Systems Program at Calumet College of St. Joseph in 1995.  He regularly teaches the courses C Programming I and II, Hardware and Software Concepts, and Data Communications and Networking Theory.  In addition to his teaching activities, Darren has worked for CCSJ's Computer Services Department.  He used his engineering background and skills to help lay the groundwork for the school's existing computer network and services.  He was responsible for initially creating the faculty and staff e-mail accounts and for making the school's computers (faculty, staff, and 4th floor computer labs) Internet accessible.  His duties involved Unix/Linux and Windows NT System Administration and TCP/IP Network Administration in support of DNS, DHCP, WWW, and e-mail services.  He was also responsible for implementing an early firewall to protect the school's Univers database system from unauthorized access.  He currently is working on ways of integrating the Blackboard 5 e-learning environment into his courses at CCSJ.

                Before his tenure at CCSJ, Darren was an adjunct instructor in the Electronics Technology Department at Ivy Tech State College in Valparaiso.  He taught a multitude of courses including: Circuits I and II, Solid State I and II, Digital Principals, Digital Applications, and Electricity for HVAC.

                His current research interests are in C++ programming, software engineering for Internet applications, and network security.

 

Course Time: Mondays 7:00 p.m. – 10:00 p.m.           Room 419

 

Course Description: This course presents a detailed treatment of procedural level programming in C++.  C++ language syntax and structured programming constructs will be emphasized.  Microsoft’s Visual C++ Integrated Development Environment (IDE) will be used throughout the term to develop “command-line” DOS applications.

 

Prerequisite: CIS 115, CIS 125.

 


Learning Outcomes/ Competencies:

Students in this course will:

 

·         use the Visual C++ Integrated Development Environment (IDE) to enter, compile, link, and debug C++ programs.

·         use C++’s primary data types (i.e. int, char, float, and double) and C++’s Standard Library objects (e.g. cout, cin, and strings) appropriately.

·         build and evaluate C++ expressions (i.e. by selecting the appropriate mathematical operators; by properly performing the given mathematical operations and properly applying the rules of precedence and associativity)

·         successfully demonstrate the use of modular programming concepts by creating user-defined custom functions.

·         successfully demonstrate the use of structured programming concepts (sequence, selection, and iteration structures) in C++ program development.

 

Textbooks:

C++ for Business Programmers, 2nd ed., Molluzzo, John C., Pearson/Prentice Hall, Upper Saddle River, NJ, 2006.  (ISBN 0-13-046700-6)

 

Software:

The software used for this course is Microsoft Visual Studio .NET (VS .NET) 2003.  This software is installed on the 4th floor computer labs (Room 416, 418, 419, and 420) for student use.  For users wishing to do C++ programming outside the CCSJ labs, Visual Studio .NET is available for purchase in the CCSJ Bookstore (Room 260) for $19.95.  An excellent tutorial describing how to use Visual Studio .NET for C++ programming can be found at http://www.cs.virginia.edu/~cs216/labs/msVisualTutorial.doc.

 

The operating system (OS) software used on the 4th floor computer labs is Microsoft Windows XP Professional.  In this OS version (and in XP Home), a USB flash memory device should be natively usable without the installation of any additional device drivers.  However, this is usually not the case in other OSes like Windows 98 or Windows ME.  These OSes require the installation of the appropriate hardware device drivers in order to be able to recognize the device properly.

 

Storage Media:

Students will need to use some form of portable read/write storage (e.g. USB flash memory or floppy disk) to store their C++ source code on during program development and/or to transport files between the CCSJ laboratory computers and their personal computer.  The simplest device to use is a USB flash memory device.  The reason is that when building C++ source code VS .NET creates “extra” files that can quickly fill up a floppy disk and produce spurious errors.  Using a storage medium with sufficient storage (32 to 64MB should be adequate) capacity will allow the student to build their C++ source code without worrying about exhausting the storage space.  The procedure to use a floppy disk for C++ program development in VS .NET is more complicated since it requires transferring files back and forth from the floppy disk to the hard disk.  In addition, nowadays, a USB flash memory device is probably the safest choice for a storage device since increasingly many of the 4th floor computers do not come configured with floppy disk drives.  Alternatively, students may use either their CCSJ WebMail account to send an email with a file attachment or Blackboard’s Digital Dropbox “Add File” feature to save a file for later use if no portable storage device is available.  Remember, files saved to the hard disk (esp. My Documents and/or the Desktop) of a CCSJ laboratory computer will not generally survive AFTER logging out of the machine!


Learning Strategies:

Due to the technical nature of the subject matter, the course material is presented mainly through lecturing often through the vehicle of Microsoft PowerPoint slide shows and/or class handouts.  In addition, sample programs from the textbook are “traced” using the Visual Studio .NET IDE during class to highlight important C++ concepts.  Students are encouraged to participate during this time by asking questions.  It is anticipated that the repeated use of the VS .NET IDE in class will help to facilitate the student’s learning of this essential tool.  Students demonstrate the course competencies in part by completing regular programming assignments.

 

Assessment:

The student’s grade is computed using the weights shown below:

 

Homework/Class Exercises              20%

                                        Exam #1                                                                25%

                                        Exam #2                                                                25%

Exam #3 (Final)                                   30%

                                                                                                        ------

                                                                                                        100%

 

Class Policy for Assignments/Exams:

Homework problems will be assigned throughout the duration of the term. Homework will be collected generally two weeks from the date assigned unless directed otherwise.  Homework that is submitted (<= 7 days late) is subject to an automatic deduction to be determined by the instructor.  Homework that is more than one week late will NOT be accepted for credit and will result in an assigned score of zero.  Homework received after 10 p.m. on Monday, November 27, 2006 (i.e. Week #14) will NOT be considered for credit and will result in an assigned score of zero.

 

The official class policy is that there is NO MAKE-UP EXAMS, however in recognition of the occasional personal and/or family emergency that may occur during the semester, a make-up exam may be granted provided all the following conditions are met:

1)      The instructor is notified via voice mail (preferably) or email of the make-up exam request by the student before or within 24 hours of the scheduled exam date/time.

2)      A suitable alternate time can be arranged.  Remember that make-up exams will generally require that a computer lab be reserved.  Therefore, make-up times are governed both by computer lab availability and instructor availability.  The general practice is to offer the student(s) one alternate make-up time.

3)      The missed scheduled exam must be made-up within one-week of the scheduled exam date.

 

The granting of make-up exams is NOT an entitlement but is a courtesy granted to the student by the instructor.  If this courtesy is abused by a particular student or the class as a whole, then the privilege may be revoked.

 

A missed semester exam or final exam will be assigned a score of zero.

 

Exams will typically consist of two parts.  Part I will be administered closed book and closed notes.  Part II  (if present) will be administered open book and open notes.  In addition, students may on occasion be allowed to use the Visual Studio .NET IDE for selected portions of Part II.

 

The FINAL EXAM is comprehensive!

 

The function of the homework problems and class/laboratory activities is that they serve as exam preparation.  The function of the exams is to confirm that the student has achieved the required level of proficiency.

 

C++ Source Code Requirements:

Students are required to submit hardcopies of their C++ source code and their C++ program output as their homework program deliverables.  Students are expected to produce/submit C++ source code that is well-structured (i.e. uses an acceptable C++ style and is properly indented) and properly commented.  All C++ source code hardcopies shall contain a multi-level comment at the top of the source code of the form:

 

/*   Jane Doe

     CIS 312 – C++ Programming I

     Chapter 1 – Program 1 – page xx

*/

 

Student’s C++ source code submissions are also evaluated for the efficiency of the program implementation and for the degree to which the homework program requirements are fully met.

 

Students are expected to write their own C++ source code.  Students that repeatedly submit code that was produced by another student are engaging in academically dishonest behavior.  This is a serious matter and the student becomes subject to serious consequences such as failure on the given assignment and/or failure from the course.  Students that submit suspicious code will be required to go through a code review with the instructor to verify the student’s understanding of the code that was produced.  If this code review goes poorly then the student may be subject to the serious consequences that are described above.

 

Grading Scale:

 

A: 93-100               A-: 90-92              B+:  87-89     B: 83-86         B-:  80-82    C+: 77-79

C: 73-76                 C-: 70-72              D+:  67-69     D: 63-66         D-:  60-62    F:  59 & below

 

Class Policy on Attendance:

Attendance will be taken for administrative purposes.  Although class attendance does NOT account for a percentage of the assigned semester grade, it is vital that students attend both the class lectures and laboratories on a regular basis in order to be informed of any important class announcements, any deviations from the course outline below, and of any supplemental material presented. 

 

However, class/lab attendance and participation is used as a factor in deciding borderline cases. (if applicable)

 

Class Policy on Electronic Devices:

As a matter of courtesy to the instructor and to fellow students, cell phones, beepers, pagers, etc. are generally NOT to be answered in class and should be switched off BEFORE class begins.  If it is absolutely necessary to receive a call during the class period, then the device should be placed in a “vibrate” mode and the student should answer the call outside the classroom so as to minimize disruptions to the learning environment.

 


Course Outline: (Tentative)

 

Class Dates:

Topics/Assignments:

WEEK 1

8/28/2006

CCSJ Network Login/CCSJ Web Mail/Blackboard Login Course Policies/Syllabus

Appendix B – Program Control

 (Flowcharting and the Visual Studio .NET IDE)

WEEK 2

9/04

No Class – Labor Day Recess

WEEK 3

9/11

Chapter 1 – Introduction to the C++  Language

(The Program Development Cycle, The Skeleton C++ Program, User Input/Output, Identifier Naming Rules and Conventions, Integer Variables and Literals, Defined Constants, The Assignment Operator, Arithmetic Operators, Arithmetic Operator Precedence and Associativity Rules, Integer Division, setw() I/O Manipulator)

WEEK 4

9/18

Chapter 2 – Real Numbers

(Floating-Point Variables, Mixed-Type Expressions, C++ Casts, Compound Assignment Operators ,Increment and Decrement Operators, setprecision() I/O Manipulator)

WEEK 5

9/25

Exam #1 Review/Open Lab

WEEK 6

10/02

Exam #1

WEEK 7

10/09

Chapter 3 – Iteration

(Relational Operators, Indefinite Iteration, Character Variables, Character Constants, Character Input, Definite Iteration, C++ Looping Structures: while, do-while, and for, Looping Applications: Counting and Summing, Nested Loops)

WEEK 8

10/16

Chapter 4 – Decision Making

(Compound Conditions, Logical Operators, Precedence and Associativity Rules Revisited, C++ Multiway/branch Selection Structures: switch and if else if else, Nested ifs

WEEK 9

10/23

Chapter 5 – Functions

(The Function Concept, Function Declarations/Prototypes, Function Definitions, Function Calls, Function Arguments/Parameters and Return Values, Passing Arguments by Value, Passing Arguments by Reference, Variable Scope and Duration/Lifetime, Structure Charts, Function Design Process, Boolean Variables, pow() and sqrt() Math Library Functions)

WEEK 10

10/30

Exam #2 Review/Open Lab

WEEK 11

11/06

Exam #2


 

WEEK 12

11/13

Chapter 10 – The String Class: An Introduction to Classes and Objects

(Object-Oriented Concepts, C++ Strings, Constructors, C++ String Input/Output, String Manipulation Functions, C Strings)

WEEK 13

11/20

Chapter 14 – Files

(Working with Text Files: Stream Concept, Standard and File Streams, Creating and Connecting Streams, Standard Library I/O Functions, Reading a File, Writing a File, Formatting Data using Manipulators, Detecting File Errors, Error Recovery)

Programming Class Exercise

WEEK 14

11/27

Final Exam Review/Open Lab

WEEK 15

12/04

Final Exam

 

 

Class Participation:

See "Class Policy on Attendance" above

 

Center for Academic Excellence:

Tutoring assistance is free to all students of Calumet College of St. Joseph.  The Center for Academic Excellence (CAE) has experienced and well-trained tutors in most subject areas to help students who are struggling in a course or who are doing well and would like to do better.  Regular weekly tutoring sessions are likely to improve your grade.  In addition to the face-to-face tutoring offered by the Center, online tutoring is available for students whose schedules do not permit them to meet with a tutor in person.  Call the Center for Academic Excellence at (219) 473-4287, to schedule a tutoring appointment or for additional information about how to access online tutoring assistance.

 

Academic Alerts:

In order to assist students to successfully persist towards course completion, Calumet College of St. Joseph asks instructors to give a written evaluation in the form of an Academic Alert at the end of the 5th and 10th weeks of the semester (Fall and Spring) for any students performing below “C” average work.  The current practice is to have the instructor hand-deliver the alert to the student if possible otherwise the alert is forwarded to the CCSJ Academic Advising office where it is then delivered to the student via the U.S Postal Service.  The intent of the academic alert system is to notify the student of substandard performance so that they may take steps to rectify the situation (e.g. tutoring through the Center for Academic Excellence)  However, students should realize that NOT receiving an Academic Alert on week #5 or week #10 is NOT a guarantee of NOT receiving a grade below a “C” for the semester since a student’s assigned semester grade depends on the student’s performance during all 15 weeks of the semester.

 

Statement of Plagiarism:

If an instructor or other Calumet College of St. Joseph personnel find that a student has plagiarized or been involved in another form of academic dishonesty, the instructor or other personnel may elect to bring the matter up for judicial review. The maximum penalty for any form of academic dishonesty is dismissal from the College. The procedures for judicial review are listed under the section of CCSJ handbook that addresses student grievances.

 

Please note: Calumet College of St. Joseph subscribes to Turnitin.com and all papers can and may be submitted for checks on plagiarism from the Internet/Electronic sources/Databases.

 


Citation Guidelines:

Calumet College of St. Joseph adheres to citation guidelines as prescribed by the particular discipline (i.e., MLA, APA, and Chicago Manual of Style or Turabian.).  All of these guidelines are available in the Calumet College of St. Joseph library or bookstore.  These texts outline how to cite references from a variety of sources, including electronic media.

 

School Closing Information:

 

                Internet:                                               http://www.ccsj.edu

               

http://www.EmergencyClosings.com

Facility: Calumet College of St. Joseph

Phone: 219.473.4770

 

                Radio:

 

WAKE – 1500 AM

WGN  - 720 AM

WIJE – 105.5 FM

WLS – 890 AM

WZVN – 107.1 FM

WBBM NEWS RADIO 78

 

                TV Channels:

 

2, 5, 7, 9 (WGN), 32 (WFLD)

 

 

Withdrawal from Classes Policy:

After the last day for class changes has passed (see College calendar), students may withdraw from a course in which they are registered with permission from the faculty member conducting the course. A written request detailing the reason(s) for the withdrawal must be filed with the Registrar. The Registrar must receive written request for withdrawal by the last day of classes prior to the final examination dates specified in the catalogue. Written requests may be mailed to the Registrar or faxed to the College fax number 219-473-4259. Students are to make note of the refund schedule when withdrawing from courses. The request is forwarded to the faculty member, who makes the final determination to accept or deny the request. If the request is honored, the student will receive notification of official withdrawal; if denied, the notification will indicate why the withdrawal is disallowed.

 

An official withdrawal is recorded as a "W" grade on the student's transcript. Dropping a course without written permission automatically incurs an "F" grade for the course (see Refund Schedule).