Syllabus: CIT 163

Intro to Programming: C++, (Internet-Based Delivery)

Department of Computer and Information Technology | College of Science

Fall 2017

Instructor

Brian M. Morgan

Office

Morrow 114

Phone Number

(304) 696-6469

Fax Number

(304) 696-6533

Office Hours

You can email me at anytime to set up an appointment.

E-Mail

brian.morgan@marshall.edu

This course begins on August 21, 2017 and ends on December 15, 2017.

Please note that all times are Eastern.


Please see the University Academic Calendar for course withdrawal dates.

Course Materials and Cost

The required textbook is the same one that will be used in the traditional, classroom-based CIT 163 course. The book is available in the Marshall University Bookstore on the Huntington campus, or can be ordered online at http://www.marshall.bkstr.com/. You will not only need the book, but also Microsoft Visual Studio Professional 2015, or Visual Studio Enterprise 2015 (or Visual Studio Community Edition 2015) or another C++ compiler. If you are using a Mac, you can use XCode.Visual Studio is available for free to students in this course (see http://www.marshall.edu/cos/software/ for specifics).

The information on the required text book is below:

C++ Programming: From Problem Analysis to Program Design, 7th edition, by D.S. Malik; Course Technology; ISBN:9781285852744, 2015.  E-Book Available from CengageBrain.com

The textbook can be obtained from the Marshall University bookstore.  The approximate cost of the book is $236.50 (new) or $33.49 (rental)

Technical Requirements

Course Details

Course Description:
Concepts of software development and maintenance using C++, including syntax of the language, loops, functions, 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 online lecture notes, exams, and programming projects. Students will participate in programming projects that illustrate the implementation of concepts in general science applications to learn C++. 

Pre/co-requisites:
This course has no academic prerequisites. It is available to all students including those who are seeking a college degree, auditing students, and to anyone who is interested in advancing his/her computer skills and competency.

Desired Objectives/Outcomes:
By the end of this course, you should be able to the following. Anyone scoring over o:

Course Student Learning Outcomes

How Practiced in this Course

How Assessed in this Course

Demonstrate Object-Oriented programming concepts through the development of a program that uses Object-Oriented concepts.

In-class examples, discussions, Chapter 10 examples

Project 9

Demonstrate basic console programming skills using C++ through the development of several projects that build one upon another, each with an increasing number of skills.

In-class examples, discussions, Chapters 2 through 10 examples

Projects 1 through 9
Final Exam

Develop software applications using Microsoft Visual Studio while completing homework projects and your final exam.

In-class examples, discussions, Chapters 2 through 10 examples

Projects 1 through 9
Final Exam

Demonstrate planning techniques for developing software applications by preparing algorithms and pseudo-code for your programming projects before coding.

In-class examples, discussions, Chapters 1 through 10 examples

Projects 8 through 9
Final Exam

Use programming logic to solve complex algorithms in order to implement code that meets the assignment objectives.

In-class examples, discussions, Chapters 2 through 10 examples

Projects 1 through 9
Exams 1 and 2
Final Exam

Students will identify requirements for and analyze a problem, implement a solution for that problem, and verify their solution, using computer and information technology.

In-class examples, discussions, Chapters 2 through 10 examples

Final Exam


Course Grading

Instruction method:
Students should read the lecture notes that are contained within Blackboard and read the corresponding chapters from their textbook before tackling programming projects for each chapter. Programming Projects and Exams covering major topics are part of the course. Students may work on their assignments/projects from home with an Internet connection or if you are on campus, in any of the publicly accessible computer labs.

Evaluation method:
Evaluation of student's performance will be based on the quality of your performance on programming projects and exams.

Grading Policy:
Final grades are based on performance on projects and a final exam as indicated below.

2 in-class Exams (equally weighted) 300 points
Final Exam 200 points
9 Programming Projects (equally weighted) 500 points

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 coding 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 to receive at least partial credit. Code that does not compile will receive 0 credit, NO EXCEPTIONS.  This means you must debug your code before submitting.

4.   When a problem does not specify a required complexity, the grading will differentiate between efficient and non-efficient 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, including any and all web 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.

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

895 - 1000 points

A

795 - 894 points

B

695 - 794 points

C

595 - 694 points

D

Less than 595 points

F

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

Exams and Quizzes

There are THREE exams worth 50% of your overall grade. The first comes after Chapter 5’s content, the second after Chapter 10, and a comprehensive Final exam. The exams can be taken at any time once you have completed the reading and projects associated with the chapters listed herein, but all exams must be completed before the end of the day on December 15, 2017. The exams are taken within Blackboard through the Assessment tool, whose link can be found on the course’s homepage. A schedule of when you should take each exam is found under the Schedule link on the course's homepage. A proctor will not be required for any of the exams, nor will any other special arrangements be required other than access to a computer with Internet access for a minimum of 1 hour for each exam (and up to 2 days for the final exam). Exams are, however, closed book. Rxams can be taken at any point, as long as they are completed by the date above.

Projects

The course includes a number of programming projects. All projects should be completed by the suggested due date that is listed within the course schedule link on the course’s homepage here in Blackboard. By doing so, you will ensure that you will complete the course on time without having to be rushed at the end of the semester. All projects must be submitted through the Blackboard Assignment Tool, and the description of each project/assignment is currently found within Blackboard's Assignment Tool, linked to the course homepage. As with the exams, all projects must be completed and submitted by the end of the day on December 15, 2017.

Discussions

The Discussions tool within Blackboard will be used to make any general announcements, last minute changes, etc. It is also highly recommended and strongly encouraged that you take advantage of this tool to bounce ideas off of your class mates, and myself as your instructor. You can post questions regarding assignments, course notes, reading materials, etc., but please do not share solutions to your homework projects or exams.

It is mandatory that you monitor your Blackboard course messages at least once a day. You as a student can also use the discussions tool to post any questions/comments that you have about the course content, projects, specifics of what is to be done, etc.

On-Campus Requirements

Because this is an online course, there is absolutely no requirement that you come to campus. You can communicate with me via the Blackboard Discussion board or via email, or schedule an office visit if necesary.

Course Policies

My Academic Honesty Policy

Academic Dishonesty is defined as any act of a dishonorable nature which gives the student engaged in it an unfair advantage over others engaged in the same or similar course of study and which, if known to the classroom instructor in such course of study, would be prohibited. Academic Dishonesty will not be tolerated as these actions are fundamentally opposed to "assuring the integrity of the curriculum through the maintenance of rigorous standards and high expectations for student learning and performance" as described in Marshall University's Statement of Philosophy.

If you are found cheating on projects or plagiarizing answers from the Internet or other sources (among other things), there will be no second chance. Your penalty is that you will receive a failing grade for the course. In those cases in which the offense is particularly flagrant or where there are other aggravating circumstances, additional, non-academic, sanctions may be pursued through the Office of Judicial Affairs. Notice of an act of academic dishonesty will be reported to the Department Chair, Dean of the College of Science, and to the Office of Academic Affairs. Please refer to the Marshall University Undergraduate Catalog for a full definition of academic dishonesty.

Make-up Exams and Late Penalty:No make-up exams will be given after December 15, 2017 except under unusual circumstances and satisfactory written justification. Any student who fails to complete the exams and projects by this date due to an unexcused reason will receive a grade of zero for that assessment with no opportunity for make-up or substitution. The decision whether to give a make-up exam rests with the instructor.

Withdrawal PolicyThe University withdrawal policy is followed in this course.

Students with Disabilities: Please see the section entitiled "Students with Disabilities" found on the Marshall University Policies page: http://www.marshall.edu/academic-affairs/policies/#Disability

Topics and Methodologies / Schedule

A detailed schedule of topics covered in this course can be found under the schedule link on the course homepage in Blackboard. Please refer to this schedule as it contains the suggested dates for which you should read over the notes, complete the course projects, and the final exam. Also, please note this is a highly suggested timeline to follow, but is not mandatory. The only mandatory date is the course completion date of May 6, 2016. All assignments and exams MUST be completed by this date

For each topic discussed in the notes, specific experience of other students and the instructor will be posted to the discussions forum to enhance the characteristics involved.

Effort Required:
Even thoguh this is a 100-level course, a considerable amount of work and research effort is required of the student, especially since the technologies/practices used in the course build upon each other.  With programming, you cannot start learning the different languages we will be using at different tiers without practice.  This means you may have to play around with in-class examples, experimenting to see if something you are curious about really works like you think, doing further research on topics of interest, and so on. Programming courses can be notorious time eaters. Occasionally, a problem with code will take large amounts of time to locate and fix.

For every one hour in class, the student is expected to put in an effort of at least 2-3 hours outside the class for studying and completing assignments and projects.  Upon background and preparedness, some students may have to put in additional effort. PLEASE DO NOT PROCRASTINATE.  Procrastination and the placing of blame on other factors than yourself have become very large problems in college classes, and is often a bad approach to life.  Prioritize, schedule, and take responsibility for your actions and you should do very well in this class.  Starting early enough so that you have time to ask me questions when you run into problems can help with this (why spend 4 hours struggling with a frustrating roadblock the night before the assignment is due, when you can spend 10 minutes composing an e-mail early in the week, work on other problems while waiting for the answer, and then get a reply that makes everything clearer as soon as you read it?)

A Successful Student will:

  • Attend every lecture
  • Participate in class (asking questions, paying attention, taking notes, being attentive)
  • Complete reading assignments in a timely fashion.
  • Practice and "play" with posted examples.
  • Ask specific questions -- in class, in lab, in office-hours, and in e-mail
  • Read through each homework assignment as soon as it is posted
  • Start working on each homework assignment early
  • E-mail me with specific homework-related questions starting early in the week both to clarify what a question is asking for and when hitting roadblocks (being sure to include both the code involved and any error messages or descriptions of odd behavior)
  • Always submit SOMETHING for an assignment, even if it is not complete
  • Study with others for exams, practice explaining concepts to one another.
  • Attempt every exam problem, and carefully study exams when they are returned.
  • Practice programming at the different levels as much as possible

You are encouraged to ask me questions in class, in office hours, and by e-mail. The most successful students are those who are not afraid to ask questions early and often, who do the assigned reading, who attend lecture regularly, who start homework promptly after the required topics are covered in lecture, and who practice course concepts as much as possible.
It is better to ask a question sooner than later -- for example, it is better to send an e-mail with a specific question as soon as you think of it than it is to wait a day or two until the next class meeting or office hour.  If you wait to ask such questions, you may not have time to complete an assignment.  It is not a problem if you end up sending me several questions in separate e-mails (as you work on different parts of a project while awaiting earlier answers).  That being said, I expect you to ask specific questions as overly vague or broad questions are very problematic. An example of an overly vague or broad question is: "Here's my assignment.  Is it right?”  I will not simply tell you if something is right.  Be specific.

Resources

Me: Do not hesitate to contact me directly with questions or concerns. You can reach me via E-mail or if necessary by phone at (304) 696-6469. Please don't let your questions hang out there and simmer. If you are not sure about something the best thing to do is to ask about it right away! Something that may seem obvious to me may not be obvious to you at all! I answer e-mails every evening before going to bed, so if you do not hear from me within 24 hours of sending your message, it may not have reached me.

Support Services
Marshall University offers a variety of support services to students enrolled in online courses:


About Me - Biography

BRIAN M. MORGAN, BS, MS

Chair and Professor, Computer and Information Technology
Marshall University

Brian Morgan is a resident of Chesapeake, OH and holds a Bachelor of Science degree in Computer Science from Marshall University and a Master of Science Degree in Technology Management from the Marshall University Graduate College .

Professional Experience

Professor, Computer and Information Technology, Marshall University, Huntington , WV . (July 2017 - Present).

Chair, Computer and Information Technology Department, Marshall University, Huntington , WV . (July 2016 - Present).

Associate Professor, Computer and Information Technology, Marshall University, Huntington , WV . (July 2016 - June 2017).

Chair, Integrated Science and Technology Program, Marshall University, Huntington, WV . (May 2012-June 2016).

Associate Professor, Integrated Science and Technology Program, Marshall University, Huntington, WV . (May 2008-June 2016).

Associate Professor, Integrated Science and Technology Program, Marshall University, Huntington, WV. (May 2008-Current).

Assistant Professor, Integrated Science and Technology Program, Marshall University, Huntington, WV. (July 2000-May 2008).

Director, Center for Instructional Technology, Marshall University, Huntington, WV. (October 1997-June 2000). Responsible for everyday duties of the Center, as well as managing Instructional Technology and World Wide Web Development on both the Huntington and South Charleston campuses of Marshall University, and coordinating faculty and staff IT development training programs.

Part-Time Faculty, Marshall University Community and Technical College, Huntington, WV. (August 1997-Current). Have taught Computer Technology 107, 107E, and 108; Information Technology 107E, and have designed the electronic versions of Computer Technology 107E and Information Technology 107E.

Instructional Technologist, Marshall University, Huntington, WV. (November 1996-October 1997). Responsible for working with Information Technology staff and faculty from a variety of disciplines on the selection and production of CD-ROM-based and WWW-based multimedia instructional materials, assist faculty and staff, through training and consulting, in integrating computing and information resources into the curriculum, track current and emerging Internet and development technologies, and aid in the progression and completion of technology grants. I have created distributable Computer Based Training modules for both Distance Education and Faculty Training, as well as worked with several Internet course creation tools for placing classes "on-line."

Computer Programming, Marshall University College of Liberal Arts and College of Science, Huntington, WV. (April 1996-May 1997). Responsible for developing and programming multimedia tutorial programs for the University as well as programming multimedia modeling software for science laboratory courses.

Computer Programming and Research, NASA and National Science Foundation Grant through Marshall University, Huntington, WV. (Spring 1996-Fall 1996). Responsible for developing and programming lecture-room demonstration educational project programs through a NASA and NSF grant for Marshall University.


Marshall University