CS 2334: Programming Structures and Abstractions
Syllabus (Fall 2009)
- Lecture Time: M/W/F 11:30-12:20
Lecture Location: Carson Engineering 117
Lab Times (you must be registered for one):
- Section 011: Thursday 8:30-10:20
- Section 012: Thursday 12:30-2:20
Lab Location: Sarkeys Energy Center M207
- Prerequisite: 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.
Required Text Books
Programming Structures and Abstractions: Introduction to Java
Programming: Comprehensive Version, Seventh Edition, Y. Daniel
Liang, 2008, Pearson/Prentice-Hall. (ISBN-10: 0136012671;
- Computer Ethics:Ethics & Technology: Ethical Issues in an
Age of Information and Communication Technology, Second
Edition, Herman T. Tavani, 2007, Wiley. (ISBN-10:
0-471-99803-6; ISBN-13: 978-0-471-99803-7).
Students should read beforehand the chapters that are expected to be
covered in the class period (see the class schedule). Students
should always bring their textbooks with them to class periods,
including lectures, labs, and exams.
Course web page:
- We will also be making heavy use of Desire to Learn
- Instructor: Dr. Andrew H. Fagg
- Teaching Assistant: Steven Ness
Course Goals and Topics
In this course, we develop and apply the fundamental skills of
software engineering: design, abstraction, implementation and
We will practice these skills through a set of laboratory exercises
and projects, many of which will involve the development of programs
for the CMU Finch Robot.
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 and manipulate a range of abstract
data types including stacks, queues, lists, trees and files.
- Evaluate and analyze the performance of your implementations, and use
this information to make further implementation changes.
- Use an integrated development and debugging environment.
- Evaluate and analyze the professional, ethical, legal, security
and social issues that are faced by computer scientists.
Topics will include:
- object-oriented programming,
- abstract data types: stacks, queues, lists, trees, strings and files,
- the Eclipse IDE,
- sorting and searching,
- Java collections,
- graphical user interfaces,
- event-driven programming
- the Model, View, Controller paradigm,
- exceptions and assertions,
- applets, and
- ethics in computer science.
- Attendance: We will discuss concepts and examples in
class that are not in the text book. Another student's notes
are an inadequate substitute for class attendance. You are
responsible for everything that is announced in class.
- Readings: You are responsible for the assigned material
found in your textbooks and other assigned reading materials,
whether or not it is also covered during the lectures
sessions. In other words, you are responsible for the UNION of
both sources of knowledge.
- Class Web Page: Most of the material that you will need
can be found on the class web page located at:
- Desire to Learn: This class will also use D2L, 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 software provides a number of useful
features, including a list of assignments and announcements, an
electronic mailing list, newsgroups, and a grade book.
I will update the main web site and the D2L page several
times a week. When I update the site in any significant way, I will
post an announcement on D2L 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:
- Have your university supplied email account properly forwarded to the location where you
- Make sure that your email address in D2L 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 delivered.
If you need assistance in accomplishing any of these tasks, contact 325-HELP.
- Computer Accounts and Software: All students in this
class are allowed to request a Computer Science Network (CSN)
account. This may be used for writing
programs and sending and receiving materials electronically using
the CSN Linux machines in EL 158. All code written for this course
MUST run using the compilers or interpreters that will be
specified for the assignments. You may do your development work on
whatever system you choose but it is your responsibility to ensure
that your code runs on the school systems.
- 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 Thursday,
Dec 17th from 1:30 to 3:30. 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 D2L 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 both the TA and I check D2L
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. Posting guidelines for the newsgroup
are available on D2L.
- Academic Misconduct: Feel free to discuss labs and
projects with the instructor or the TA. In addition, some of the
labs and projects will be performed in collaboration with one
other student. Do not discuss,
look at, or copy another student's solution to a lab or project,
unless you are explicitly paired with this student. Doing so
is considered cheating
You may make use of the net as a reference as you are working on
projects and labs. These references must be explicitly documented in
your code. However, downloading specific lab or
project solutions from the net is considered cheating.
Make sure that your computer account is properly protected. Use a good password, and do not
give your friends access to your account or your computer system. Do not leave printouts,
disks 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, 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://www.ou.edu/studentcode/OUStudentCode.pdf). In the unlikely event that
I elect to admonish the student, the appeals process is
described in http://www.ou.edu/provost/integrity-rights/.
- 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.
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 the laptop is 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 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.
Grades will be computed according to the following distribution:
- Project 1: 5%
- Project 2: 9%
- Project 3: 9%
- Project 4: 9%
- Project 5: 9%
- Midterm 1 (first 1/3 of semester): 10%
- Midterm 2 (second 1/3 of semester): 10%
- Final exam: (comprehensive with a focus on last 1/3 of semester): 20%
- Labs: 15%
- In-class participation: 4%
- 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 that the
- Project grades: A group is first given a grade as a
function of the quality
of their work. If both group members contribute equally to
the project (assessed in part by the other group member), then both
will receive the group grade. If there is an imbalance in the
contributions, then the grades will be scaled accordingly
(higher contributors will receive a higher grade and lower
contributors will receive a lower grade).
- Grade questions: Lab and project grade disputes
should first be brought to the TA. If this does not resolve
your question, please see the instructor during office hours. Please note
that I will examine the entire project or lab in question
and your final grade may end up lower. All disagreements about
the grading of projects or labs must be brought to the
attention of the teaching assistant within one week of when the
item was returned. Note that I generally adhere to
Dr. Hougen's Principles on Grade Discussions: http://www.cs.ou.edu/~hougen/classes/grade_discussions.html.
- Desire to Learn Grade Summary: D2L has a grade book
that is used to store the raw data that is used to calculate your
course grade. It is the responsibility of each student in this class
to check their grades on D2L after each project or lab
is returned. If an error is found, bring the graded document to me
or the TA, and we will correct D2L.
- Examination Grading Questions: If there is a dispute about the grading of an examination problem,
you may stay after class the day that the tests are returned to discuss
it. If you cannot stay at this time, return the paper to me and
stop by during my office hours. Once a test has been removed
from the classroom after it has been returned, the grade is
final and will not be changed, even if it is found to be in
Projects and Labs
- Lab due dates: Labs are due at 11:29 on the date that is
listed on the schedule (i.e., before class starts).
- Project due dates: Project materials are due by 5:00 on
the date that is listed on the schedule.
- Hand in procedure: Electronic components (reports and
code) must be submitted to the D2L digital drop box for the
Hardcopy components may be handed in to the instructor or the TA, or
placed under the instructor's door.
Groups must hand in exactly one copy of their work. However,
each individual must submit a short text
evaluation of the project work via D2L (more information to follow).
- Late policy: Because late assignments will
seriously impact your ability to follow the next section of the
course, you are required to hand in lab assignments on time.
Late lab assignments will not be accepted.
Projects may be handed in late. If late by 0-24 hours, the
project grade will incur a 20% penalty; if late by 24-48 hours,
a 40% penalty will be imposed. Projects that have not been
handed in by 48 hours will receive no credit.
Many of the materials created for this course are the intellectual
property of Andrew H. Fagg.
This includes, but is 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 http://www.cs.ou.edu/~fagg/classes/cs2334/syllabus.html
Andrew H. Fagg
Last modified: Wed Feb 11 23:38:14 2009