CSC 231 Discrete Structures II
Fall 2015

Course Description

A second course in discrete mathematics that introduces more advanced topics as well covering some of the material introduced in CSC/MTH 231 in more depth. Topics include growth of functions and complexity of algorithms, number theory, recursive definitions and algorithms, proof techniques, program verification, discrete probability; finite state automata, formal grammars and language recognizers. Hands-on labs allow students to appy one or more course topics to build practical working systems. Prerequisites: CSC/MTH 230.

Instructor Accessibility

My office is in Carnegie Hall 311 B. You can stop by in person, or call my office at 630-637-5174. If I am not at the office and you need immediate attention, you can call me at home at 630-759-2110. You can email me at Winter term office hours are Mondays, Wednesdays at 4:30-- 6:00pm, and Tuesdays and Thursdays at 5:00pm -- 6:00 pm.

Course Textbook and Schedule of Topics

The class text is Kenneth H. Rosen, Discrete Mathematics and its Applications, Seventh Edition.

The course topics will be covered in the order shown in the following table. The student should keep track of where we are in the course text and read ahead.

Topic Class Textbook
Review, Program Verification and Algorithm Analysis Chapter 3
Induction and Recursion Chapter 5
Counting Chapter 6
Discrete Probability Chapter 7
Advanced Counting Techniques Chapter 8
Number Theory and Cryptography Chapter 4
Modelling Computation Chapter 13
Graphs Chapter 10
Boolean Algebra Chapter 8
Additional Topics Online resources

Course Grading

There will be a number of homework assignments and programming projects.

In addition to the homeworks, there will be an in-class test in Weeks 3, 5, and 8, and a final examination in week 11. Some of the tests may include a programming portion to be done on the computer. The part of the test done on the computer will be open book and open notes. Distribution of percentage points for the tests are 5%, 15 %, 15%, and 25% for the tests in weeks 3, 5, 8, and 11, respectively. All homework and programming projects will be equally weighted and will alltogether account for 40 % of your grade.

All homework must be typed and submitted electronically by midnight on the day due. I will accept .doc .pdf, .ps, or .dvi files. I recommend that you use LaTeX to write up your homework.

Late homework will not be accepted after I have graded and handed back assignments that belong to the same batch. No programming project will be accepted after the due date of the next programming project. Start working on your homework the same day it is handed out so you have time to get help if you need it.

Policy on Missed Quizzes

In-class tests missed without a legitimate excuse cannot be made up. If you have to miss a test (for some legitimate reason) please let me know at least a week before the test and I will make arrangements for a make up. In the event some unexpected reason beyond your control prevents you from being in class on the day of a test, contact me as soon as possible by phone or email to arrange a make up.

Quality of Written Assignment

All work on homework will be graded for correctness first, and secondly, for clarity and style of presentation. Programming projects will be graded for correctness first, and secondly for programming style and documentation. Make sure your code is readable and neatly formatted. If you use a language with braces, vertically align corresponding braces when those braces go on different lines.

Ethics Statement

All work on the in-class tests must be done without any assistance from anybody, and you may not use cell phones or any electronic devices on the closed book part of the tests. On the online part of the tests (If any), you may use lab computers, or your own laptop if you prefer. You may not email, use a cell phone, or otherwise communicate with anybody else during a test.

You may seek help from the instructor, the class preceptor, other students, and other individuals on homeworks and programming projects. You {\em must} write up your own homework, and you may not help any other student in writing their homework, nor allow anybody to copy your written solution.

You may not copy other people's code, or otherwise submit as your own work code that you do not understand. The goal of seeking help is to get to the place where you can do the work yourself. If you submit any work for grading: you should be prepared to explain it to me. Submission of any work that you do not understand or cannot explain will be considered plagiarism.