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)
- For minimum hardware/software requirements and student support information, please see:
http://www.marshall.edu/muonline/student-resources/
- Be sure to run the free web browser Tuneup:
https://en-us.help.blackboard.com/Learn/9.1_2014_04/Student/015_Browser_Support
- Academic Policies
http://www.marshall.edu/academic-affairs/policies/
- If you have technical problems, please go to the Help Desk:
http://www.marshall.edu/it/departments/it-service-desk/
- Help Desk Phone Numbers:
(304) 696-3200 ( Huntington , WV )
(304) 746-1969 ( Charleston , WV )
(877) 689-8638 (Toll free)
- Supplemental materials can be found contained within the Blackboard Learn environment (http://www.marshall.edu/muonline/). I will be sending class announcements, updates, etc. using your Blackboard account. Access to a WWW browser is required as is Adobe Acrobat Reader (available for download free from Marshall University's Computing Services software page at http://www.marshall.edu/it/services/availablesoftware/.
- For this course, it is recommended that you use Microsoft Visual Studio Enterprise 2015, Visual Studio Professional 2015, Visual Studio Community 2015 (or higher), or XCode on a Mac to compose your programming project answers. This software is avaiable nearly all public campus computer labs or for free to students enrolled in CIT courses via the COS Software Store (see http://www.marshall.edu/cos/software/ for specifics). It is not required to use VS 2015, but they are the only packages I will support if you should happen to have IDE or compiler issues. PLEASE ENSURE THIS SOFTWARE IS INSTALLED BEFORE STARTING YOUR EXAMS/PROJECTS.
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 |
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.
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.
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.
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.
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.
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.
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:
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
|