CPSC 246-01
Advanced Programming Principles: C++
Spring 2023
MWF 11am, 12pm ATS 230 (10523 and 9553 )

Instructor: Dr. Whitfield; Pronouns: her/she Voice Mail/ Phone: (724) 738-2935
Office Hours: MWF 11am - noon, MW: 3pm - 4pm E-Mail: deborah.whitfield@sru.edu
Office: 258 Advanced Technology and Science Hall WWW: http://granite.sru.edu/~whit


Required Text
Text:Starting Out with C++ : Gaddis. ISBN: 9780134443829

Catalog Description: This course places its emphasis on data and their role in software development. Such a study relies on a two-step approach to data abstraction. In the first step, data must be viewed as abstract objects. These objects are selected and specified so as to be useful in the solution of programming projects. In the second step, the abstract objects are translated into program data structures. An extensive examination of data structures provides the student many opportunities to explore the issues of implementing data abstractions. This course will be taught in C++, and will include an introduction to Unix/Linux.
Credits: 3.
Prerequisite: Cpsc 146 (D or better) and one of the following (D or better):Mgmt 219, Econ 219, Busa 210, Sta 152, Math 125, Math 152, Math 225

Grading
The course grade will be based upon quizzes, exams, assignments, class participation, and labs. The following is a tentative point assignment for the course:
Category Approx.
points
Quizzes 90
Exams
Midterm: Oct 7, tentatively
Final: May. 5, 8am-10am
200
Labs and Participation 20
Assignments and Projects 195

The final grade is calculated by dividing the sum of points the student earns by the total number of possible points. The final grade will be based on the scale:
100 to 90% -- A
89 to 80% -- B
79 to 70% -- C
69 to 60% -- D
59% and below -- F
The instructor may change this scale to benefit the students.

Academic Integrity
All work in this class will be the sole effort of the individual student. Cheating in any form will automatically result in a 0 and may result in failure of the course.

In programming, there is a fine line between cheating and "helping out". In my course, you may discuss the programming assignment and methods of solving the problem with others. However, you may not write code together. You must document any source that you use for an assignment. If the source is not documented, then it is plaguarism! If you have a question about what is permissable, please do not hesitate to ask.

Assignments are due at the beginning of class on the due day. Printer problems, lost data, lost programs, etc., are not excuses for late work. Late assignments will immediately be docked 50%.

Attendance
You are expected to attend every minute of every class session. If you miss a class or portion of a class it is your responsibility to determine what was missed.
Makeup exams are not given unless a valid documented absence is provided. Please note that the health center will not provide excuses.

Correct Pronouns, Names, and Inclusiveness
I enjoy an environment where students have the opportunity to bring all aspects of their selves into the classroom. This includes (but is not limited to) each individual's race, gender identity, ethnicity and religion. I support people of all gender expressions, gender identities and encourage students to use the name and set of pronouns which best reflect who they are. I expect all students to use the correct name and pronouns of their classmates, respect other students' race, ethnicity, and religion and I will do the same. Please inform me if my documentation reflects a name or set of pronouns different from what you use.

Copyrights
Students shall adhere to the laws governing the use of copyrighted materials. They must ensure that their activities comply with fair use and in no way infringe on the copyright or other proprietary rights of others. Additional information regarding copyright can be found here http://www.copyright.gov/ and information about fair use can be found here http://www.copyright.gov/help/faq/faq-fairuse.html.

Reporting Obligations of Faculty Members under Title IX of the Education Amendments of 1972: Slippery Rock University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to meet this commitment and to comply with Title IX of the Education Amendments of 1972 and guidance from the Office for Civil Rights, the University requires faculty members to report incidents of sexual violence shared by students to the University's Title IX Coordinator. The only exceptions to the faculty member's reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred to the person designated in the University protection of minors policy. Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence is set forth at: http://www.sru.edu/offices/diversity-and-equal-opportunity/sexual-misconduct-and-victim-resources.

Non-discrimination: Slippery Rock University of Pennsylvania does not discriminate on the basis of race, color, sex, sexual orientation, gender identity, gender expression, national origin, religion, age, disability, or veteran status in its programs or activities in accordance with Title IX of the Educational Amendments of 1972, the Americans with Disabilities Act of 1990, Section 504 of the Rehabilitation Act of 1973, Title VII of the Civil Rights Act of 1964, and other applicable statutes and University policies. www.sru.edu/offices/diversity-and-equal-opportunity/notice-of-non-discrimination


Course Outcomes: This course and its outcomes support the Computer Science and Information Systems Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), Communication and Interpersonal Skills (C&IS), and Ethical and Professional Responsibilities (E&PR). These Information Technology and Information Systems Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking and Problem Solving, Communication, and Values and Ethics.

This course engages students in the following high impact practices: Collaborative assignments and projects
Learning OutcomesAssessed Course Objective
PS & CT d. Implement computing solutions that consist of system and application software written in various programming languages 1. Implement object-oriented programs that use advanced features of the language and run to normal termination and which meet written specifications.
2. Design object-oriented programming solutions that include concepts such as encapsulation, inheritance, and polymorphism.
C & IS.a. Document all aspects of a system precisely and clearly. 3. Write self documenting code with an appropriate user interface that meets the style requirements for readability and usability.
E & PR.c. Demonstrate an awareness of the codes of professional ethics in the computing industry 4. Understand ethics & professionalism.
CYBR ALG-1.1 Demonstrate an understanding of algorithm analysis 5. Understand the analysis of search algorithms
CYBR ALG-1.2 Demonstrate a basic understanding of computational complexity 6. Understand the difference between linear and binary search running times
CYBR ALG-1.3 Demonstrate a basic understanding of best/worst/average case behavior 7. Understand the data sets that produce best, worst, and average case behavior of a sort algorithm
CYBR ALG-1.5 Demonstrate a basic understanding of best/worst/average case behavior 8. Design and Implement a programming solution that includes searching
CYBR DST-1 List common data formats for storing data in a computer system 9. Demonstrate an understanding of numeric, string, array, and vector data types and objects
CYBR DST-2 Demonstrate an understanding of the advantages and disadvantages of different data structures/formats 10. Implement programming solutions that use the best data structure/format for the application
CYBR DST-3 Utilize common data formats for storing data in a computer system 11. Design programs that utilize the common data types: numeric, string, array, and vector data types and objects
CYBR DST-4 Implement programs using common data structures 12. Design object-oriented programming solutions that include concepts such as encapsulation, inheritance, and polymorphism.

Additional Course Objectives include:
The student will be able to:

  1. Identify and use programming concepts supported by the core language such as classes, exception handling, events, and recursion.