RAIK183H
Computer Problem Solving Essentials
Class Syllabus
Fall 2009
Lectures & Labs
Time: 11:00 AM – 12:50 PM TR
Room: Kaufmann 110
There will be 6-7 laboratory days where no lectures will be held. Instead, students work on laboratory assignments. See the course schedule for tentative laboratory days.
Catalog Listing
First course in the Raikes School of Computer Science and Management program
core. Introduction to problem solving with computers including problem
analysis and specification, algorithm development, and program design and
implementation. Emphasis on JAVA and HTML in a Windows
platform.
Class Objectives
The objective of this class is
to familiarize students with problem solving approaches using computer
programming. We study how to specify a
problem, how to come up with a solution, how to convert the solution into a
program, and how to solve the problem correctly using the program. The
conversion of a solution to a program comes in many ways. In this class, we focus on Object-Oriented
Programming (OOP) where we build “software objects” that are distinct and
standalone that programs can use to carry out more complex tasks. Specifically,
1. Mastery of problem solving in a high-level
language, basic data types, and algorithm development;
2. Familiarity with the object oriented paradigm,
software development environments, proof techniques, GUI development and
exception handling; and
3. Exposure to specification and design with UML,
test suite development, and markup languages.
Topics Covered
Data types, Arrays,
Control Structures, Operations, Methods, Documentation/JavaDoc,
Parameter passing, I/O, File I/O, Problem solving, OOP & Objects, Classes,
Inheritance & Polymorphism, Exception Handling, GUI & Event-Driven
Programming, and Searching/Sorting
Prerequisites
Admission to the Raikes
School of Computer Science and Business Management, CSCE105 and MATH103 (or
appropriate scores on placement exams).
Text Book
Wu, C. Thomas.
(2006). An
Introduction to Object-Oriented Programming with Java, New York, NY:
McGraw-Hill, 4th Edition
(Required)
Interwrite Response (Required)
Homework Assignments
There will be 5-6 programming assignments to help you understand some of the basic concepts. Java programming language must be used for all the assignments. The assignments are due at class time on the indicated dates. You will be required to hand in an on-line copy. In addition, you are required to hand in a hardcopy of your code at class time on the due date. You are expected to write well-documented, modular code. Programs which do not compile or which do not run will not receive any credit. Programs that compile and run will be graded as follows: 45% Program Correctness, 15% Software Design, 10% Programming Style, 15% Testing, and 15% Documentation.
Laboratory Assignments
The laboratories are designed to supplement the lectures and provide hands-on experiences on topics that need additional attention. It is a significant part of the course and you are strongly encouraged to fully take advantage of this opportunity. You are required to read the lab handouts and the reading assignments before coming to the lab. You are also required to take the on-line pretest prior to coming to each lab. There are 6-7 laboratories altogether.
Examinations
We will have two mid-term exams and a final exam. The dates for the tests are
listed in the lecture schedule. There will be no makeup tests.
Learning Objects
In this class, we will make use of an online set of materials designed to supplement the lectures. These materials are called Learning Objects. Each learning object has a tutorial, a set of examples, and a set of questions. There will be 10-12 learning objects.
The iLOG Project Study
The Department of Computer Science and Engineering, in
collaboration with the College of Education and Human Sciences, is conducting a
National Science Foundation-funded research project called iLOG
(http://cse.unl.edu/agents/iLOG). As part of this project, a suite of web-based
learning objects has been built on introductory computing topics. Each learning object contains an online
tutorial with exercises and a quiz on a particular topic relevant to your
course. In addition to instructional
content pages, each learning object has flash animations or videos.
Students in this course will greatly benefit by using these
learning objects. Specifically, students
are required to go through these learning objects online and complete the
assessment components. The scores from the assessment will be recorded and used
as a part of your course grade. The
learning objects will be posted on your course Blackboard website and you will
be informed when the learning objects are available for your use. Each learning object will be open for a
fixed period of time (roughly 2 weeks) and you must complete the instruction
and assessment during this period. There
will be several versions of learning objects for each topic and each student
will be assigned a specific version. In order to be fair, we will ensure that
over the course of the semester each student will see all versions of the
learning objects. Your learning object
assessment scores will count 5% towards your overall course grade. It is therefore important for you to pay
attention to this element of the course.
In addition, students are strongly encouraged to participate in
the iLOG evaluation study. The study’s objective is to identify
effective instructional strategies for on-line computer science instruction,
and specifically, to identify how instructional methods can be adapted to
meet individual student learning needs.
By signing the consent form, you are giving us permission to use your
data to perform statistical analysis to evaluate the design of the learning
objects, thus enabling us to improve learning experience for students. Your participation and your consent are
extremely important for the iLOG project and also for
our CSE Department to continue to refine its online delivery capabilities for
important courses such as this one.
If you have questions about project and the study, please do not
hesitate to contact Professors Leen-Kiat Soh (lksoh@cse.unl.edu, or tel:
402-472-6738), Ashok Samal (samal@cse.unl.edu,
or tel: 402-472-2217) and Gwen Nugent (gnugent1@unl.edu,
or tel: 402-472-1009).
Pop Quizzes
In this class, we will make use of an online tool called the Interwrite Response to administer pop quizzes. You are required to purchase an Interwrite Response clicker from the bookstore, register your ID, and then bring it to class. Each pop quiz will have several questions, and will take a few minutes to complete.
Forums
In this class, occasionally we will hold group activities called forums. Bonus points will be given for student participation in these group activities.
Final Grade
Your final course grade is based on the following: (1) homework assignments (40%), (2) laboratory assignments (10%), (3) midterms (20%), (4) learning objects (5%), (5) pop quizzes (5%), and (6) final exam (20%). Final grades in this class will be assigned based on the following scale. A+ is awarded to a student whose work and understanding of the class prove to be exceptional.
A: 94% - 100%
A-: 90% - 93%
B+: 87% - 89%
B: 83% - 86%
B-: 80% - 82%
C+: 77% - 79%
C: 73% - 76%
C-: 70% - 72%
D+: 67% - 69%
D: 63% - 66%
D-: 60% - 62%
F: below 60%
Disabilities
Students with disabilities are encouraged to contact Christy Horn for a confidential discussion of their individual needs for academic accommodation. It is the policy of the University of Nebraska-Lincoln to provide flexible and individualized accommodation to students with documented disabilities that may affect their ability to fully participate in course activities or to meet course requirements. To receive accommodation services, students must be registered with the Services for Students with Disabilities (SSD) office, 132 Canfield Administration, 472-3787 voice or TTY.
Academic Misconduct
Academic dishonesty of any kind will be dealt with in a manner consistent with the CS&E Department's Policy on Academic Integrity (http://cse.unl.edu/undergrads/academic_integrity.php). You are expected to know and abide by this policy. Those who share their code and those who copy other’s code will be penalized in the same way; both parties will be considered to have plagiarized.
Relationship to ACE
This course will satisfy ACE Learning Outcome #3: use computational and formal reasoning (including reasoning based on principles of logic) to solve problems, draw inferences, and determine reasonableness.
We will provide the following opportunities for learning the above ACE
Learning Outcome. This course not
only teaches students about how to design an algorithmic solution to solve a problem, but also teaches
students about how to engineer the design into a working piece of program. Furthermore, the engineering process of
implementing a program involves significant debugging, testing, and refining
code. These activities teaches and
reinforces inferencing:
a student has to be able to draw inference when diagnosing why a program
crashes or does not compile or generate incorrect output; after making fixes, a
student will have to re-evaluate the design to see if the outcome meets his or
her expectation, and further draw
inferences on how to proceed.
Finally, an algorithm is fundamentally a logical sequence of steps that,
given a set of input, generates definitively a set of output. The correct derivation of the output provides
the decidability of the algorithm, which in turn determines reasonableness.
We will assess your achievement of the outcome through three primary tools, among others: exams, programming homework assignments, and structured laboratory assignments. Note that the artifacts of the programming homework assignments inherently embed the results of problem solving, inferencing, and reasonableness reasoning. This is because in order to produce a working program that compiles, runs, and computes the correct output, a student must devise an algorithmic solution and then implement it. For the structured laboratory assignments, worksheets—where students submit their findings from solving the problems given—are graded, and pre- and post-tests are given to students to test how they have learned.
This course will also reinforce the following skills. Critical thinking is key
in the development of algorithms and also during the debugging process of
implementing a program. The course
provides numerous opportunities for critical thinking in lectures, homework and
programming assignments, and also in the structured laboratories. In the structured laboratories, each
assignment is problem-based and students are tasked to apply critical thinking
to solve problems.