Skip to content

GaryTheSnail/course-materials

 
 

Repository files navigation

Syllabus

Spring 2016, Object-Oriented Programming
CPSC 121, sections 01, 03, 09, 11, 17
https://github.com/2016-spring-csuf-benblazak-cpsc-121

Instructor

name Ben Blazak
phone None
email bblazak@fullerton.edu
office CS 303

Office hours

section day time place
01 Tu 7pm--8pm CS 303
03 Tu 7pm--8pm CS 303
09 Th 7pm--8pm CS 303
11 Th 7pm--8pm CS 303
17 W 3:30pm--4:30pm CS 303

And by appointment. During final exam week, office hours are by appointment only.

Calendar

Meeting Times

ICAL | HTML

section day time place
01 lecture TuTh 1:00pm--1:50pm E 202
lab Tu 2:00pm--3:50pm CS 104
03 lecture TuTh 1:00pm--1:50pm E 202
lab Th 2:00pm--3:50pm CS 104
09 lecture TuTh 4:00pm--4:50pm E 202
lab Tu 5:00pm--6:50pm CS 104
11 lecture TuTh 4:00pm--4:50pm E 202
lab Th 5:00pm--6:50pm CS 104
17 lecture MW 2:30pm--3:20pm CS 102B
lab M 3:30pm--5:20pm CS 104
section day time place
01 midterm Tuesday, March 22 during lab CS 104
final Tuesday, May 17 noon--1:50pm E 202
03 midterm Thursday, March 24 during lab CS 104
final Tuesday, May 17 noon--1:50pm E 202
09 midterm Tuesday, March 22 during lab CS 104
final Tuesday, May 17 5pm--6:50pm E 202
11 midterm Thursday, March 24 during lab CS 104
final Tuesday, May 17 5pm--6:50pm E 202
17 midterm Monday, March 21 during lab CS 104
final Wednesday, May 18 2:30pm--4:20pm CS 102B

Homework and Lab Assignments

Homework and lab assignments will be given approximately every other week. These will mostly be programming assignments, but may include other work that I feel contributes to the course overall. They will be posted to the course GitHub page.

Quizzes and Tests

Quizzes will be given as time allows, or as often as I feel is necessary to provide students with ample opportunity to assess their knowledge.

The midterm and the final will essentially be long quizzes. The midterm may cover everything discussed in class to that point. The final may cover everything listed in the course standards, whether we covered it in class or not.

Tentative Schedule

topic chapter(s) week
Review of CPSC 120 1--6, 8 1--2
Pointers 10 3
OOP Introduction 7 4--5
Exceptions, Templates, and the STL 16 6
Recursion 14 7
Searching, Sorting, and Algorithm Analysis 9 8--9
(Midterm) 9 lab
(Spring Recess)
More OOP 11 10--11
Advanced OOP 15 12--13
Review 14--15
(Final) 16

Course Information

Description

From the [University Catalog] (http://catalog.fullerton.edu/preview_program.php?poid=537):

units 3
time 2 hours lecture, 2 hours activity
prerequisites CPSC 120 or passing score on Computer Science Placement Exam
corequisites None
topics The object-oriented programming paradigm: classes, member functions, interfaces, inheritance, polymorphism, and exceptions. Design practices including encapsulation, decoupling, and documentation. Pointers/references and memory management. Recursion.

This class does not meet any CSUF General Education requirements.

Objectives

To reinforce the material covered in CPSC 120, introduce Object Oriented Programming, and prepare students for the material covered in CPSC 131.

Learning Goals

To be proficient in all listed standards.

Required Texts and Other Required Materials

No materials (books, etc.) are required. Access to a personal computer on which to do homework assignments is strongly recommended. If you wish for a book, the one I will be referencing is Starting Out with C++: Early Objects, 8th ed, by Gaddis, Walters, and Muganda (which you may already have from CPSC 120).

Etiquette (Classroom Expectations)

Personal electronics shall not be used in either lecture or lab, unless they are silent, lying flat on your desk, and being used solely to take notes and/or record the lecture (with the permission of all present). Non-personal electronics shall be used solely for the completion of assigned work, and shall also, in all cases, be silent, and used as unobtrusively as possible.

Communication, including body language and general attitude, are expected to be respectful at all times. Everyone present is also expected to be focused and participating in the current classroom activity.

If you are unable or do not wish to abide by these rules, you may be asked to leave.

Grading

Method

The grading for this course will be standards based. This means that your grade will depend on demonstrating competency on a number of standards rather than on your performance on any particular test, quiz, or homework assignment.

Homework and Lab Assignments

Homework and lab assignments will be commented on for feedback, but the only score that will be recorded is whether or not the assignment was completed. You are encouraged to work together with other students, but discouraged from using material generated by anyone outside our class. You are required to clearly document the source of any code, algorithm, information, etc. that you use or reference while completing your work. You are also required to explicitly state the copyright and license under which you release your code.

Your percentage score for homework and lab assignments will be the percentage of homework and lab assignments completed.

Quizzes and Tests

Quizzes and tests will be given primarily on paper, but may be posted to the course GitHub page. Applicable standards will be listed, and you will receive a grade for each as follows:

score description
1 not enough information to assess
2 you have heard of the skill
3 you understand and can apply the skill at a basic level
3.5 you are between basic competency and mastery
3.75 you have mastered the skill, but your presentation has trivial errors
4 you have mastered the skill

Most standards will be assessed several times. I will look at the trend of these assessments and use my judgment to assign you an overall grade for each standard.

Currently (though I reserve the right to change this without notice), this is implemented by taking the two most recent assessments and applying the following heuristic:

  • If the most recent is greater than or equal to the next most recent, that is your overall grade.
  • If the most recent is less than the next most recent, I average them and round up to the next highest valid grade.

If the overall grade for any standard is less than 3, the percentage score for that standard will be 0%. Otherwise, the percentage score for that standard will be the overall grade divided by 4.

Extra Credit

For each programming error I make in code posted on the course GitHub page, the first person to submit a pull request for a correct, well written, and well formated fix will receive 2 extra credit points.

For each non-programming error I make in anything posed on the course GitHub page, the first person to submit a pull request for a correct, well written, and well formatted fix will receive 1 extra credit point.

For materials written and distributed by me in relation to this class that are not posted to the course GitHub page, extra credit will be given in the same amounts as above to the first person to present a correct, well written, and well formatted fix to me via some other means.

Other opportunities for extra credit points may be offered throughout the course. See extra credit.

Each extra credit point will add 0.2% to your final grade.

Conversion to Letter Grade

Each group will be weighted as shown in standards, and standards within each group will be weighted equally unless otherwise noted. Percentage points due to extra credit will be added, and the resulting percentage will be converted to a letter grade as follows (written in Python 3):

def letter(percent):
    if   percent >= 97: return 'A+'
    elif percent >= 93: return 'A'
    elif percent >= 90: return 'A-'
    elif percent >= 87: return 'B+'
    elif percent >= 83: return 'B'
    elif percent >= 80: return 'B-'
    elif percent >= 77: return 'C+'
    elif percent >= 70: return 'C'
    elif percent >= 50: return 'D'
    else              : return 'F'

Note that plus/minus grading is only used for grades above C. Note also that Computer Science majors must earn a grade of C or higher in this course to receive credit; if a lower grade is earned, the course will have to be repeated. Please keep all assignments and exams returned to you so that any discrepancies can be easily and fairly corrected. Except in cases of actual error on my part, final grades will not be changed.

Late Assignments

Late assignments will not be accepted for credit. However, when I grade an assignment, I will grade the most recent version that I have on hand.

Alternative Procedure for Submitting Work

In case of technical difficulties with GitHub, assignment due dates will be postponed, or an alternate method of submission will be communicated. In the case of an emergency that disrupts normal campus operations or causes the University to close for a prolonged period of time due to circumstances such as an earthquake, we will continue our class online, via methods to be communicated. In the case of a simultaneous internet outage effecting myself or the majority of the class, you are requested to continue studying according to the tentative schedule; classes may well be canceled, but learning on your own will give you the opportunity to challenge the course when the University reopens.

Attendance

I reserve the right to drop you from the course if you are absent without notifying either me or the departmental office within 24 hours after any meeting missed during the first week of classes, or if you do not meet the course prerequisites.

I expect you to be present for the entirety of the first meeting, and for roll call during the first week. Apart from this attendance is not required, nor will roll be taken.

University Information

Students with Special Needs

Please inform the instructor during the first week of classes about any disability or special needs that you may have that may require specific arrangements related to attending class sessions, carrying out class assignments, or writing papers or examinations. According to California State University policy, students with disabilities must document their disabilities at the Disability Support Services (DSS) Office in order to be accommodated in their courses. Additional information can be found at the [DDS website] (http://www.fullerton.edu/dss/), by calling 657-278-3112, or by emailing dsservices@fullerton.edu.

Academic Dishonesty Policy

Academic dishonesty includes such things cheating, inventing false information or citations, plagiarism, and helping someone else commit an act of academic dishonesty. It usually involves an attempt by a student to show a possession of a level of knowledge or skill, which he/she in fact does not possess. Cheating is defined as the act of obtaining or attempting to obtain credit for work by the use of any dishonest, deceptive, fraudulent, or unauthorized means. Plagiarism is defined as the act of taking the work of another and offering it as one's own without giving credit to that source. An instructor who believes that an act of academic dishonesty has occurred (1) is obligated to discuss the matter with the student(s) involved; (2) should possess reasonable evidence such as documents or personal observation; and (3) may take whatever action (subject to student appeal) he/she deems appropriate, ranging from an oral reprimand to an F in the course. Additional information on this policy is available from [University Policy Statement 300.021] (http://www.fullerton.edu/senate/documents/PDF/300/UPS%20300.021.pdf) found at the [UPS section of the Academic Senate website] (http://www.fullerton.edu/senate/documents/ups.asp).

Emergency Contact

In the event of an emergency, call 911, or contact the University Police at 657-278-2515 (dispatch). Additional information can be found at the [CSUF Emergency Preparedness website] (http://emergencypreparedness.fullerton.edu).

Supplemental Instruction (SI)

The SI program provides weekly, peer-led group study sessions for students taking historically difficult, gateway, and bottleneck courses. I was an SI leader as an undergrad, and I strongly recommend the program (even if you don't feel you need it!). If you are interested, more information will be provided.

Disclaimer

Per [UPS 300.004] (http://www.fullerton.edu/senate/documents/PDF/300/UPS300.004_12-3-13.pdf)

Faculty shall not be bound to adhere to their course outlines on a strict day-to-day basis, but should follow their outlines as much as is reasonably possible.

After distribution of course outlines to students, major assignment or course requirement changes (e.g., additional term papers or examinations) must be announced to students with a reasonable timetable for completion.


[Creative Commons License] (http://creativecommons.org/licenses/by/4.0/)
Copyright © 2016 Ben Blazak bblazak@fullerton.edu
This work is licensed under a [Creative Commons Attribution 4.0 International License] (http://creativecommons.org/licenses/by/4.0/)
Project located at https://github.com/2016-spring-csuf-benblazak-cpsc-121

Credits

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 71.2%
  • Python 18.8%
  • C++ 4.8%
  • Makefile 2.2%
  • CSS 1.5%
  • Shell 1.1%
  • C 0.4%