CIS 251 • C++ Programming

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

Instructor: Mr. Tommy Battles
Availability See Weekly Schedule
E-mail tbattles (at mark) @jeffersonstate.edu

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.

Recommended Materials You are advised to have the textbook open when you study the lecture notes on Blackboard, as your instructor may refer to examples that are present in the textbook.

Problem Solving with C++, sixth edition or newer, by Walter Savitch. ISBN-10: 0-13-444828-6 (tenth edition), 0-13-359174-3 (ninth edition), 0-13-216273-3 (eighth edition), 0-321-53134-5 (seventh edition), 0-321-41269-9 (sixth edition).

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.

If you plan to work on assignments on a public computer (on campus or elsewhere), use a USB flash drive to save your work; it can be a new flash drive dedicated to the course, or it can be one you have had for several years that contains files for other purposes. Do not share your flash drive with another student under any circumstance.

Software If you are allowed to access one of the computer laboratories on campus, any Windows laboratory maintained by the CIS department should 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 Azure Dev Tools for Teaching (formerly DreamSpark or Microsoft Imagine); be looking for an e-mail message in your myJSCC 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.

Jefferson State students have access to install Office 365 (including Word, PowerPoint, Excel, and Access) on multiple computers and devices: after signing into myJSCC, click the link for Office 365 under Unread Messages; log in using your full Jefferson State e-mail address; in the upper-right corner, click your user icon (which may consist of your initials); click the link for My Account; and locate and click the Install Office button. Note that your access to Office 365 continues only as long as you are actively enrolled.

Your instructor may require you to use LockDown Browser to access examinations. This browser is available for Windows 7 or higher, macOS 10.10 or higher, and iPads running iOS 10.0 or higher; it is not compatible with phones, Chromebooks, or tablets other than iPads. If you do not have access to a compatible device on which you can install this browser, please e-mail your instructor as soon as possible. Your instructor does not plan to require you to use a webcam for proctoring.

Course Content Each week students will both study lecture materials on portions of the C++ language and apply what they learn to scenarios in laboratory assignments, projects, and / or examinations. Students will connect the structure of C++ with general programming concepts and real-world problems.

Schedule The following is a tentative schedule of the availability of chapter materials (see the Tentative Calendar and the Announcements tool for other dates, including deadlines):

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

Item Number / % Each Total %
Exams 4 @ 25% each 100%
Item Number / % Each Total %
Quiz 1 @ 5% 5%
Lab Work 12 @ 5% each (3 bonus) 45%
Projects 3 @ 12.5% to 18.75% each 50%
Non-Exam Total 100%

See the syllabus addendum for details on how your final grade is determined.

Quiz Attendance verification for all Internet courses requires the completion of a graded activity. For this course, you will need to complete a brief quiz answering questions regarding information in the syllabus, addendum, calendar, and / or initial lecture materials. You may attempt this quiz multiple times to improve your score, but you must make at least one attempt by Thursday, August 27, at 9:59 p.m. Failure to attempt the quiz by the deadline will likely cause you to be dropped from the course.

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.

In lieu of an opportunity for an on-campus laboratory period, you may e-mail your work in progress (as an attached file) to your instructor for feedback. Do not ask your instructor questions about any portion of the instructions unless you have already read it and the related lecture notes thoroughly; you will benefit more from struggling through and resolving issues yourself rather than having your instructor give you the answer immediately.

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 if 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 almost two weeks 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.

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. Support for features of C++11 and newer varies by development environment version, so refrain from using these features even when mentioned in the lectures and / or textbook.

Assignments are due at 9:59 p.m. on the date of the deadline. Any submission after this deadline will be accepted for half credit per the policy in the syllabus addendum.

Examinations After every three chapters covered in the lectures there will be an examination. These examinations will test both your understanding of underlying concepts and your knowledge of C++ syntax. Examinations may 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. As mentioned earlier, your instructor may require the use of LockDown Browser on examinations. 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.

These are the tentative examination availability dates (note that all four examinations have a predetermined time limit from the time you begin):

In the event of an excused absence, you may make up one exam if 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).

Academic Honesty Students are expected to complete their own work regardless of circumstances. Peer assistance should be limited to the concepts discussed in class. The following activities are violations of the Academic Honesty Code for this course:

Under no circumstances should you post the details of any assignment on a public discussion board, forum, or newsgroup. Likewise, you should not post any portion of your solution to any assignment, even in progress, on such a public resource. Making such information available on the Internet will be considered academic misconduct.

Your instructor will follow the procedures outlined in the Academic Honesty Code section of the Catalog and Student Handbook should he perceive a violation of the Code. Unless there is evidence that the violation was not due to any action on the part of a specific student, each student involved in the violation will be penalized.