|
|
|
|
Approved by University Studies Sub-Committee. A2C2 Action pending.
University Studies Course Approval
General Course Outcomes:
Specific Course Outcomes:a. evaluate the validity and reliability of information;
Sample Course Syllabus
|
Course: |
CS 234 Algorithms and Problem Solving I CS 210 Computers in Society |
Text: |
Thomas C. Wu, Object-Oriented Programming using Java, 2nd edition, 2000 |
Prerequisites: |
Qualifying score on the math placement test or a grade of C or better in Math 120 or Math 150 |
Credits: |
4 S.H. |
Course Description: |
An introduction to the major concepts of algorithm design and problem solving. Emphasis is on algorithm development, analysis and refinement. Programming strategies and elements of programming also are covered. Various practical applications of problem solving are demonstrated. Includes formal labs. |
Instructor: |
Prof. X |
Office hours: |
Anytime |
Office: |
Anywhere |
e-mail address: |
profX@wind.winona.edu |
Office phone: |
555-1234 |
Course Home Page: |
http://wind.winona.edu/~ProfX/CS234/ |
University Studies
This course qualifies as a University Studies course satisfying the outcomes of the Critical Analysis category of the Unity and Diversity area. As such, successful completion of the course requirements will complete the Critical Analysis category of the Unity and Diversity area of the University Studies program.
University Studies Outcomes: Critical Analysis courses in the University Studies program are devoted to teaching critical thinking or analytical problem solving skills. These skills include the ability to identify sound arguments and distinguish them from fallacious ones. The objective of these courses is to develop students abilities to effectively use the process of critical analysis.
These courses must include requirements and learning activities that promote students
abilities to:
A. evaluate the validity and reliability of information;
B. analyze modes of thought, expressive works, arguments, explanations,
or theories;
C. recognize possible inadequacies or biases in the evidence given to
support arguments or conclusions; and
D. advance and support claims.
Learning how to program a computer is very different from merely learning how to
use a computer. Unlike other machines that humans have created, the computer
is a unique machine. It is a logically malleable machine that can be molded (or
programmed) to solve any problem that can be defined with a set of inputs and outputs and
a corresponding set of logical operations to transform the inputs into the outputs.
Solving such problems requires critical analysis skills. Specifically, the
programming process requires the following steps:
1. Understand the problem (i.e., analyze the problem definition).
2. Dissect the problem into manageable pieces.
3. Design a solution.
4. Consider alternatives to this solution and refine it.
5. Implement the solution in a specific programming language and
computing environment.
6. Test the solution.
7. Determine the source of problems found in the solution.
8. Repeat steps 3-7 as necessary.
The entire programming process is an example of outcome A. Steps 1-5 are examples of outcome B. Finally, outcomes C-D are covered in steps 6-7. In this class, you will practice the programming process in two distinct ways. First of all, you will participate in weekly closed labs where new material will be introduced and small projects will be completed in groups that enable you work collaboratively while learning the new material. You will also be given more major programming projects that are expected to be completed individually outside of class. These activities enable you to solidify your understanding of the material that is presented in the lectures and closed labs.
Course Specifics
Topics we will attempt to cover include, but are not limited to, the following:
This list indicates topics to be covered; it does not necessarily reflect the order in which we will cover them.
Grading Distribution:
1. 4-7 Programming Projects (40%)
2. 2-3 Exams (40%)
3. Final exam (20%)
Grading Policy:
The following policy will be in effect for all programs. Programs are due at the
beginning of the class period on the due day. Late programs will be accepted prior
to the beginning of the following class period for a 20% reduction. No programs will
be accepted after that time. Programs that do not compile will receive no credit.
You must complete at least one program in order to pass the class, regardless of
your performance on the exams.
Academic Dishonesty Policy:
Cheating is a deplorable act and it will not be tolerated in CS234 or any other class that
I teach. Anyone who is caught cheating in this class will receive a grade of F for
the class. Note also that if you are caught cheating then you will not be permitted
to withdraw from the class (i.e., the F will go on your permanent transcript).
All programming assignments that are assigned in CS234 are individual assignments. That means that you must do all of the work entirely by yourself. To ensure that you adhere to policy, for each programming assignment you are required to turn in a signed note indicating that you alone were responsible for the work. It is considered cheating to copy any portion of the assignment from anyone else or to knowingly permit someone else to copy your assignment. All exams in CS234 are closed book/closed notes. It is considered cheating to view your notes or to communicate with or copy from a classmate during an exam.
![]()
Sample LabYou may work with a lab partner on this lab assignment. You need turn in only one algorithm design and pseudo code and Java source listing for the group. Use the Loan Calculator from the book as a reference for this lab. Note that you should declare all of data areas and perform all of the computations in the main method. Further note that you should use symbolic constants rather than literal constants. Also be sure to adequately comment your program, including the program title, program description, input, and output.
Joe's Discount Coffee is an international coffee distributor. In order to simplify production, Joe's Discount Coffee has decided to carry only one brand of coffee, a special blend that Joe's great-grandfather's second cousin created 75 years ago. Currently, all orders are handled by Joe's younger sister, Susy, who takes the orders over the telephone and hand writes all of the bills. Unfortunately (for Joe, not Susy), Susy is getting married next month and is moving to Europe. In order to keep his business afloat after his sister departs, Joe has decided he must enter the information age. In order to do that, he will need your help. He would like you to produce a Java application that takes the place of Susy. This application should accept the weight of coffee per bag and the number of bags of coffee desired and then create a "bill" that displays the total price of the sale. The total price of the sale can be calculated by multiplying the "weight per bag of coffee" by the "number of bags of coffee" by the "price per pound" (which is $5.99). You must also include sales tax of 7.25%.
The bill should have the following format (assuming the customer wants 32 5-lbs bags):
Number of bags sold: 32 Weight per bag: 5 lbs Price per pound: $5.99 Sales tax: 7.25% Total price: $ 1027.884 |
Draw the design diagram and pseudo code for this problem. Then write the Java application named AutomatedSusy that uses a MainWindow with an InputBox to input the information from the customer and an OutputBox to output the "bill" to the customer. Turn in your design diagram and pseudo code and a signed printout of the source code of your Java program.
![]()
Sample ProjectFor this individual project, you are to create a Java Applet that creates an identification card like the one given below:
Complete the class named MiniMe that is an extension of the Applet class. Note that "image" a portrait of your face. Be sure to include any features that are unique to you (e.g., glasses, narrow vs. wide face, long vs. short hair, curly vs. straight hair, etc.). I realize that most of you are not artists, but do the best you can.
This program is due at the beginning of class on some date. Absolutely no late programs will be accepted! This like all programming assignments in this class is an individual assignment. As a reminder, cheating will not be tolerated in this class. It is considered cheating to copy any portion of the program from anyone else or to knowingly permit someone else to copy your program. Anyone who is caught cheating in this class will receive a grade of F for the class. Note also that if you are caught cheating then you will not be permitted to withdraw from the class (i.e., the F will go on your permanent transcript). You must do all of the work entirely by yourself. To ensure that you adhere to policy, for each programming assignment you are required to sign it, indicating that you alone were responsible for the work. Unsigned programs will not be graded.
For this program you are to turn in a signed printout of the Java source code (i.e., MiniMe.java),
a printout of the applet as it appears in the Appletviewer, and a floppy containing the MiniMe.java,
MiniMe.class, and MiniMe.html files.