1 / 47

CS221

Algorithms and Data Structures. CS221. Who am I?. Dr. Barry Wittman Not Dr. Barry Whitman Education: PhD and MS in Computer Science, Purdue University BS in Computer Science, Morehouse College Hobbies: Reading, writing Enjoying ethnic cuisine DJing Lockpicking. How can you reach me?.

nevan
Télécharger la présentation

CS221

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithms and Data Structures CS221

  2. Who am I? • Dr. Barry Wittman • Not Dr. Barry Whitman • Education: • PhD and MS in Computer Science, Purdue University • BS in Computer Science, Morehouse College • Hobbies: • Reading, writing • Enjoying ethnic cuisine • DJing • Lockpicking

  3. How can you reach me? • E-mail:wittmanb@etown.edu • Office: Esbenshade 284B • Phone: (717) 361-4761 • Office hours: MWF 11:00am – 12:00pm MF3:30 – 4:20pm T 1:00 – 3:00pm And by appointment • Website: http://users.etown.edu/w/wittmanb/

  4. Who are you?

  5. Why are we here? • What’s the purpose of this class? • What do you want to get out of it? • Do you want to be here?

  6. Course Overview

  7. Textbook • Adam Drozdek • Data Structures and Algorithms in Java • 3rd Edition, 2008, Cengage Learning Asia • ISBN-10: 9814239232 • ISBN-13: 978-9814239233

  8. You have to read the book • You are expected to read the material before class • If you're not prepared, you will be asked to leave • You will not be able to lecture about the subject • You will forfeit the opportunity to take quizzes • Much more importantly, you will forfeit the education you have paid around $100 per class meeting to get

  9. Course focuses • Java expertise • Computational complexity • Recursion • Sorting • Graph algorithms • A little concurrency • Data structures • Linked lists • Stacks • Queues • Binary trees • Heaps • Multiway trees • Graphs • Hash tables

  10. Ass load of content • This class is serious business • Big theoretical component • Big coding component • We’ve got to catch up • Competition is stiff • Tough economy • Strong students from India and China

  11. Java features • Tell me about a Java feature that you didn't learn in a lecture

  12. Imagine you're given a puzzle • If you can solve the puzzle, you're given a harder one • Once you start getting puzzles so hard you can't solve it, are you: • Discouraged and ready to give up? • Excited and eager for more?

  13. Fixed vs. growth mindsets • People with fixed mindsets believe that they are unchanging • Either smart or stupid, good at CS or not • People with growth mindsets believe that they can change and improve • People who are excited by puzzles they can't solve have a growth mindset • Guess which mindset leads to greater happiness and success?

  14. Linked lists • Singly linked • Doubly linked • Circular • Pros and cons?

  15. Stacks and queues • Stacks • Queues • Priority queues • Pros and cons?

  16. Trees • Binary search trees • AVL trees • Heaps • Tries • B-trees

  17. Graphs • Model for representing many problems • Traversals • Shortest paths • Spanning trees • Eulerian tours • Hamiltonian tours • NP-completeness

  18. Hashing tables • Hashing functions • Strategies for collisions

  19. Sorting and searching • Linear search • Binary search • Heap sort • Quicksort • Merge sort • Bucket sort

  20. More information • For more information, visit the webpage: http://users.etown.edu/w/wittmanb/cs221 • The webpage will contain: • The most current schedule • Notes available for download • Reminders about projects and exams • Syllabus (you can request a printed copy if you like) • Detailed policies and guidelines • Piazza will allow for discussion and questions about the projects: https://piazza.com/etown/fall2014/cs221

  21. Projects

  22. Four projects • 32% of your grade will be four equally weighted projects • Each will focus on a different major area from the course: • Arrays and memory management • Stacks and queues • Trees • Graphs • You will work on each project in two-person teams

  23. Teams • All projects are done in teams of two • You may pick your partners • But you have to have a different partner for each project! • It is permissible to pick partners from the other section • One member of the team is the leader • The leader must tell me who is on the team before the project is assigned • I will copy assignments from the leader’s class folder (J:\FA2014-2015\CS221A or J:\FA2014-2015\CS221B)

  24. Turning in projects • Projects must be turned in by saving them in your team leader’s class folder (J:\FA2014-2015\CS221A or J:\FA2014-2015\CS221B) before the deadline • Do not put projects in your public directories • Late projects will not be accepted • Exception: Each team will have 3 grace days • You can use these grace days together or separately as extensions for your projects • You must inform me before the deadline that you are going to use grace days • If two people in a team don't have the same number of grace days, the number of days they will have available will be the maximum of those remaining for either teammate

  25. Assignments

  26. Weekly assignments • 15% of your grade will be from assignments, given roughly once every two weeks • 4 of the assignments will be probably be written, and about 3 will be coding • There will be 7 assignments total • Assignments will not be due on weeks when projects are due • Each written assignment typeset in LaTeX is worth 1% extra credit applied to your final grade

  27. Impromptu student lectures

  28. Impromptu lectures • 3% of your grade will be lectures that you give • You will give roughly two of these lectures at any time during the semester, without any warning • You will have 3 to 5 minutes in which you must present the material to be read for that day • Students are encouraged to ask questions • There is no better way to learn material than by teaching it • Polishing public speaking skills is never a bad thing

  29. Quizzes

  30. Pop Quizzes • 5% of your grade will be pop quizzes • These quizzes will be based on material covered in the previous one or two lectures • They will be graded leniently • They are useful for these reasons: • Informing me of your understanding • Feedback to you about your understanding • Easy points for you • Attendance

  31. Exams

  32. Exams • There will be two equally weighted in-class exams totaling 30% of your final grade • Exam 1: 09/26/2014 • Exam 2: 11/03/2014 • The final exam will be worth another 15% of your grade • Final: 7:30 – 10:30am (CS221A) 11:00am – 2:00pm (CS221B) 12/08/2014

  33. Exam format • Conceptual portion • Multiple choice, short answer, and/or matching questions • Programming portion • Short programming problems you will write code for

  34. Course Schedule

  35. Tentative schedule

  36. Project schedule • Project 1: 8% Tentatively due 09/19/2014 • Project 2: 8% Tentatively due 10/10/2014 • Project 3: 8% Tentatively due 11/07/2014 • Project 4: 8% Tentatively due 12/05/2014

  37. Policies

  38. Grading breakdown

  39. Grading scale

  40. Attendance • You are expected to attend class • You are expected to have read the material we are going to cover before class • Missed quizzes cannot be made up • If you miss a day without an excuse, you might get a zero for a lecture you should have given that day • Exams must be made up before the scheduled time, for excused absences

  41. R-E-S-P-E-C-T • I hate having a slide like this • I ask for respect for your classmates and for me • You are smart enough to figure out what that means • A few specific points: • Silence communication devices • Don’t use the computers in class unless specifically told to • No food or drink in the lab

  42. Computer usage • We will be doing a lot of work on the computers together • However, students are always tempted to surf the Internet, etc. • Research shows that it is nearly impossible to do two things at the same time (e.g. use Facebook and listen to a lecture) • For your own good, I will enforce this by taking 1% of your final grade every time I catch you using your computer for anything other than course exercises

  43. Academic dishonesty • Don’t cheat • First offense: • I will give you a zero for the assignment, then lower your final letter grade for the course by one full grade • Second offense: • I will fail you for the course and try to kick you out of Elizabethtown College • Refer to the Student Handbook for the official policy • Ask me if you have questions or concerns • You are not allowed to look at another student's code, except for group members in group projects (and after the project is turned in) • I will use tools that automatically test code for similarity

  44. Disability Elizabethtown College welcomes otherwise qualified students with disabilities to participate in all of its courses, programs, services, and activities. If you have a documented disability and would like to request accommodations in order to access course material, activities, or requirements, please contact the Director of Disability Services, Lynne Davies, by phone (361-1227) or e-mail daviesl@etown.edu. If your documentation meets the college’s documentation guidelines, you will be given a letter from Disability Services for each of your professors. Students experiencing certain documented temporary conditions, such as post-concussive symptoms, may also qualify for temporary academic accommodations and adjustments. As early as possible in the semester, set up an appointment to meet with the instructor to discuss the academic adjustments specified in your accommodations letter as they pertain to my class.

  45. Upcoming

  46. Next time… • I will do a refresher on: • Java • OOP • Interfaces • Exceptions • Please read Chapter 1

  47. Reminders • Read Chapter 1 • Brush up on Java • CS Club meeting on Wednesday! • 6pm right here in E281

More Related