Comp 256/L Foundations of Computer Science and Lab Lecture Section Number: 14785 Lab Section Number: 14786 SPRING 2012 Instructor: Office: Email: Web Page: Office Hours: Diane Schwartz 4401 Jacaranda Hall diane.schwartz@csun.edu www.csun.edu/~dls MW 1045 - 1145 COMP 256 Meets: COMP 256L Meets: MW 0800 - 0915 in JD 1600 MW 0930 – 1045 in JD 1600 Course: Study of discrete mathematical structures and proof techniques as used in computer science. Discrete structures such as functions, relations, sets, graphs, and trees. Proof techniques such as proof by induction, proof by contradiction, and proof by cases. Counting techniques. Lab: three hours per week. Prerequisites: Prerequisites: MATH 150A, PHIL 230, COMP 182/L. [Note: Comp 256 and Comp 256L must be taken at the same time] Required Textbook: Discrete Mathematics, Fifth Edition by Kenneth Ross and Charles Wright , Prentice Hall Software for Lab: We will be programming in Java with and jgrasp in the lab. You can download Java 6 from http://java.sun.com/javase/downloads and download jgrasp ( java development environment) from http://www.eng.auburn.edu/grasp . On-line Java Documentation: http://java.sun.com/javase/6/docs/api/index.html Grading Policies: The lecture and lab are integrated courses. You will receive the same grade for both the lecture and the lab. Plus and minus grading will be used. Your grade will be weighted as follows: Lecture Work: Midterm I Midterm II Homework Final Exam 20% 20% 10% 20% Lab Work: Attendance/Participation Lab Programming Projects Quizzes 5% 15% 10% Course Goals ( lecture + laboratory): 1. Demonstrate basic understanding of sets, functions and relations 2. Be able to apply various proof techniques from formal logic 3. Be able to relate ideas of mathematical induction to recursion and recursively defined structures 4. Be able to solve counting problems involving combinations and permutations and apply to algorithm analysis and to basic probability problems. 5. Demonstrate basic understanding of graphs and trees and related algorithms and their application to computer science problems. 6. Demonstrate a basic understanding of Big-Oh notation and its application to algorithm analysis Laboratory Component (Format of the lab varies from week to week) 1. Students will work on homework problems. 2. Quizzes every Monday on lecture material from previous week. 3. Java programming projects to illustrate applications of mathematics to computer science. Lecture Topics: 1. Functions, Sets and Relations ( Chapter 1 from text) 2. Proof Techniques ( Chapter 2) 3. Relations (Chapter 3) 4. Induction and Recursions and Big-Oh Notation(Chapter 4) 5. Basics of Counting with some Probability ( Chap 5) 6. Introduction to Graphs and Trees ( Chapter 6) Comp 256 Tentative Lecture Schedule Weeks 1/23, 1/25 1/30, 2/1 2/6, 2/8 2/13, 2/15 2/20 2/20, 2/22 2/27, 2/29 3/5 , 3/7 3/12, 3/14 3/19, 3/21 3/26, 3/28 3/28 4/3 - 4/6 4/9, 4/11 4/16, 4/18 4/23, 4/25 4/30, 5/2 5/7, 5/9 5/14 Lecture Material Ch 1 Sets and Functions Ch 1 Sets and Functions Ch 2 Proof Techniques Ch 2 Proof Techniques Midterm 1 Ch 3.1 – 3.3 Relations Ch 3.4 Equivalence Relation, Partitions Ch 3.5 Division Algorithm and Int Mod p Ch 4 Induction and Recursion and Big O Ch 4 Induction and Recursion and Big O Ch 4 Induction and Recursion and Big O Midterm 2 Spring Break Ch 5 Counting Techniques Ch 5 Counting Techniques and Probability Ch 5 Counting Techniques Ch 6 Graphs and Trees Ch 6 Graphs and Trees Final Exam ( 8:00 – 10:00 am) JD 1600