RAIK183H

Computer Problem Solving Essentials

Class Syllabus

Fall 2009

 

Instructor

 

Leen-Kiat Soh, Associate Professor

Room 122E, Avery Hall

Tel:  472-6738

E-mail:  lksoh@cse.unl.edu

Homepage:  http://cse.unl.edu/~lksoh/Classes/RAIK183H_Fall09/

Office Hours:  1:00 – 2:00 PM TR and Open Door Policy

 

Teaching Assistants

 


Steve Trout, Room 3FL (Third Floor Lounge), Kauffman Hall

Tel: 630-338-6794, E-mail: strout@cse.unl.edu, Office Hours: TBD

 

Lab Assistants: 

Justin Popek, Cole Easterday, and Beth Nielson

 

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.