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.