CS 245 - Winona State University

advertisement
WINONA STATE UNIVERSITY
PROPOSAL FOR NEW COURSES
Department ____Computer Science______________________________
Date ____3/28/05_____________
___245________________
Course No.
____Mathematical Foundations of Algorithms__________________
Course Name
This proposal is for a(n)
___X__ Undergraduate Course
____4________
Credits
______ Graduate Course
Applies to:
__X___ Major
__X__ Required
_____ Elective
Prerequisites
_____CS 234 and (Math 140 or Math 160 or permission of instructor)__________________________________
Grading method __X____ Grade only
______ Minor
_____ Required
_____ Elective
______ P/NC only
_____ University Studies*
____ Grade and P/NC Option
Frequency of offering ___Every semester______
*For University Studies Program course approval, the form Proposal for University Studies Courses must also be completed and
submitted according to the instructions on that form.
Provide the following information (attach materials to this proposal):
A.
Course Description
1.
2.
3.
4.
5.
6.
B.
Rationale
1.
2.
3.
C.
Statement of the major focus and objectives of the course.
Specify how this new course contributes to the departmental curriculum.
Indicate any course(s) which may be dropped if this course is approved.
Impact of this Course on other Departments, Programs, Majors, or Minors
1.
2.
D.
Catalog description.
Course outline of the major topics and subtopics (minimum of two-level outline).
Basic instructional plan and methods.
Course requirements (papers, lab work, projects, etc.) and means of evaluation.
Course materials (textbook(s), articles, etc.).
List of references.
Does this course increase or decrease the total credits required by a major or minor of any other department? If so, which
department(s)?
List the departments, if any, which have been consulted about this proposal.
University Studies Course Proposals
The form Proposal for University Studies Course must also be completed and submitted according to the instructions on that
form.
Attach a Financial and Staffing Data Sheet.
Attach an Approval Form.
Department Contact Person for this Proposal:
____Tim Gegg-Harrison______________________
Name (please print)
___(507) 457-5381________
Phone
__tgeggharrison@winona.edu__
e-mail address
A.
Course Description
1.
Catalog description.
245 – Mathematical Foundations of Algorithms – 4 S.H.
The formal study of the mathematical foundations of algorithms. This course provides students with an
algorithm-based introduction to discrete mathematical structures and their application to computer science.
Topics include symbolic logic, set theory, functions, relations, counting methods, proof techniques, induction,
recursive definitions, recurrence relations, and elementary graph theory. Applications include formal
specifications, correctness proofs, and algorithm complexity.
Prerequisites: CS 234 and (MATH 140 or MATH 160 or permission of instructor).
2.
Course outline of the major topics and subtopics (minimum of two-level outline).
1.
2.
3.
Mathematical Foundations
o Algorithms
 Formal specification
 Alternative solutions
 Examples
 Simple example like multiplication
 More complex example like Stable Marriage problem
o Sets
o Relations
 Reflexivity/antireflexivity, symmetry/antisymmetry, and transitivity
 Equivalence relations and partial orders
o Functions
 Injections, surjections, bijections, inverses, and composition
 Floor and ceiling functions
 Congruence
 Logarithms
o Graphs
 Basic definitions
 Directed and undirected graphs
 Paths and circuits
o Trees
 Basic definitions
 Binary trees
 Tree traversal strategies
Specification of Algorithms
o Logic
 Propositional logic
 Predicate logic
o Programming by contract
 Assertions
 Algorithm specification
 Preconditions, postconditions, and class invariants
Correctness of Algorithms
o Proof
 Proof vs. conjecture
 Structure of formal proofs
 Direct proofs
 Mathematical induction
 Strong induction
o Constructing contracts
 Axiomatic semantics
 Weakest preconditions
 Backward partial evaluation
 Assignment axiom
 Sequences
 Conditionals
 Iteration
 Loop invariants
 Constructing loop invariants
 Method invocation
4.
3.
Complexity of Algorithms
o Counting
 Counting arguments
 Permutations and combinations
 Discrete probability
 The pigeonhole principle
 Recursive mathematical definitions
 Recurrence relations
 Fibonacci numbers
 Arithmetic and geometric sequences
 Solving recurrence equations
 Iteration
 Characteristic polynomials
 Master theorem
o Basic algorithmic analysis
 Asymptotic analysis of upper and average complexity bounds
 Identifying differences among best, average, and worst case behaviors
 Asymptotic analysis notation
 Standard complexity classes
 Empirical measurements of performance
 Time and space tradeoffs in algorithms
 Using recurrence relations to analyze recursive algorithms
Basic instructional plan and methods.
This class is lecture-discussion based. Students will be introduced to mathematical concepts through applications
with algorithms and graphs. Mathematical theory will be integrated with computer science applications.
4.
Course requirements (papers, lab work, projects, etc.) and means of evaluation.
The evaluation for this course will be based on exams and homework assignments. The class will include at least
two midterm exams and a final exam. The homework assignments will include both mathematical problem solving
and computer science applications.
Grading Distribution:
1.
2.
3.
10-15 homework assignments (50%)
2-3 exams (30%)
1 final exam (20%)
Class Format:
The material in this course will be presented in an integrated way, with the mathematical theory motivated
and introduced through computer science applications.
5.
Course materials (textbook(s), articles, etc.).
Potential Texts:
Discrete Mathematics, 6th edition, by R. Johnsonbaugh, published by Prentice Hall, 2005.
Discrete Mathematics and its Applications, 5th edition, by K.H. Rosen, published by McGraw Hill, 2003.
6.
List of references.
Task Force on Computing Curricula. Computing Curricula 2001: Computer Science, Final Report, December
2001. Available at http://www.sigcse.org/cc2001/
Discrete Mathematical Structures, 5th edition, by B. Kolman, R.C. Busby, and S.C. Ross, published by Prentice
Hall, 2004.
Mathematical Structures for Computer Science, 5th edition, by J.L. Gersting, published by Freeman, 2003.
Essential Discrete Mathematics for Computer Science, by T. Feil and J. Krone, published by Prentice Hall, 2003.
Discrete Mathematics for Computing, by R. Haggerty, published by Addison Wesley, 2002.
Discrete Structures, Logic, and Computability, 2nd edition, by J.L. Hein, published by Jones and Bartlett, 2002.
Discrete Mathematics for Computer Scientists, by J. Truss, published by Addison Wesley, 1999.
Discrete Mathematics with Applications, 3rd edition, by S. Epp, published by Brooks/Cole, 2004.
Discrete Mathematics with Proof, by E. Gossett, published by Prentice Hall, 2003.
Discrete Mathematics, 5th edition, by K.A. Ross and C.R.B. Wright, published by Prentice Hall, 2003.
Discrete Mathematics, 4th edition, by J.A. Dossey, A.D. Otto, L.E. Spence, and C.V. Eynden, published by Addison
Wesley, 2002.
Mathematics: A Discrete Introduction, by E.R. Scheinerman, published by Brooks/Cole, 2000.
Discrete Mathematics, by S. Washburn, T. Marlowe, and C.T. Ryan, published by Addison Wesley, 1999.
Discrete Mathematics with Graph Theory, 2nd edition, by E.G. Goodaire and M.M. Parmenter, published by
Prentice Hall, 2002.
Discrete and Combinatorial Mathematics, 5th edition, by R.P. Grimaldi, published by Addison Wesley, 2004.
Discrete Mathematics with Combinatorics, 2nd edition, by J.A. Anderson, published by Prentice Hall, 2004.
Discrete Mathematics: Numbers and Beyond, by S. Barnett, published by Addison Wesley, 1998.
B.
Rationale
1.
Statement of the major focus and objectives of the course.
Computer scientists solve problems by defining algorithms. Defining algorithms requires structuring data and
formally specifying processes. Graph theory provides the mathematical foundations for structuring data, while
logic can be used as a formal specification language for defining algorithms. Proof techniques and counting
methods provide the mathematical tools to analyze algorithms. Thus, the primary application that we want to focus
on is algorithms. After introducing foundational material from set theory and graph theory, logic is introduced as a
formal specification language for algorithms. This is followed by the introduction of proof techniques that can be
used to prove various properties of graphs and algorithms, in particular the correctness of algorithms. The final
topic focuses on methods of counting as a foundation for determining the time complexity of algorithms.
2.
Specify how this new course contributes to the departmental curriculum.
CS majors currently take Math 210 and CS 301. Currently, Math 210 services both CS majors and Mathematics
majors. As such, Math 210 is not able to (nor should it) cover all of the discrete mathematics material that CS
students should be exposed to. CS 301 was added to fill this void, but we have found that CS majors learn and
retain the foundational discrete mathematics topics better when it is presented in context. This course merges
concepts from Math 210 and CS 301in an attempt to make discrete mathematics more relevant to CS students.
3.
Indicate any course(s) which may be dropped if this course is approved.
CS 301 will be dropped if this course is approved.
C.
Impact of this Course on other Departments, Programs, Majors, or Minors
1.
Does this course increase or decrease the total credits required by a major or minor of any other department? If so, which
department(s)?
This course is not required by any other major or minor.
2.
List the departments, if any, which have been consulted about this proposal.
Mathematics and Statistics
WINONA STATE UNIVERSITY
FINANCIAL AND STAFFING DATA SHEET
Course or Program_____CS 245_______________________
Include a Financial and Staffing Data Sheet with any proposal for a new course, new program, or revised program.
Please answer the following questions completely. Provide supporting data.
1.
Would this course or program be taught with existing staff or with new or additional staff? If this course would be taught by
adjunct faculty, include a rationale.
Existing staff will cover this new course.
2.
What impact would approval of this course/program have on current course offerings? Please discuss number of sections of
current offerings, dropping of courses, etc.
This course merges material from Math 210 and CS 301 currently being offered and will replace CS 301. The CS
department currently teaches one section of CS 301 each semester. Those sections of CS 301 will be replaced by sections of
CS 245.
3.
What effect would approval of this course/program have on the department supplies? Include data to support expenditures for
staffing, equipment, supplies, instructional resources, etc.
No impact.
WINONA STATE UNIVERSITY
APPROVAL FORM
Routing form for new and revised courses and programs.
Course or Program____CS 245________________________
Department Recommendation
_________________________________
Department Chair
________________
Date
Dean’s Recommendation _____ Approved
_________________________________
Dean of College
A2C2 Recommendation
_____ Disapproved
________________
Date
_____ Approved
_____ Disapproved
_________________________________
Chair of A2C2
________________
Date
Graduate Council Recommendation
(if applicable)
_____ Approved
_________________________________
Chair of Graduate Council
________________
Date
_________________________________
Director of Graduate Studies
________________
Date
Faculty Senate Recommendation
_____ Approved
_________________________________
President of Faculty Senate
_____ Disapproved
_____ Disapproved
________________
Date
Academic Vice President Recommendation _____ Approved
________________________________
Academic Vice President
Decision of President
_____ Approved
_________________________________
President
____________________________________________
e-mail address
_____ Disapproved
________________
Date
_____ Disapproved
________________
Date
Please forward to Registrar.
Registrar
_________________
Date entered
Please notify department chair via e-mail that curricular change has been recorded.
Download