CIS 251 • C++ Programming

Jefferson State Community College • Shelby-Hoover Campus • Fall 2013

Catalog Course Description This course is an introduction to the C++ programming language including object oriented programming. Topics include: problem solving and design; control structures; objects and events; user interface construction; and document and program testing.

Prerequisite CIS 110 (prior to Fall 2009) or CIS 150 (Fall 2009 or later). Students with prior programming experience, especially those who are not pursuing an Associate in Applied Science degree, may enroll in CIS 251 without this prerequisite. A student currently enrolled in CIS 150 may be able to master a single programming language course during the same semester. Students without prior programming experience, especially those requiring MTH 090 or MTH 098, are advised not to take this or any other programming course without first completing or enrolling in CIS 150.

Textbook You are advised to bring your textbook to each class meeting, as your instructor may refer to examples that are present in the textbook.

Problem Solving with C++, eighth edition, by Walter Savitch. ISBN-10: 0-13-216273-3; ISBN-13: 978-0-13-216273-9. Note: If you have already purchased the sixth edition (ISBN-10: 0-321-41269-9) or the seventh edition (ISBN-10: 0-321-53134-5), either will suffice for this course.

This textbook may be available in different bindings and / or with different ISBNs. Please consult with your instructor should you wish to buy such a variation on the textbook.

Software The classroom and the open computer laboratory (HSB 451) provide Microsoft Visual Studio for students to write, build, and execute C++ programs. Students enrolled in CIS courses at Jefferson State may obtain the software free-of-charge through the MSDN Academic Alliance; be looking for an e-mail message in your Pipeline account with your login information. However, you are not required to use Visual Studio; you may use any C++ compiler that follows the C++ standards.

Course Content Class meetings will involve either a lecture on C++ syntax or the completion of a laboratory assignment. In either mode, students will connect the syntax with general programming concepts and real-world problems.

Laboratory Assignments For each laboratory assignment, you will be given detailed instructions on how to create a complete C++ program that relates to material recently covered in the lectures. You are expected not only to complete the code, but also to ensure that the code compiles and executes properly. Grades will be weighted more for effort than for accuracy, but you should aim for as functional a solution as time permits.

The instructions for each laboratory assignment will be made available prior to the class meeting during which time is provided to work on the assignment (usually at the end of the previous class meeting). You are encouraged to read the instructions and begin work on your code prior to class so that your time on campus is focused on overcoming any difficulties encountered in the programming process. The deadline for each laboratory assignment may be as early as the end of the designated class meeting; check Blackboard for each assignment's deadline. Your instructor reserves the right to limit the availability of the laboratory assignment submission tool to students who are in attendance on the designated laboratory assignment day. Because there are two bonus laboratory assignments in the schedule, no late laboratory assignment submissions will be accepted. Your submission must be received in Blackboard prior to the deadline.

Projects As the semester progresses, you will be required to create complete C++ programs to specifications that test your knowledge of the material covered to date. A portion of your grade will be based on proper use of the required code elements, but a larger part of your grade will be based on how well the program performs. Individuality is encouraged provided that the added elements do not detract from the required functionality; your program must follow the guidelines in the project description.

Project instructions are posted on Blackboard at least six days in advance of the deadline, so you should be able to submit an assignment on time even if you miss the day it was announced. Students with extenuating circumstances affecting their abilities to meet a project deadline should notify the instructor well in advance of the deadline to arrange for an extension. Credit for late project submissions is rare and may be reduced.

Assignment Guidelines For each assignment, you must include special lines called comments at the top of your code identifying yourself, the course, and the assignment. Additionally, the instructions will indicate the number of comments required within the code that describe different portions of the program in your own words to help you and other programmers understand the code in the future. Comments must be your own work; do not copy excessive amounts of material from lecture notes, instructions, or other sources. You will lose up to ten percent of the assignment grade if you do not provide comments that are relevant to the assignment.

Although there may be a variety of ways to code an assignment solution in C++, your code should include only the syntax discussed in the lectures and in the textbook unless you receive prior permission from your instructor.

Several of the class meetings are set aside as time for you to work on a laboratory assignment. During these classes, if you have a specific question about a problem in your code, you should ask your instructor; do not show your code to your classmates, and do not look at the code written by your classmates.

Examinations After every three chapters there will be an examination. These examinations will test both your understanding of underlying concepts and your knowledge of C++ syntax. Examinations will feature a mixture of multiple choice questions, a problem in which you write the output of a C++ program included in the exam, and an exercise in which you must provide a complete C++ program as a solution to a problem. Your instructor may allow you access to selected resources during the examination. Examinations are administered on paper; you must bring your own writing utensil (pencil, blue ink, or black ink) for each exam. Because of the cumulative nature of computer programming, you are advised to maintain a thorough understanding of topics covered early in the semester so as not to hinder your performance on examinations covering later chapters.

In the event of an excused absence, you may make up one exam provided that the make-up occurs within one week of the scheduled exam date. If logistics prevent the scheduling of a make-up within one week, your instructor may choose to substitute your final exam grade in place of that exam grade. If you miss more than one examination, you must contact your instructor to determine if, and how, you will be able to recover the points for the other missed examination(s).

Grades Refer to the following table for the contributions of each course item to your grade.

Item Number / Points Total Pts.
Lab Work 12 @ 20 pts. each (2 bonus) 200
Projects 3 @ 50 to 75 pts. each 200
Exams 4 @ 150 pts. each 600
Total Points 1000