CS 201 - Spring 2014 (Under Construction)
Data Structures and Discrete Mathematics I
Course description
This course is a blend of theory and practice. You will study some of the
fundamental theoretical topics that are very useful in Computer Science.
These include mathematical induction, set and function theory, run time
analysis, combinatorics, and logic. You will also learn some basic data
structures and algorithms, and do programming assignments to strengthen
your programming skills and to apply theory in practice. For programming,
we will use the C language.
Think and Ask!
If you have problems with any topic, exercise question or assignment,
DO ASK me or TA for help, we are here to make the course undersdood. DO
NOT delay your questions. There is no such thing as a stupid question.
The only obstacle to learning is laziness.
General Information
- Instructor: Bing Liu
- Email: liub@cs.uic.edu
- Tel: (312) 355 1318
- Office: SEO 931
- Course Call Number: 17418
- Lecture times:
- 12:30pm - 01:45pm, Tuesday & Thursday
- 12:00pm - 12:50pm, Friday
- Location: 309 BH
- Office hours: 10:30am-12:00noon, Tuesday and Thursday (or by appointment)
- Teaching Assistant: Alizadeh, Mehrdad
- Email: maliza2@uic.edu
- Office: SEO 938
- Office Hours: 2:00-3:00pm on Wednesday
Midterm
- Time and date: March 6. 12:30-1:45pm (in class)
- It covers everything upto sets (inclusive)
Final Exam
Grading
- Final Exam: 40%
- Projects and assignments: 20%
- Midterm: 20%
- Quizzes: 20%
- In addition, you MUST pass the final to pass the course.
Teaching materials
- Required text 1
- Susanna S. Epp. Discrete Mathematics with Applications. Publication Date: August 4, 2010 | ISBN-10: 0495391328 | ISBN-13: 978-0495391326 | Edition: 4
- Required text 2
- Alfred V. Aho and Jeff Ullman. Foundations of Computer Science. Publication Date: October 15, 1994 | ISBN-10: 0716782847 | ISBN-13: 978-0716782841. You can DOWNLOAD the book from here. It is free!
NOTE: (IMPORTANT!!!)
In order to program and debug easily, you may use some Integrated Development Environment (IDE) tools. For the programming assignments, you must make sure that your code can
be compiled and run in bert without any additional packages.
Also you can develop and debug your code in Windows, but before you submit,
you should make sure that your code can run in "bert" because all
assignments will be graded on "bert".
Topics (under construction subject to change)
- Course information notes
- Propositional logic and predicate logic prop-notes - pred-notes
- Mathematical induction notes
- Recursion notes
- Run time analysis and complexity notes
- Set theory notes
- Relation and function theory notes
- Linked lists, stacks and queues notes
- Hash tables notes
- Trees and graphs notes
Weekly Exercises (not graded, but you still need to hand in on time)
(Submit to blackboard)
- Exercise 1: Logic - deadline: Jan 22, 11:59pm
- Exercise 2: Inductive Proof - deadline: Jan 29, 11:59pm
- Exercise 3:
- Exercise 4:
- Exercise 5:
- Exercise 6:
- Exercise 7:
- Exercise 8:
Programming Projects (graded)
- Project 1: Recursion - deadline: Feb 7, 11:59pm
- Project 2:
- Project 3:
Rules and Policies
- Incompletes: The UIC Undergraduate catalog states that in addition
to needing excellent justification for an incomplete, a student must also
have been "making satisfactory progress in the course." Therefore, no
matter how good your excuse, I will not grant you an incomplete if you
have less than a C average at the time you ask for an incomplete.
- Statute of limitations: No grading questions or complaints, no
matter how justified, will be listened to one week after the item in
question has been returned.
- Cheating: Cheating will not be tolerated. All work you
submitted must be entirely your own. Any suspicious similarities between
students's work (this includes homework, exams and program) will be
recorded and brought to the attention of the Dean. The MINIMUM penalty for
any student found cheating will be to receive a 0 for the item in
question, and dropping your final course grade one letter. The MAXIMUM
penalty will be expulsion from the University.
- MOSS: Sharing code with your classmates is not acceptable!!!
All programs will be screened using the Moss (Measure of Software
Similarity.) system.
- Late assignments: Late assignments will not, in general, be
accepted. They will never be accepted if the student has not made special
arrangements with me at least one day before the assignment is due. If a
late assignment is accepted it is subject to a reduction in score as a
late penalty.
- Classroom Conduct: Classroom discussions and questions are a
valuable part of the learning process and are encouraged. However,
students who repeatedly talk among themselves disrupting the class lecture
will be asked to leave.
Back to Home Page.
By Bing Liu, Nov. 20, 2013.