IST163:  Programming Practicum w/C++
Course Syllabus
Fall 2001, MWF
12:00 pm – 12:50 pm, PH 200

Instructor

:  Brian M. Morgan

Office

Prichard Hall 212

Phone Number 

:  (304) 696-6469

Fax Number

:  (304) 696-6533

Office Hours

:  M: 1:00 – 4:00
   T, R:
8:00 – 9:30, 2:00 – 3:30

   W: 1:00 – 2:30

   F: 11:00 – 12:00
   Other times by appointment ONLY

E-Mail

:  brian.morgan@marshall.edu

Textbooks:  
The following textbook is required for the course:

Problem Solving with C++: The Object of Programming (3rd e), by Savitch; Addison Wesley; ISBN: 0-201-70390-4, 2001.

Computer Requirements:
Supplemental materials can be found contained within the WebCT environment (http://webct.marshall.edu/).  I will be sending class announcements, updates, etc. using your WebCT account (will discuss during the first lecture).  Access to a WWW browser is required (Netscape 4.0 or higher or Internet Explorer 5.0 or higher) and Adobe Acrobat Reader (available for download through the class WebCT site). 

Course Description:
Concepts of software development and maintenance using C++, including syntax of the language, loops, functions, pointers, decision structures, and file processing. Proper program design using object-oriented programming techniques are emphasized.

Credit:
The course is three (3) credit hours. It includes classroom lectures, exams, and laboratory programming projects. Students will participate in programming projects that illustrate the implementation of concepts in general applications to learn C++. 

Pre/co-requisites:
none

Desired Objectives/Outcomes:
By the end of this course, you should be able to:

-          Discuss Object-Oriented programming concepts

-          Demonstrate programming skills using C++

-          Develop software applications using Borland C++ Builder

-         Demonstrate planning techniques for developing software applications

Instruction method:
There will be approximately 3 contact hours of classroom lecture per week.  I will try to give you at least half of one class per week to work on lab assignments once they have been assigned.  The laboratory programming projects cover the major topics of the course.  Students may work on their assignments in Prichard Hall 200 or 207.
  

Evaluation method:
Evaluation of student's performance will be based on the quality of your performance on programming assignments, exams, and class and web-based participation.  

Grading Policy:
Final grades are based on performance in assignments, exams, and attendance as indicated below.  

2 In-class Exams

30%

Final Exam

20%

10 Laboratory Assignments (equally weighted)

40%

Attendance & Participation 

10%

 

Assessment of Projects:

The grading of all laboratory programming projects will take into account the following:

1.      Although the most important attribute of a program is correctness, grading will take into consideration such items as time and space efficiency, documentation, etc.

2.      Programs must have proper inline documentation and must be properly indented. 20% will be deducted for poorly documented and/or poorly indented code.

3.      All submitted code must compile correctly. Code that does not compile will receive 0 credit.

4.      When a problem does not specify a required complexity, the grading will differentiate between efficient and nonefficient code.  For example, if you write a program that contains a number of checks that are redundant and/or has one or more loops that iterate zero or one time, up to 10% of the grade will be deducted.

5.      When a method name and/or parameters are specified in an assignment’s description, you must use that name and/or parameters.

6.      When you write a function, remember that the function should work for all possible inputs. Not on just your test inputs.

7.      Although interactions with other students are encouraged, you must compose your own answers, unless otherwise noted. 

 

Individuals who utilize other people’s code, thoughts, or ideas must provide appropriate references to said resources.  Failure to provide such documentation will result in a failing grade for the assignment, and may result in a failing grade for the course.

 

In determining the overall grade for a project, you can expect the following grades based on performance:

A – Excellent work that meets and/or exceeds all of the requirements for a given project, code compiles and works for multiple test samples, all code and associated files are well-documented, and the code is written efficiently.

B – Good work that meets all of the requirements of the assignment, but may have errors in documentation or coding, or contains code that may not work with all possible data samples.

C – Average work that meets all of the requirements of the assignment, but is missing one or more of the items in its entirety that is mentioned in terms of an A grade.

D – Below average work which fails to meet one or more of the requirements of the assignment.

F – Unacceptable work which fails to meet two or more requirements for an assignment, or has code that will not compile and execute.

Final letter grades are determined based on the following grading scale: 

90-100% 

A

80-89%

B

70-79%

C

60-69%

D

Below 60

F

 

The instructor reserves the right to change these values depending on the overall class performance and/or extenuating circumstances.  

 

Policy Statement:
Programming assignments:
  The course includes a number of programming assignments. All assignments are due by midnight on the due date. Late assignments will be penalized at the rate of 10% per day (including weekends).  

Exams: There are three exams: The first will come after chapter 4, the second after chapter 8 and a comprehensive Final exam (as scheduled). Exact dates and times of exams will be announced in class.  

Make-up Exams and Late Penalty:  Make‑up exams will not be given except under unusual circumstances and satisfactory written justification.  Any student who misses an exam due to an unexcused absence will receive a grade of zero for that exam with no opportunity for make-up or substitution.  University excused absences or those occurring with a good reason will be excused.  Make up exams must be taken within one week of the original scheduled date.  The decision whether to give a make up exam rests with the instructor.

Passing grade:  Programming assignments and exams are required parts of the course and must be satisfactorily completed to pass this course.  A student must have a passing performance on each part.  A failing grade on a component may result in a failing grade in the course.  

Attendance Statement:
Class attendance is mandatory and is a required part of the course.  Those needing to miss class for a legitimate reason must contact me via telephone/voice mail or e-mail prior to the class meeting for it to be excused.  See grading policy.
 

Withdrawal Policy:
The
University withdrawal policy is followed in this course. The last day to drop an individual course for the Fall of 2001 is October 26, 2001.  

University Holidays:
The class is officially dismissed on the following dates:
            Labor Day:     
September 3, 2001

Fall Break:       November 19, 2001

November 21, 2001

November 23, 2001

Topics and Methodology:
The following outline delineates the tentative class schedule with topics to be addressed during the course. 
Please note this is a tentative schedule and it may change upon class progress:

August 20

Review of Syllabus

Introduction to WebCT

August 22

Borland C++ Builder Tutorial

August 24

Chapter 1

August 27

Chapter 2

August 29

Chapter 2

Assign Lab 1 w/explanation of what to submit with Labs

August 31

Chapter 2

September 5

Lab

September 7

Chapter 3

Lab 1 Due

Assign Lab 2

September 10

Chapter 3

September 12

Chapter 3

September 14

Lab

Lab 2 Due

Assign Lab 3

September 17

Chapter 4

September 19

Chapter 4

September 21

Chapter 4

September 24

Review for Exam

Lab

Lab 3 Due

September 26

Exam #1

September 28

Chapter 5

Assign Lab 4

October 1

Chapter 5

October 3

Chapter 5

October 5

Lab

Lab 4 Due

Assign Lab 5

October 8

Chapter 6

October 10

Chapter 6

October 12

Chapter 6

October 15

Lab

Lab 5 Due

Assign Lab 6

October 17

Chapter 7

October 19

Chapter 7

October 22

Chapter 7

October 24

Lab

Lab 6 Due

Assign Lab 7

October 26

Chapter 8

October 29

Chapter 8

October 31

Chapter 8

November 2

Review for Exam

Lab

Lab 7 Due

Assign Lab 8

November 5

Exam #2

November 7

Chapter 9

November 9

Chapter 9

November 12

Chapter 9

November 14

Lab

Lab 8 Due

Assign Lab 9

November 16

Chapter 10

November 26

Chapter 10

November 28

Lab

Lab 9 Due

Assign Lab 10

November 30

Catch Up Day

December 3

Lab 10 Due

Review, Receive Take Home Final

December 5

NO CLASS – Time to work on Final Exam

December 7

NO CLASS – Time to work on Final Exam

December 10

Final Exam Due by 1:00 PM (NO LATE EXAMS ACCEPTED)

For each topic discussed in the textbook, specific experience of other students and the instructor will be discussed to enhance the characteristics involved.  Laboratory programming projects for the course will be based on the chapters we discuss in the textbook.  Additional material may also be covered in the class.

Every student is responsible for all materials presented in class, including lectures, notes, and handouts.  Students are also highly encouraged to work through the end of chapter exercises in the textbook to help with difficult concepts.  In case you are not present for a class, it is your responsibility to contact the instructor and receive information about the material presented in that class.  Class attendance is very important.  

Effort Required:
As a 100-level course, this course is provided as an introductory course, but there will still be a considerable amount of development and research effort required of the student.  For every one hour in class, the student is expected to put in an effort of at least 3 hours outside the class for studying and programming.  Because of background and preparedness, some students may have to put in additional effort.  

Communication:
The Bulletin Board facility of WebCT and private E-mail will be used to make any general announcements, last minute changes, etc.  It is mandatory that you monitor your WebCT course messages at least once a day.