CS 2334—Spring 2017, Syllabus

Course Title:
Programming Structures and Abstractions

Class Email:
Email alias for all members of the teaching team (Prof Hougen and all TA's): cs2334@cs.ou.edu

Dean Hougen, Devon Energy Hall 242, 405-325-3150, hougen@ou.edu

Teaching Assistants:
Emily Grimes, emilykathryngrimes@ou.edu
Manvir Kaur, Manvir.Kaur-1@ou.edu
Prathyusha Kondapalli, prathyusha_kondapalli@ou.edu
Zarah Sadri, zahra.sadri@ou.edu

Class Hours:
Tuesday, Thursday 3:00-4:15, Physical Sciences Center 108

Lab Hours:
Section 013: Tuesday 8:30-10:20, Sarkys Energy Center M207 (Prathyusha and Manvir)
Section 011: Tuesday 10:30-12:20, Sarkys Energy Center M207 Devon Energy Hall 130 (Prathyusha and Manvir)
Section 014: Tuesday 10:30-12:20, Sarkys Energy Center P209 (Zarah and Emily)
Section 012: Tuesday 12:30-2:20, Sarkys Energy Center M207 Devon Energy Hall 130 (Zarah and Emily)

Office Hours:
Dean Hougen
Thursday 9:30-12:00, Friday 10:00-11:00; Devon Energy Hall 242
Emily Grimes
Monday 11:00-12:00, Wednesday 10:00-11:00; Devon Energy Hall 115
Manvir Kaur
Monday 12:00-1:00, Friday 11:00-12:00; Devon Energy Hall 115
Prathyusha Kondapalli
Monday 9:00-10:00, Wednesday 11:00-12:00; Devon Energy Hall 115
Zarah Sadri
Tuesday 4:30-5:30, Thursday 5:30-6:30; Devon Energy Hall 115

Required Text Books:
You are required to have your own copy of the following textbooks:
— Programming Structures and Abstractions:
University of Oklahoma CS 2334 Spring 2017: Programming in Java, Roman Lysecky (lead author), Adrian Lizarraga (lead author), Frank Vahid, and Amy McGovern, with Alex Edgcomb and Susan Lysecky, 2015, zyBooks. (https://zybooks.zyante.com, code TBD).

— Computer Ethics:
A Gift of Fire: Social, Legal, and Ethical Issues for Computing and the Internet, Fourth Edition, Sarah Baase, 2012, Prentice Hall. (ISBN-10: 0132492679; ISBN-13: 978-0132492676)
Students should read ahead 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.


The primary means of transmitting class information to the students will be through announcements during class time and through web pages. You are responsible for announcements made through either or both of these means.

Occasionally, urgent information may be sent via email. You must ensure that the email address the University has on file for you is valid and is monitored by you. A test of the email addresses provided by the University will be made during the second week of class. You are responsible for notifying the instructor if you do not receive this test email.

The best way for students to communicate with the teaching staff is to come to scheduled office hours. If you cannot attend office hours in person, phone calls can be accepted but students present in the office will get priority. Email can also be used but a quick or detailed personal response is unlikely as we get a lot of email and responding to email can be very time consuming. Moreover, emails will get a lower priority than either phone calls or in-person visits.

One way for students to communicate with one another is through the discussion forums of the Desire2Learn web site for the class.

Details of all of the communication methods follow.

Information about this class will be found on the class website. The URL is
This page will contain links to the directory of class materials and announcements and other important information.
Students should use the email addresses listed above. Note that we get a lot of email. Do not expect a reply in minutes; one or two days is more likely in most cases. If you have not heard back within five days, please resend your message, if it is still relevant.

Expectations and Goals:

The prerequisites for this course are CS 1323 - Introduction to Computer Programming and Mathematics 1823 - Calculus and Analytic Geometry I. (If you have not taken these courses, you will need instructor permission to take 2334.) 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. This course will introduce students to the use of abstract data types and files as well as GUIs and event-driven programming. These tools will be used by students to create medium-scale programs. This course will also introduce students to ethical issues related to computer science.

For topics covered, see the schedule.

Specific Outcomes of Instruction:

By the end of the semester, the students will increase their:

  1. Ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  2. Ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
  3. Understanding of ethical issues and responsibilities.
  4. Ability to apply design and development principles in the construction of software systems of varying complexity.

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 and Mac OS machines in DEH 115. 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.


The graded assignments and their contribution to a student's grade are given in the table below. (Subject to change.)

Preliminary Designs (1-5)
Project 1
Project 2
Project 3
Project 4
Project 5
Exam 1
Exam 2
Final Exam
zyBook Exercises
(See Projects Below)
Classes/Objects and Lists
Sorting and Searching Lists
Serialization and Graphics
Model, View, Controller Paradigm
Recursion, Exceptions, and Assertions
First 1/3
Second 1/3
Last 1/3 and Comprehensive
All Topics
All Topics

All exams in this course are to be done ALONE; the work submitted by a student MUST be the student's own. Likewise, some labs and some projects in this course are to be done ALONE; the work submitted by a student MUST be the student's own. On the other hand, group work is REQUIRED for some of the labs and some of the projects. These labs and projects will be clearly marked as requiring group work. For these labs and projects, students may work in groups of two or more. The more people in the group, the harsher the grading will be.

You are responsible for the material covered during the lectures sessions, whether or not it is also found in your textbooks or other assigned reading materials. Similarly, you are responsible for the 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 these sources of knowledge, as depicted by the shaded region of the Venn diagram below, not merely their intersection.

UNION of lectures and readings

All work in projects must properly cite sources. For example, if you quote a source in your project, you must include the quotation in quotation marks and clearly indicate the source of the quotation.

Programming projects will be due at 11:00 pm on the due date. Late assignments will be penalized 20% per day late. (All parts of days will be rounded up.) After five days, you will not be able to turn in that assignment for credit. If you are worried about turning in the assignment late and loosing points, turn in the assignment ahead of time.

Each group will turn in ONE electronic copy of each assignment. The version submitted will be mutually agreed upon by the group members. The scores assigned to the members of the group will reflect their contributions to the version of the project submitted. Note that students are required to contribute equally to each project to the extent possible, so the scores assigned to each group member will typically all be the same. However, if all members of the group do not contribute equally to a project for some reason, the scores assigned to group members may be quite different.

Note that the policy of having each group submit one version of each project for grading is in stark contrast to having each member of each group submit his or her own version of the project for individual grading. As stated above, group work is REQUIRED for some of the labs and some of the projects. Working as a group does not mean having a chat now and then with another class member then going off to work on your own on the project. It means actively working together with the other members of your group to create a single product (a joint creation).

All exams will be open book/open notes. NO electronic devices will be permitted in the testing area.

Copying another's work, or possession of electronic computing or communication devices in the testing area, is cheating and grounds for penalties in accordance with school policies.

Any student with a disability should contact the instructor so that reasonable accommodations may be made for that student.

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 http://www.ou.edu/eoo/faqs/pregnancy-faqs.html for commonly asked questions.

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.

Drop Policy:
Students who do not attend the first week of class may be dropped from the course to make room for additional students to enroll.

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 class work that may fall on religious holidays.

Related Documents:
Students should also read the related documents on Replacement Assignments or Extensions and Discussions of Scores and Grades.