Discrete Structures (CS 173), Lecture B – Spring 2014 Instructor: Derek Hoiem Co-instructor: Margaret Fleck (Section A) Room: 1320 Digital Computer Laboratory (DCL) Times: 11:00 - 12:15 Tuesday and Thursday Contact: dhoiem [at] uiuc.edu, Siebel 3312 Webpage: http://courses.engr.illinois.edu/cs173/ Piazza: https://piazza.com/class#spring2014/cs173b (University of Illinois, CS 173 [B], pw: athena) Moodle: https://learn.illinois.edu (register for CS 173 BL2/BL3 SP14: Discrete Structures B) This syllabus is meant to provide a quick initial overview. See the course webpage for details and the latest information. Overview Discrete Structures is the foundational course for learning how to computationally solve problems. Solving a problem requires modeling the world, devising an algorithm, and determining the correctness and efficiency of the algorithm. This course serves as a foundation for data structures, algorithms, artificial intelligence, and many applications of computer science. Course Objectives This course teaches how to model the world, strategies for proving or disproving statements, and how to model the behavior of algorithms. By the end of the course, you will be able to represent the world in terms of logic, sets, relations, graphs, and functions and to manipulate those models to infer new relations or quantities. You will get much practice with proving or disproving statements using various strategies such as direct, existential, contrapositive, and inductive proofs. You will master the basics of number theory and be able to characterize an algorithm’s speed as a function of the number of elements and relations in the model. Most importantly, this course will teach you how to think computationally. Prerequisites This course assumes that you have taken an introductory programming class similar to CS 101, CS 125, or ECE 190. ECE 198KL is also fine, but ECE 198JL is not sufficient. We plan to enforce this prerequisite. So if you have taken courses elsewhere or have informal programming experience, you must sort out transfer credit or pass the CS 101 or CS 125 proficiency exam or provide other convincing evidence that you have equivalent background. The university should automatically give you credit for CS 101 if you have a score of 4 or 5 on the CS AP exam. It is possible to use CS 103 to satisfy the programming prerequisite. However, we recommend this route only if you got an A in CS 103. See here for details. General Information Textbook: The official course text is Building Blocks for Theoretical Computer Science by Margaret Fleck, version 1.3. I suggest you buy a hardcopy in the bookstore for $18. You are required to buy a discussion packet ($5) and a duplicate lab notebook (~$15). The lab notebook is used to turn in duplicates of your work/solutions during discussion sections. You can use the notebook made available in the store or another that serves the same purpose. If you want more detail, we have a second optional text: Discrete Mathematics and its Applications, Kenneth H. Rosen, 7th edition, McGraw-Hill, New York, 2011. This is available from the book store or on-line booksellers. The 6th, 5th and international editions are good and less expensive alternatives. It's also on reserve at Grainger library. Sometimes it helps to read explanations of an idea from several different people. Another text is also on reserve: Martin Liebeck, A Concise Introduction to Pure Mathematics. This text is designed for a course with somewhat different topic coverage, but it is very well written. Attendance is expected and is necessary to get the most from the course. You are expected to attend lectures and a discussion section. If you cannot be there, you must arrange to pick up any handouts or returned homeworks you may have missed, e.g. by coming to office hours. Discussion sections are Thursdays 2pm, 3pm, 4pm, 5pm and Fridays 10am, 11am, and 4pm, all at Siebel Center 1111. See TAs and schedule here. Newsgroup: Many announcements, including homework hints, are distributed on the class discussion group. You must read the newsgroup regularly (at least once a day). Only particularly important announcements will be duplicated on the course home page. You are encouraged to use the newsgroup to initiate and participate in discussion related to the class. However, students should not post solutions or hints to homework problems. To sign up, enroll in CS 173 on the Piazza web site. You will need an access code provided on the first page. To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES you may visit 1207 S. Oak St., Champaign, call 333-4603 (V/TDD), or e-mail a message to disability@uiuc.edu. Assignments and Grading Grading is based on homeworks and exams. The final letter grade should reflect practical and theoretical grasp of concepts introduced in class, as demonstrated through regular and final projects and the exam. The thresholds for guaranteed grades are: A 94%; A- 90%; B- 80%; C- 70%; D- 60%. If you score above these thresholds you will receive at least the corresponding letter grade. We reserve the right to assign a higher grade based on a curve or exceptional circumstances. In previous terms, this course has given about 20% A's, 30% B's, 30% C's, 15% D's, and 5% F's. We expect to be at least this generous. As the term progresses, we will try to keep you informed about where we think you stand in terms of letter grade. See here for details on classwork and grading. Exams (65%): There will be two midterm exams and one final exam, held in class, roughly 1/3 and 2/3 of the way through the term. The dates will be indicated on the Lectures page. Details and review materials will be available on the Exams page. The midterms are worth 20% each, and the final is worth 25%. Reading Quizzes (5%): After every lecture (due at 11:59pm the same day), there is a short quiz. The purpose of this quiz is to make sure you are attending lectures and/or reading the book and on track in the course. The quizzes are immediately and automatically graded, and you can resubmit this quiz any number of times without penalty. The lowest two quiz scores will be dropped. Homeworks (30%): There are three types of homeworks. Discussion problems are submitted as duplicates from your lab notebook at the end of each discussion section. Full credit requires demonstrating at least a good attempt at the problem. This is worth 5% of your grade. Minihomeworks are submitted to using Moodle and automatically graded for immediate feedback. These are similar to reading quizzes but may have more challenging problems. You are expected to do these on your own: you may not ask others for answers, but you may discuss concepts. Mini-homeworks are worth 10%. Long-form homeworks may contain more complex problems such as proofs and are worth 15%. For each type, the overall homework grade is the average of the individual homework grade percentages, excluding the lowest-scoring homework of that type. Both mini and long-form homeworks will be due each week on Wednesday, submitted using Moodle. Collaboration and Academic Integrity In this course you are allowed to discuss homework problems with your classmates, and to work together in small groups (e.g. 2-3 people). Read the cheating and collaboration policy for details of what is and is not allowed. In particular, notice that each person in a homework group must write up and turn in their own solutions, in their own words. The goal of homework problems is to understand the material and the goal of working in groups is to help all of you understand the material. If you merely copy someone else's solutions, you will do poorly on the exams, which are worth much more than the homeworks. Violations of academic integrity will be reported to the university and could result in a zero for the assignment, a reduced final grade, or failing the course.