CSCE 3193, Programming Paradigms, Spring 2017

Course Description:

Programming in different paradigms with emphasis on object oriented programming, network programming, and event driven programming. Other major topics include concurrency, survey of programming languages, functional programming, exception handling, debugging skills, and good programming practices.


CSCE 2014


(The book is recommended, but not required for the class)

Paul Deitel & Harvey Deitel, How to Program, 9e , Prentice Hall, 2012.

Course learning outcomes

The students should be able to program in a variety of languages representative of different paradigms, e.g., object-oriented, functional, client-server, etc. The students should have a better understanding of how programming languages differ and how they are similar.


The following weightings will be used to determine points in this class:

Exams: 40%
Assignments: 60%

Final grades will be determined by the percentage of points earned within the following intervals:

A: [90%, 100%]
B: [80%, 90%)
C: [70%, 80%)
D: [60%, 70%)
F: [0%, 60%)

3 exams are planned. Each will carry equal weight. Students should plan to spend an average of 8-12 hours per week on assignments, depending mostly on programming proficiency. Assigned work may not be evenly distributed throughout the semester, so students should plan accordingly. Students are expected to learn the skills they demonstrate in the programming assignments, as opposed to performing them only once. To enforce this, points awarded for the completion of an assignment will be considered tentative until the student demonstrates proficiency with corresponding skills on subsequent exams. When students demonstrates a lack of proficiency at a particular skill on any exam, the instructor will retroactively reduce the scores of programming assignments that require the skill.

Late and incomplete work:

Most assignments require implementing certain functionality in code. Achieving partial functionality does not entitle one to partial credit. If your code does not work as expected, you will be asked to fix it. No assignment will be accepted until it correctly implements the assigned functionality. You may resubmit as many times as you like. Per university policy, no work will be accepted after the last day of class, even if it is submitted before the final exam. Late work will be penalized by an absolute 3% for each day late (including holidays, weekends, etc.) up to a maximum late penalty of 40% per assignment. A project is considered one day late if it is submitted as little as one second after the deadline (or as much as 23.99 hours after the deadline).

Every semester, someone experiences some sort of hardware failure. Students can adapt by working in the programming laboratories. They can prepare by making backup copies of their work on a thumb drive or Internet drive. They can also ask me to send to them copies of their previous submissions. So, hardware failures do not generally justify much leniency. You have been warned.

Academic Misconduct:

As a core part of its mission, the University of Arkansas provides students with the opportunity to further their educational goals through programs of study and research in an environment that promotes freedom of inquiry and academic responsibility. Accomplishing this mission is only possible when intellectual honesty and individual integrity prevail. Each University of Arkansas student is required to be familiar with and abide by the University's `Academic Integrity Policy' at Students with questions about how these policies apply to a particular course or assignment should immediately contact their instructor.

I do not determine the penalties for any incidence of cheating. I submit evidence to then follow whatever sanctions they instruct me to impose. Code and other project you submit will be archived and analyzed to detect plagiarism. All assignment submissions are expected to be unique implementations made entirely by individual students. Large blocks of identical code in regions you were expected to implement yourself, (or code that differs only in variable names and whitespace, for example), is evidence of cheating. Turning in code that you do not understand indicates that cheating has occurred. Every semester I adjust my assignments. Turning in implementations that include superfluous solutions to requirements from previous semesters is evidence of cheating.

Some additional examples to clarify what is and is not cheating in this class. Note that this list is not complete:

Not cheatingCheating
Discuss assignments with classmates.Turn in code containing portions written by someone else, or developed as a group.
Use small (5 lines or less) snips of code with proper attribution.Rename variables or functions to disguise the origin of some code.
Reuse some code you wrote for a different purpose.Turn in code that you cannot reproduce upon demand.
Use the Internet as a learning resource.Download or search for working implementations of similar assignments.
Guess on a test.Report results that you did not actually achieve.
Study in groups.Communicate during a test.
Find external resources to augment your learning.Utilize anything that gives you an unfair grade advantage.

ADA Statement:

If any member of the class has a documented disability and needs special accommodations, the instructor will work with the student to provide reasonable accommodation to ensure the student a fair opportunity to perform in this class. Please advise the instructor of the disability and the desired accommodations within the first week of the semester.

Attendance and Participation:

If the university is officially closed, class will not be held. When the university is open, you are expected to make a reasonable effort to attend class, but not if you do not feel that you can get to campus safely. Assignment due dates will be postponed in case of inclement weather.

Emergency procedures

Many types of emergencies can occur on campus; instructions for specific emergencies such as severe weather, active shooter, or fire can be found at

Severe Weather (Tornado Warning)

Follow the directions of the instructor or emergency personnel. Seek shelter in the basement or interior room or hallway on the lowest floor, putting as many walls as possible between you and the outside. If you are in a multi-story building, and you cannot get to the lowest floor, pick a hallway in the center of the building. Stay in the center of the room, away from exterior walls, windows, and doors.

Violence / Active Shooter (CADD)

CALL- 9-1-1
AVOID- If possible, self-evacuate to a safe area outside the building. Follow directions of police officers.
DENY- Barricade the door with desk, chairs, bookcases or any items. Move to a place inside the room where you are not visible. Turn off the lights and remain quiet. Remain there until told by police it's safe.
DEFEND- Use chairs, desks, cell phones or whatever is immediately available to distract and/or defend yourself and others from attack.