MTH-452-Problem Solving Seminar

Spring 2012
Instructor: Roger Shore Class Schedule:
Office Location: Congdon Hall 150 MWF 1:25-2:30PM CSC-1720
Telephone: 841-9031 MWF 2:40-3:45PM CSC-3360
Office Hours: MWF 9-11:00AM TTh 8:00-9:30AM CSC-2210
TTh 11:30-1:10PM CSC-4210
Others by appointment Th 3:10-4:40PM COM-3881 3/1/12 - 4/19/12
E-Mail: rshore@linus.highpoint.edu Web site: linus.highpoint.edu/~rshore

Course Description:Techniques for attacking and solving challenging mathematics and computer science problems. The focus will be on implementing an algorithm to solve the problem. It will utilizes a programming language with standard features including recursion and the ability to create linked structures (C++/Java Language). Attention to the algorithm that solves the problem in the most efficient way. Also, analysis of algorithms, i.e. an algorithm's behavior pattern will be measured in terms of the computing time and space that are consumed while the algorithm is processing.

Prerequisites:Mth-241/CSC-262

Course Materials:

  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, Second Edition, McGraw-Hill Book Company. (or the current book for CSC-162/262)
  2. Time and patience.
  3. Account on the Linus (A PC running Linux). Linus can be accessed through Internet by using the address linus.highpoint.edu. This is where I develop and test all Java programs currently. The Java in this course will be generic and programs written in this class should work on any machine with any Java compiler.

Course Objectives: After successfully completing this course, you will be able to:

  1. design and evaluate advanced abstract data types and data structures.
  2. analyze and compare the performance of algorithms (Time vs Space).
  3. describe, analyze, and implement algorithm design methods.
  4. apply formal problem solving techniques to write logically correct, efficient, and easily modifiable programs using a procedural programming language.
  5. demonstrate logical thinking, problem solving, and structured programming skills while presenting solved problems to the class.

Programming Assignments: During the semester, at least 20 problems will be distributed. Each student must attempt to solve or solve at least 8 problems. If you do not get a complete solution, then there must be substantial evidence that you have worked on the problem and have a general understanding of how to complete the program solution.

Course Policy:

  1. Attendance: Attendance will be taken during practice sessions. You are expected to be present at every session. If absent from a session, you need to report to me the time and progress you are making on the problem set.
  2. Grades: Your final grade will be determined as follows:

    Component

    4-8 program solutions

    ACM Contest Participation

    Total

    Weight

    50%

    50%

    100%

    Range

    93-100

    90-93

    87-90

    83-87

    80-83

    77-80

    73-77

    70-73

    67-70

    63-67

    60-63

    0-60

    Grade

    A

    A-

    B+

    B

    B-

    C+

    C

    C-

    D+

    D

    D-

    F

    You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.

    8+ Programming assignments - You will receive the following grade for programming assignments based on the number of correctly solved problems (or have substantial work towards a solution).

    Solved

    0

    1

    2

    3

    4

    5

    6

    7

    8

    Grade

    0

    20

    40

    60

    70

    80

    90

    95

    100

Course Topics: