RAIK 283 Data Structures and Algorithms Dr. Ying Lu ylu@cse.unl.edu Schorr Center 104 472-5793 Aug 28, 2012 http://www.cse.unl.edu/~ylu/raik283
Lecture Data Structures and Algorithms Instructor: Dr. Ying Lu TuTh 1:30-3:20pm Kauffman 112 Instructor: Dr. Ying Lu Office hours: TuTh 12:20-1:20pm and by appointment Office: Schorr Center 104, 472-5793 e-mail: ylu AT cse dot unl dot edu
TAs David Stephens Jordan Degner Office hours: W 8:00-9:00pm and by appointment Office: Kauffman 302 e-mail: davidstephens92 AT gmail dot com Jordan Degner Office hours: M 8:00-9:00pm and by appointment Office: Kauffman 307A e-mail: jdegner0129 AT gmail dot com
Textbook Introduction to the Design and Analysis of Algorithms (3nd Edition), by Anany Levitin, Addison Wesley
Course Theme Data structure An algorithm Programs Better algorithms a way of storing data in a computer so that it can be retrieved efficiently when required An algorithm a set of instructions that, when followed, solve a specific problem Programs implementations of algorithms that are executed by computers Better algorithms huge performance improvement in resultant programs
Course Objectives Study classic data structures and algorithms that solve common problems Learn standard approaches to solving new problems Follow a rigorous approach to analyze and compare algorithms When needed, some discrete mathematics will be covered, since it forms the foundation for rigorous analysis Theoretical importance the core of computer science Practical importance A practitioner’s toolkit of known algorithms Framework for designing and analyzing algorithms for new problems
Broader Objectives Learn critical thinking Learn how to learn (on your own) These objectives will be met through interactive classroom discussions challenging assignments regular quizzes progress assessment test (PAT) final exam
Topics Covered (I) The basics of algorithm analysis Algorithmic techniques Brute Force Divide-and-Conquer (Decrease-and-Conquer, and Transform-and-Conquer) Space and Time Tradeoffs Dynamic Programming Greedy Techniques
Topics Covered (II) Theory of computing Finite state machines Halting problem Tractable and in-tractable problems Complexity classes, like P, NP & NP-Complete Advanced topic: linear programming
Prerequisite: CSCE /RAIK 184H Mastery of data structures including list, stack, queue, tree, and graph Familiarity with recursion Exposure to complexity analysis
Grading Class Participation 6% Assignments 50% Quizzes 24% PAT 2% Final 18%
Letter Grade No incomplete (I) will be given A+ 97 B+ 87 C+ 77 F < 60 A 93 B 83 C 73 D 63 A- 90 B- 80 C- 70 D- 60
Class Participation Attend classes Participate in class discussions Volunteer to solve in-class problems on the white board Do not use laptop, ipad, iphone, or any device that pull your attention away from the class! Check your email regularly, of course outside of the classroom
Assignments Homework will be assigned about every three weeks Totally, 4 assignments Each assignment includes analytical (pen and paper) problems and a programming exercise will be due at the beginning of the class on the given due date
Late Homework Late homework is “OK” but... Only if it’s not too late You’re not late too often All homework submitted after its deadline is considered late Assignments submitted within 24 hours after the original deadline are considered to be “one day late”, within 48 hours, “two days late”, etc.
Late Homework Details A late homework assignment will be accepted without penalty if the total “lateness” of all homework assignments received to date (including the current assignment) does not exceed 3 days The penalty for late assignments is 25% per day they are late Weekends count in evaluating the lateness of an assignment
Quizzes Quizzes, will be given in-class approximately every two weeks (MAY NOT be announced in advance) Format: Problems based on the materials covered in the immediate past
Course Conduct You may work in groups in You may not understanding assignments developing approaches and strategies learning to use programming tools You may not develop joint solutions with other students share code with other students copy anything All assignments, except for the last programming exercise, constitute a team of size one!
Announcement To build our class roster Send our TA David Stephens (davidstephens92 AT gmail dot com) an email with subject “RAIK283 roster”, your photo (<2MB) and your name by this Thursday Class roster example Count toward your class participation
Announcement Next, we will begin to study chapter1 in the textbook Reading List of the Week Chapter 1, Chapter 2.1, Chapter 2.2