CS 2334: Programming Structures and Abstractions
Lecture: M/W 1:30-2:45 at Dale Hall 206
Lab Times (you must be registered for one and you must attend the one in which you are registered):
- Section 011: Thursday 8:30 - 10:20 (M-207 Sarkeys Energy Ctr)
- Section 012: Thursday 12:30 - 2:20 (M-207 Sarkeys Energy Ctr)
- Section 013: Thursday 3:00 - 4:50 (M-207 Sarkeys Energy Ctr)
- Section 014: Thursday 4:30 - 6:20 (P-201 Sarkeys Energy Ctr)
Final exam: Tuesday, December 13 8:00-10:00am, Dale Hall 206
- Prerequisites: CS 1323 and Mathematics 1823. You are expected to have
a working knowledge of Java, including a familiarity
with its basic data types and control structures, and an
understanding of basic program abstraction and organization.
Course web page:
- Canvas will be used
for discussions, announcements and the grade book.
- Teaching Staff
Course Goals and Topics
This is your second course in programming. We will focus on
abstraction and programming methodologies including: inheritance,
abstract data types, integrated development environments, unit tests,
test driven development, and ethics.
By the end of this course, you should be able to:
- Analyze simple computing problems and define the requirements
that are appropriate to their solution.
- Apply design and development principles to the implementation
of a solution to the computing problems. Specifically,
implement a program in Java using abstract data types and objects.
- Demonstrate sophisticated use of objects, inheritance,
polymorphism, and generics in Java programming.
- Evaluate and analyze the correctness of your implementations, and use
this information to make further implementation changes.
- Use an integrated development and debugging environment,
including unit tests.
- Evaluate and analyze the professional, ethical, legal, security
and social issues that are faced by computer scientists,
specifically in the areas of intellectual property rights and privacy.
ABET Student Outcomes to be addressed:
B: An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
C: An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
E: An understanding of professional, ethical, legal, security, and social issues and responsibilities.
- K: An ability to apply design and development principles in the construction of software systems of varying complexity
- Attendance: You are expected to attend all of the
lectures and the labs in which you are enrolled.
- Readings: You are responsible for the assigned
material found in your textbooks before the class
session for which the reading is assigned.
The Zyante exercises contained in the assigned sections are due
before class on assigned day (see the schedule)
- Class Web Page: Most of the material that you will need
can be found on the class web page located at:
- Canvas: This class will also use Canvas, located at:
Login with your 4+4 (typically the first four letters of
your last name followed by the last four digits of your student
number), using your standard OU password. If you have difficulty
logging in, call 325-HELP. This web site provides a number of useful
features, including a list of assignments and announcements, an
electronic mailing list, newsgroups, and a grade book.
I may update the main web site and the Canvas page several
times a week. When I update the site in any significant way, I will
post an announcement on Canvas telling you what has been added
and where it is located. You are responsible for things posted on the
site within 48 hours of the post.
- Class Email Alias: Urgent announcements will be sent
through email. It is your responsibility to:
- Make sure that your email address in Canvas is correct, and
forwards email to the place where you read it. I'll send out
a test message during the first week of class. If you do not
receive this message, it is your responsibility to get the
problem resolved immediately.
- Have your email program set up properly so that replying
to your email will work correctly the first time. You can
send email to yourself and reply to yourself to test this. I
will not make any attempt to get bounced email messages
If you need assistance in accomplishing any of these tasks, contact 325-HELP.
- Laptop Computers: It is the responsibility of each
student in this class to have a working laptop computer with ample
battery (at least 2 hours of life under moderate usage) and wireless Internet connectivity. You must bring the
laptop computer to the first week of class and to all labs (you will find the laptop useful for many of the remaining classes, too).
If your computer requires repair during the
semester, it is your responsibility to make arrangements to have
another computer available and to get the necessary software
- Computer Accounts and Software: All students in this course will be given a Computer Science Network (CSN)
account. This may be used for writing
programs and sending and receiving materials electronically.
- Examinations: There will be two midterm and one final
examination. The dates are given in the
class schedule. During examinations, students are expected to
sit in assigned seats. Missing an examination without a
previously approved excuse will result in a grade of zero for
- Final Examination: The final examination is Tuesday,
Dec 13th from 8:00am to 10:00. The final is comprehensive, as required by
College of Engineering policy. No final examinations can be given
early, except as required by University policy.
- Newsgroups and Email: The newsgroup on Canvas should
be the primary method of communication (outside of class). This
allows everyone in the class to benefit from the answer to your
question, and provides students with more timely answers since the TAs and I check Canvas
at least once a day. Matters of personal interest should be directed to email instead of to the
newsgroup, e.g. informing me of an extended personal illness.
- Lab Assignments: Weekly lab assignments will be
distributed during each Thursday lab session. These
assignments are short, individual exercises.
- Projects: Five 2-week long projects will be given over
the course of the semester. These projects will be done in
groups of two. These groups will be assigned before the first
project. Group members are expected to contribute
approximately equally to each project solution.
- Academic Conduct: Feel free to discuss all assignments
with the instructor or the TAs. However,
do not discuss,
look at, or copy another student's solution to a Zyante, Top Hat or lab assignment. Doing
so is considered cheating.
For projects, communication is expected between group members.
However, communication about the solution to a project
between groups is disallowed. Doing
so is considered cheating.
You may make use of the net as a reference as you are working on
assignments. For projects, these references must be explicitly documented in
your code. However, downloading or deriving specific solutions from
the net is considered cheating.
Make sure that your computer account is properly protected. Use an appropriate password, and do not
give your friends access to your account or your computer system. Do not leave printouts
or thumb drives around a laboratory where others might access them.
Programming projects will be checked by software designed to detect collaboration. This software
is extremely effective and has withstood repeated reviews by the
campus judicial processes.
Upon the first documented occurrence of inappropriate collaborative
work or of taking a solution from a network resource, I will report the academic misconduct
to the Campus Judicial Coordinator.
The procedure to be followed is documented in the University
of Oklahoma Academic Misconduct Code (http://integrity.ou.edu). Both the provider of a solution
and the receiver of a solution will be treated equally in the
- Tutors: Tutors can be an excellent source of
support for students who are having difficulty in the
class, but only if the tutor is aware of the distinction
between teaching students the material so that they can
do their own work, and doing work for students. Tutors
who do work for students are not only failing to help
the students learn, they are abetting academic
misconduct. Examples of misconduct include:
- If your tutor is sitting behind you while you are
typing and methodically telling you what to
enter, he or she is abetting academic
- If you tutor is emailing files containing partial
or complete programming projects to you, you will
commit academic misconduct if you use those lines
in your program.
A more effective use of tutoring services is to do problems that are
similar to the assigned work, instead of doing assigned work. For
example, it would be fine to work unassigned problems from the
textbook with a tutor. This requires significant discipline, both on
the part of the tutor and the part of the student. Copying from a
tutor is as unacceptable as copying from another student. If your
tutor doesn't know how to teach properly, please ask them to call or
visit me and I will provide training and guidance. If you are tutoring
someone else in the class, you can be accused of academic misconduct
if this person copies your work.
- Incompletes: The grade of "I" is intended for the
rare circumstance when a student who has been successful in a
class has an unexpected event occur shortly before the end of
the class. I will not consider giving a student a grade of
"I" unless the following three
conditions have been met:
It is within two weeks of the end of the semester.
The student has a grade of C or better in the class.
The reason that the student cannot complete the class is properly
documented and compelling.
Religious Holidays: It is the policy of the University to excuse the absences of students
that result from religious observances and to provide without penalty
for the rescheduling of examinations and additional required
classwork that may fall on religious holidays.
Accommodation of Disabilities: The University of Oklahoma
is committed to providing reasonable accommodation for all
students with disabilities. Students with disabilities who
require accommodations in this course are requested to speak with
the professor as early in the semester as possible. Students with
disabilities must be registered with the Office of Disability
Services prior to receiving accommodations in this course. The
Office of Disability Services is located in Goddard Health
Center, Suite 166, phone 405/325-3852 or TDD only 405/325-4173.
- Classroom Conduct: Because cell phones and laptops can
distract substantially from the classroom experience, students
are asked not to use either during class, except in cases in
which they are required as part of a classroom exercise.
Disruptions of class will also not be
permitted. Examples of disruptive behavior include:
Allowing a cell phone or pager to repeatedly beep audibly.
- Playing music or computer games during class in such a way that they are visible or audible to other class members.
- Exhibiting erratic or irrational behavior.
- Behavior that distracts the class from the subject matter
- Making physical or verbal threats to a faculty member,
teaching assistant, or class member.
- Refusal to comply with faculty or teaching assistant direction.
In the case of disruptive behavior, I may ask that you leave the classroom and may charge you
with a violation of the Student Code of Responsibilities and Conduct.
Final grade will be computed according to the following distribution:
|| Percent of Final Grade
|| Total Number
| In-Class Exercises
|| Top Hat
|| Grade for this category is: |
Max(In-Class Exercises (keep N-1), Exam Average)
|| Keep N-1
| Laboratory Exercises
|| Eclipse; turn in with Web-Cat
|| Keep lab 14 and 15, and the highest 12 of labs 1-13
|| Eclipse; turn in with Web-Cat
| Final Exam
Note: category grade is distributed evenly across all items of the
category (e.g., a single laboratory assignment will count for (15/14)%
of the final grade).
- Web-Cat: Lab and project assignments will be submitted for grading to a
system called Web-Cat. Once you have submitted your
assignment, you will automatically receive a partial assessment of
your submission. A limited number of re-submissions is allowed
until the lab/project deadline. After the deadline, you will
receive further feedback on your submission. See the Web-Cat installation/use details.
- Final grades: The final grade cut-offs will be
determined at the end of the semester. These cut-offs will be
at or below the traditional 90, 80, 70, etc. cut-offs.
However, I do not expect them to be much different than these
- Grade questions:
- Projects/Labs: Grading questions for
projects/labs that are graded by the TA should first
be brought to the same TA. If this does not resolve
your question, please see the instructor.
- Exams: All grading questions must be addressed
before the exam leaves the presence of the instructor.
If you are unable to stay after class to address
questions, then return the exam to the instructor and
continue the discussion during office hours.
Once a test has been removed from the presence of the
instructor, the score is final and will not be changed,
even if it is found to be in error.
- Others: All other grading questions may be brought to the instructor.
that when an exam/assignment is brought with grading questions,
we may examine the entire exam/assignment
and your final grade may end up lower. All disagreements about
scores must be brought to our
attention within one week of when the item is returned.
Note that we generally adhere to
Dr. Hougen's Principles on Grade Discussions:
- Canvas Grade Summary: Canvas has a grade book
that is used to store the data that are used to calculate your
course grade. It is the responsibility of each student in this class
to check their grades on Canvas after each assignment
is returned. If an error is found, bring the graded document to me
or a TA, and we will correct Canvas.
- Top Hat Grade Summary: Top Hat has its own grade book
for tracking in-class exercise participation and performance. These grades will be transferred to Canvas.
- Readings: For each lecture and lab day, the course schedule lists a set of
readings. You are responsible for this material
before class begins. In addition, the homework
questions for the assigned sections in the Zyante book are due
before class begins (1:29 pm). You are required to do both the participation and challenge problems.
The Catme survey that is
due the 2nd week of the semester will count as a homework assignment.
- Lab Assignments: Weekly lab assignments will be
distributed during the Thursday lab sessions and due the next
day (at 11:59 pm). Lab assignments will be graded off-line.
However, the grader may request that you come in for an
in-person appointment to discuss your solution.
- Projects: Five 2-week long projects will be given over
the course of the semester. Projects are due
before class begins. Projects will be graded during an
in-person code review with a TA or the instructor. Groups will
sign up together for a code review time slot. Both
members of the project group must be present in order for the
code review to proceed. During the code review, both group
members must be able to discuss the specifics of the project
- Late policy: Because late assignments will
seriously impact your ability to follow the next section of the
course, you are required to complete and hand in homework and lab
assignments on time.
Projects may be handed in late. If late by 0-24 hours, the
project grade will incur a 10% penalty; if late by 24-48 hours,
a 20% penalty will be imposed. Projects that have not been
handed in by 48 hours will receive no credit.
The College of Engineering utilizes student ratings as one of the
bases for evaluating the teaching effectiveness of each of its faculty
members. The results of these forms are important data used in the
process of awarding tenure, making promotions, and giving salary
increases. In addition, the faculty uses these forms to improve their
own teaching effectiveness. The original request for the use of these
forms came from students, and it is students who eventually benefit
most from their use. Please take this task seriously and respond as
honestly and precisely as possible, both to the machine-scored items
and to the open-ended questions.
Adjustments for Pregnancy/Childbirth Related Issues
Should you need
modifications or adjustments to your course requirements
because of documented pregnancy-related or childbirth-related
issues, please contact me as soon as possible to
discuss. Generally, modifications will be made where medically
necessary and similar in scope to accommodations based on
temporary disability. Please see
for commonly asked
Title IX Resources
For any concerns regarding gender-based
discrimination, sexual harassment, sexual misconduct, stalking,
or intimate partner violence, the University offers a variety
of resources, including advocates on-call 24.7, counseling
services, mutual no contact orders, scheduling adjustments and
disciplinary sanctions against the perpetrator. Please contact
the Sexual Misconduct Office 405-325-2215 (8-5) or the Sexual
Assault Response Team 405-615-0013 (24.7) to learn more or to
report an incident.
Many of the materials created for this course are the intellectual
property of Andrew H. Fagg. Other materials are adopted/adapted
with permission from the work of Dr. Amy McGovern and Dr. Deborah Trytten.
These include, but are not limited to, the
syllabus, lectures and course notes. Except to the extent not protected
by copyright law, any use, distribution or sale of such materials
requires the permission of the instructor.
This page is online at https://www.cs.ou.edu/~fagg/classes/cs2334/syllabus.html
Andrew H. Fagg
Last modified: Thu Aug 25 03:02:05 2016