220 likes | 239 Views
Lecture 01a: Overview of the course. CS1050: Understanding and Constructing Proofs. Spring 2006. Jarek Rossignac. http://www.gvu.gatech.edu/~jarek/courses/1050/. Course Objectives. LEARN Logic, Boolean Algebra, Applications to Graphics Proofs, Strategies, Details, Practice, Puzzles
E N D
Lecture 01a: Overview of the course CS1050: Understanding and Constructing Proofs Spring 2006 Jarek Rossignac http://www.gvu.gatech.edu/~jarek/courses/1050/
Course Objectives LEARN • Logic, Boolean Algebra, Applications to Graphics • Proofs, Strategies, Details, Practice, Puzzles • Algorithms, Computational Geometry, Complexity SHARPEN SKILLS • Creativity, Problem Solving, Research • Programming, Recursion, OO, Graphics, Multimedia • Teamwork, Communication
Motivation • Computers are good at logic, you should be too • To program, you need to translate your solutions into logic • Many applications are based on what the course covers • Graphics, compression, networking, security, hardware, databases, search engines, AI…. • You must be able to prove the correctness of your solution or your claim on its computational cost to prevent a crash • When the problem occurs, it may be too late for debugging • Prevent bugs by using logic, proofs and complexity analysis • The concepts and terminology covered in class will help you to read papers and to take more advanced classes • They are part of the mandatory culture for a CS major • This is great brain aerobics and problem-solving practice
Example • p(n)=n2+n+41, nN p(n) is prime (Euler 1772) • N = {natural numbers, 0,1,2,3….} • Prime: integer >1 and only divisible by itself and 1 (only 2 factors) • Positive integer = product of primes (increasing order: canonical) • It works • p(0)=41, p(1)=34, p(2)=47. P(3)=53…p(39)=1601 are all prime! • Does it? (Proof of contrary by counterexample) • p(40)=402+40+41= 402+240+1=(40+1)2 =1681 is not prime • Find primes using Eratosthenes’ Sieve • Start at 2. Cross out multiples of each prime encountered (not crossed) • Largest prime found so far has 7816230 digits • It is a Mersenne prime 2n–1
SUPPORT MATERIAL Mandatory Textbook • Discrete Mathematics and Its Applications (Hardcover) by Kenneth H Rosen (5th edition), ISBN D-070242434-6 • Student Solutions Guide for Discrete Mathematics and Its Applications by Kenneth H Rosen (5th edition) REQUIRED ADDITIONAL READINGS • Will be posted on the web page or listed on slides Other resources • The book of Numbers, John Conway and Richard Guy, ISBN 0-387-97993X • Will be posted on slides or on web page
Syllabus • Boolean, Quantifiers • Proofs • Sets, Functions • Sorting, Complexity • Integers, Matrices • Proof strategies, Sequences, Induction • Counting, Permutations • Computational Geometry • Boolean Algebra, Active Zones, Blist, CSG Rendering • Graphs, Connectivity, Trees • Triangle Meshes, Compression
BEFORE EACH CLASS - Study the assigned sections of the text book - Try to do the exercises and note questions/doubts you may have - Print the slides for the upcoming class, study them, note questions you may have - Read additional material (when assigned) and write down questions - Read carefully the descriptions of future projects and write down questions you may have - Make sure that you bringto class: the slides, your solutions to the exercises, all your questions - During the quiz of that class, you will be asked a simple question testing whether you have read the assigned material
DURING EACH CLASS - Attend the lecture (mandatory) and pay attention - Ask your questions about slides, exercises, projects - Write down the answers and explanations - Take detailed notes of lecture, answers to questions, solutions to in-class projects (including mistakes) - Make sure that you understand all that is covered (If not, ask for clarifications right away) - Participate actively in (team) exercises - Raise your hand when you know the answer to a question asked by the instructor or think that you may have a plausible answer (mistakes are welcome)
AFTER EACH CLASS • Redo the assigned exercises you had trouble with • Learn how to solve these exercises by heart • You will be asked to solve 1 or 2 of them in the quiz at the beginning of the next lecture • Start working on the next project right away … • Prepare for the next lecture as suggested in the slide “BEFORE CLASS”
Practice exercises Will be listed at the end of slides for each class. You must • Do exercises before the class for which they are assigned • Bring your solutions to class • Ask questions (if any) about them in class • After class, learn by heart how to solve them and make sure that you know how to solve similar exercises • You will have a quiz on them on the class that follows the one where they are discussed Between classes you work on 2 sets of exercises • Learn how to solve old ones for the quiz • Do new ones to discuss them on the next lecture
Software Projects • About 1 per week • Very easy… and fun (sometimes) • Code in Processing (Java variant) • Deliverables via a Personal Project Page (PPP) • Password protected (to be discussed later) • Name, Email, a Photo of you • Links to projects • For each project, include: • Link to web page with Java applet from your PPP • Link to commented source code • Comment all variables, functions, methods, non-trivial instructions • Include in header of source code • Class • Project number and title • Your name • Date completed • Any sources used (URLs, names of people who helped, books, papers) • Short write up (when requested)
Grades • 25% Final • 25% Midterms (10% Midterm 1, 15% Midterm 2) • 25% Quizzes • 25% Software projects
ACADEMIC INTEGRITY Plagiarizing is “to steal and pass off (the ideas or words of another) as one's own : use (another's production) without crediting the source” [Webster]. If caught plagiarizing, you will be dealt with according to the GT Academic Honor Code. Unless specifically identified as group work; quizzes, tests, take-home-tests, homework, etc. are to be completed alone. If you find that the solution to a homework or to a problem that you must solve in a project is published in a book, article, webpage, etc., you may use it as an inspiration, provided that you clearly identify the source (providing a complete URL or bib reference) and that you rewritee it in your own words, providing detailed explanations showing that you understand the overall approach and the details of every step. In fact, you are encouraged to improve on that solution and to briefly document your improvement. When working on a software project, you ("you" standing for a single student for individual projects or for the team for team projects) may use utilities and libraries developed by others for all the non-essential parts of your program, provided that you clearly identify their source in the header of your program. Examples of such utilities include graphics libraries, matrix multiplication, and linear solvers. The essential parts of the program (which relate to the material taught in class) must be entirely coded by you and must include clear comments. If you find source code or high level algorithmic descriptions that implement the desired functions, you may use them as inspiration, provided that you clearly identify the source of inspiration both in your source file and on the project report and that you rewrite and comment the code in your own style, to clearly demonstrate that you understand its structure and details. Finally, I encourage you to discuss the projects with other students in the class and to freely share ideas and resources. You may also ask colleagues or the TA to help fix a bug in your code. But you may not use or copy their code.
Other Info • Class web page maintained by instructor http://www.gvu.gatech.edu/~jarek/courses/1050 • Instructor’s Office Hours • Tuesdays 11-12 in CCB • Teaching Assistant • Name: Keshev Attrey • Email: attrey@cc.gatech.edu
Mini quiz of prior expertise • Take a sheet of paper and write your name on it • Please write legibly • I will collect your answers to better understand what you already know • This will not impact your grade
A C B Write your answers clearly Translate into English xZ !yZ x+y=0 Is (p q) (¬p ¬q) true? What is A(BC)? What does this program do? int [] A = new int[1000]; for (int i=0; i<1000; i++) {A[i]=int(random(10000));}; int maxVal = 0; for (int i = 1; i<1000; i++) {if (A[i]>maxVal) {maxVal=A[i];};}; print(maxVal); Pass sheet forward
Translate into English xZ !yZ x+y=0 Each integer has a unique oppisite
Is it true? (p q) (¬p ¬q) no. p = “It rains” q = “I am wet” “When it rains, I am wet” is not equivalent to “When it does not rains, I am not wet” for example I cold be in the pool.
What is A(BC)? A C B
What does this program do? int [] A = new int[1000]; for (int i=0; i<1000; i++) {A[i]=int(random(10000));}; int maxVal = 0; for (int i = 1; i<1000; i++) {if (A[i]>maxVal) {maxVal=A[i];};}; print(maxVal); makes an array of random integers and computes their maximum
Study groups • Take your books and bag and go to the front of the class • Sort yourselves by birthday (month/day) • If you are a group of 3 friends who want to be a study group, go and sit together • If you are a group of 2 friends who want to be in the same study group, invite the first single person of the line into your group and sit together • The rest will be grouped by 3 in line order
In class teamwork • Combine lectures with team problem-solving sessions • Sit with your team (study groups) • Introduce yourselves • Exchange your names, coordinates (email, phone) • Lock a time when you can meet • You should help each other for Project P0 • You should help each other assimilate the material and learn how to solve the exercises • In-class team exercise (10 mns) • On a blank sheet, write your first and last names • Write the formula for solving a second degree equation (be precise) • Write a proof • Raise your hands when done • Pass the sheets forward