University of Denver
University College
Computer Information Systems
Syllabus
Introduction to C++ Programming — MCIS-4135


Course Summary

Course Name

Introduction to Programming in C++

Course Number

MCIS-4135

Instructor

Michael I. Schwartz

Class Meetings

Ten weeks, March 23rd–May 29th, 2009

Online, Weeks begin Sunday at midnight
ClassLive hours are established initially on Tuesdays, beginning March 24, from 6:30-8:00 PM Mountain Time to allow an opportunity to interact in a way similar to a classroom. The ClassLive tool is a multi-user chat with a whiteboard, so I'll be augmenting that with pointers into the lecture notes that are posted in the Course Documents section of eCollege. I will add hours as needed, if this is not sufficient time to meet our needs.
For this term, I will also try a dialin during ClassLive hours, with a dialin number of 1-866-248-1479, and your conference PIN of 15202091.

Days Instructor is Unavailable

Every Friday from 5 PM through Saturday

April 9, 10, 15, and 16, May 29

Course Description

Introduction to Programming in C++ provides an overview of programming concepts, design and an introduction to coding using the C++ language. The course has a focus on creating working computer programs in C++. This course will address fundamental concepts of analysis, design, testing and code development. It includes flowcharts, Boolean logic, control flow, data types and structures, variables, arrays, functions, pointers and introduces classes. It will also introduce the basic concepts of object design, and introduces use of UML.
This course will prepare students for focused studies in any programming language.

Course Prerequisites

None

Technology

C++ Compiler
You may use:
  • Microsoft Visual Studio 2008 or 2005 Express edition, downloadable from Microsoft (http://www.microsoft.com/express/),
    • Note: As this will transfer hundreds of megabytes, this requires a high-speed internet connection. Contact the instructor if this is a problem for you.
  • Purchase Microsoft Visual Studio or Visual C++ compiler or the Borland compiler (about $100 through the school bookstore, with marvelous development environments),
  • The GNU compiler under Unix,Linux (www.linux.org), or Cygwin/Windows (www.cygwin.com) (free, but one uses Unix-like tools as the development environment).
  • Macintosh users have the gcc (and g++) compiler in their developer tools, but may wish to download the xcode development environment from the Apple Developer Connection
You may also use a different compiler if you wish–but please notify the instructor of your choice, as some older compilers have limitations the user must be aware of.

Course Objectives

At the end of this course, a student will:

  1. Perform an analysis on a problem statement to create a basic program design.
  2. Understand different functions for input and output, various data types, basic operators, files and functions.
  3. Write basic structured C++ programs using functions, arrays and data structures.

Required Materials and Resources

Text Stephen Prata, C++ Primer, SAMS, 5th Edition, ISBN 0672326973

Instructor slides are available via eCollege for student convenience.
A number of books are recommended for reference and a second source of information for the advanced student.

Material

The material for this course is mapped to Prata's book at the end of this syllabus.

Electronic Mail

Responses can also be received by mailing a description of your problem to mschwart@du.edu.

WWW

C++ Syllabus, HW Problems, and Resources can be accessed on http://www.du.edu/~mschwart/cxx.html as well as on the eCollege system under Course Home/Resources for student convenience.

Appointments

Call 303-971-6781 (Day), 303-394-3117 (Eves).

Lab

Optional

Course Policies and Procedures

Attendance

Course attendance is highly recommended. This comprises the Class Participation portion of your grade. For online courses, this means participating in the discussion topics for the week.

Assignments

Assignments are due each week, and must be handed in on-time. Late work will receive no credit. Make advance arrangements with the instructor for any requested exceptions. Except for the last assignment, all assignments may be resubmitted after rework of indicated portions. Resubmitted assignments will receive a maximum credit of 90% Assignments are all available at the beginning of the course.
Note: An optional but recommended non-coding assignment (HTML) is due the first night of class

Solutions

Sample solutions will be available on eCollege each week for review.

ScoringGrading
Exam: 25%89%-100%: A85%-88%: A-
Homework: 65%82%-84%: B+75%-81%: B70%-74%: B-
Class Participation: 10%60%-69%: C50%-59%: D0%-49%: F

Academic Integrity

Students are expected to do their own work. Any student caught submitting the work of others on any assignment or exam will receive an automatic "F" for the course and a report will be submitted to the Dean's Office.

Academic dishonesty is contrary to the spirit of higher education as well as a violation of University College and University of Denver Regulations.

At its core, academic integrity requires honesty. This involves giving credit where it is due and acknowledging the contributions of others to one's own intellectual efforts. It also includes assuring that one's own work has been completed in accordance with the standards of one's course or discipline. Without academic integrity, the foundation of scholarship itself is undermined. Academic integrity, for all these reasons, is an essential link in the process of intellectual advancement.

Violations or non-compliance will be addressed in a manner consistent with the Student Handbook http://www.du.edu/honorcode/statement.htm#. Student committing plagiarism may be dismissed.

For a description of plagiarism and how to avoid it, see Ronald B. Standler, Plagiarism in Colleges in the USA http://www.rbs2.com/plag.htm#anchor111111

The instructor's own thoughts on the meaning of plagiarism in a coding environment is found here (HTML).


Course Schedule

Following are the goals for each week's lessons:

Class / Objectives Weekly Goals Homework Due

Class 1:
A

Variables, data types, flowcharts, history
Chapters 1-2
Notes sections 1_Introduction, 2_Tools_and_Techniques

Submit HW 1 (HTML) Optional but recommended

Class 2:
A, B, C

Character strings, Formatted Input / Output, Branching
Chapters 3-5
Notes sections 1a_ControlLogic, 1b_Filenames_and_Keywords, 3_IOStream

Submit HW 2 (HTML)

Class 3:
A, B, C

Case Statements, Loops, Character Input and Output
Chapter 6
Notes sections 1c_Functions_and_Variables, 1d_Namespaces

Submit HW 3 (HTML)

Class 4:
A, B, C, D

Functions, Parameters, Basic Data Types
Chapter 7
Notes sections 1f_C++_Data_Types, 1g_Type_Conversions

Submit HW 4 (HTML)
Begin HW 5 (HTML)

Class 5:
A, B, C

Files, Arrays, and Pointers
Chapters 4, 7
Notes sections 1i_Pointers_C_CXX, remainder of 3_IOStream

Continue HW 5 (HTML)
Questions about HW 5

Class 6:
A, B, C, D

File I/O, pointers
Chapters 7,17
Notes sections 1i_References_And_Pointers, 1e_Function_Overloading, 1h_Operator_Overloading

Submit HW5.
Begin HW 6 (HTML)

Class 7:
C, D

Abstract Data Types
Chapter 9, 10
Notes sections 1f_C++_Data_Types remainder, begin 4_Classes

Continue HW 6 (HTML)
Questions about HW6, Quiz

Class 8:
A, B, C, D

Classes
Chapter 10
Notes sections continue 4_Classes, 5_String

Submit HW 6
Begin HW 7 (HTML)

Class 9:
D

Inheritance, polymorphism
Chapters 10, 11
Notes sections complete 4_Classes, 5_String

Continue HW 7 (HTML)
Questions about HW7

Class 10:
A, B, C, D

Summary of programming with C++

Submit HW 7, Exam