NANODEGREE PROGRAM SYLLABUS Data Structures &

Transcription

NANODEGREE PROGR AM SYLL ABUSData Structures &AlgorithmsNeed Help? Speak with an Advisor: www.udacity.com/advisor

OverviewIn this course you will learn data structures and algorithms by solving 80 practice problems. You will begineach course by learning to solve defined problems related to a particular data structure and algorithm. Bythe end of each course, you would be able to evaluate and assess different data structures and algorithms forany open-ended problem and implement a solution based on your design choices.Estimated Time:4 Months at10hrs/weekPrerequisites:Python and BasicAlgebraFlexible Learning:Self-paced, soyou can learn onthe schedule thatworks best for youNeed Help?udacity.com/advisorDiscuss this programwith an enrollmentadvisor.Need Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 2

Course 1: Supervised LearningGet an overview of your program. Meet your instructors, and refresh your python skills. Learn theframework to deconstruct any open-ended problem and then understand the concepts of time and spacecomplexity, essential tools for evaluating different data structure & algorithms.Course Project :Unscramble ComputerScience ProblemsDeconstruct a series of open-ended problems into smallercomponents (e.g, inputs, outputs, series of functions).LEARNING OUTCOMESLESSON ONEIntroductionLESSON TWOPython RefresherLESSON THREEHow to Solve ProblemsLESSON FOURBig O NotationNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 3

Course 2: Data StructuresLearn different data structures that can be used to store data. Implement different methods used tomanipulate these data structures and examine the efficiency. Understand the advantages and applicationsof different data structures. Learn how to approach open ended problems (either in interviews or in realworld scenarios) and select appropriate data structures based on requirements.Solve a series of open-ended practice problems such as LRU Cache,Private Blockchain, File Recursion and many more. Hone yourskills to identify and implement appropriate data structures andcorresponding methods which meet given constraints.Course ProjectShow Me the DataStructuresLEARNING OUTCOMESLESSON ONECollection data structures (lists, arrays, linked lists,queues, stack)LESSON TWORecursionLESSON THREETreesLESSON FOURMaps and HashingNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 4

Course 3: Basic AlgorithmsLearn and implement basic algorithms such as searching and sorting on different data structures andexamine the efficiency of these algorithms. Use recursion to implement these algorithms and then learn howsome of these algorithms can be implemented without recursion. Practice selecting and modifying thesealgorithms for a variety of interview problems.Course ProjectProblems vs. AlgorithmsA series of real-world open ended problems such as request routingfor web server, search-term auto-completionand Fibonacci heap which train you to apply suitable data structuresand algorithms under different context.LEARNING OUTCOMESLESSON ONEBinary SearchLESSON TWOSorting AlgorithmsLESSON THREEDivide & Conquer AlgorithmsNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 5

Course 4: Advanced AlgorithmsBuild on your algorithm skills by learning more advanced algorithms such as brute-force greedy algorithms,graph algorithms, and dynamic programming, which optimizes recursion by storing results to sub problems.Course ProjectRoute PlannerIn this project, you will build a route-planning algorithm like the oneused in Google Maps to calculate the shortest path between twopoints on a map. You will first select and implement appropriatedata-structure to represent points on a map and then implement theA* algorithm to find shortest path.LEARNING OUTCOMESLESSON ONEGreedy AlgorithmsLESSON TWOGraph AlgorithmsLESSON THREEDynamic ProgrammingLESSON FOURLinear ProgrammingNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 6

Our Classroom ExperienceREAL-WORLD PROJECTSBuild your skills through industry-relevant projects. Getpersonalized feedback from our network of 900 projectreviewers. Our simple interface makes it easy to submityour projects as often as you need and receive unlimitedfeedback on your work.KNOWLEDGEFind answers to your questions with Knowledge, ourproprietary wiki. Search questions asked by other students,connect with technical mentors, and discover in real-timehow to solve the challenges that you encounter.WORKSPACESSee your code in action. Check the output and quality ofyour code by running them on workspaces that are a partof our classroom.QUIZZESCheck your understanding of concepts learned in theprogram by answering simple and auto-graded quizzes.Easily go back to the lessons to brush up on conceptsanytime you get an answer wrong.CUSTOM STUDY PLANSCreate a custom study plan to suit your personal needsand use this plan to keep track of your progress towardyour goal.PROGRESS TRACKERStay on track to complete your Nanodegree program withuseful milestone reminders.Need Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 7

Learn with the BestBrynn ClaypooleAbe FeinbergI N S T R U C TO RBrynn is a former Udacity employee whoworked as Lead Data Analyst at Udacitybefore joining Facebook as Data Engineer.Currently, she is working as softwareengineer with 10x Genomics.CO N T E N T D E V E LO P E RAbe is a Content Developer at Udacityand previously taught university coursesin psychology and computer science. Heloves both learning and teaching, and hasa particular passion for breaking downdifficult concepts and making them easierto master.Kyle Stewart-FranzCO N T E N T D E V E LO P E RKyle has developed projects for a varietyof Udacity’s Nanodegree programs, suchas Self-Driving Car Engineer, Robotics, andBlockchain. Kyle, a self-taught developer,is always striving towards creating greatlearning experience for students.Need Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 8

All Our Nanodegree Programs Include:EXPERIENCED PROJECT REVIEWERSREVIEWER SERVICES Personalized feedback & line by line code reviews 1600 Reviewers with a 4.85/5 average rating 3 hour average project review turnaround time Unlimited submissions and feedback loops Practical tips and industry best practices Additional suggested resources to improveTECHNICAL MENTOR SUPPORTMENTORSHIP SERVICES Questions answered quickly by our team oftechnical mentors 1000 Mentors with a 4.7/5 average rating Support for all your technical questionsPERSONAL CAREER SERVICESC AREER SUPPORT Resume support Github portfolio review LinkedIn profile optimizationNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 9

Frequently Asked QuestionsPROGR AM OVERVIE WWHY SHOULD I ENROLL?Whether you want to be a web developer, a machine learning engineer, or a datascientist, having a deep understanding of Data Structures and Algorithms isessential to acing job interviews and becoming a successful software engineer.As Linus Torvalds famously said, “Bad programmers worry about the code. Goodprogrammers worry about data structures and their relationships”.The Data Structures and Algorithms Nanodegree program will help you excel atsolving everything from well-defined problems, like how to calculate the efficiencyof a specific algorithm, to more open-ended problems, like building your ownprivate blockchain or writing a web-crawler.You’ll work on over 80 exercises and four real-world projects so that you can getthe hands-on practice required to learn how to implement appropriate solutionsbased on your design choices.WHAT JOBS WILL THIS PROGRAM PREPARE ME FOR?While this course is not designed to prepare you for a specific job, aftercompleting this program, you will have had extensive practice solving datastructures and algorithm problems to help you prepare for the data structuresand algorithms part of coding interviews.HOW DO I KNOW IF THIS PROGRAM IS RIGHT FOR ME?If you are looking to improve your skills in data structures and algorithms -- toprepare for the technical portion of job interviews, to improve your softwareengineering skills, etc. -- then this Nanodegree program will provide you withextensive practice with defined and open-ended problems so that you learn howto implement the appropriate solution based on your design choices.ENROLLMENT AND ADMISSIONDO I NEED TO APPLY? WHAT ARE THE ADMISSION CRITERIA?No. This Nanodegree program accepts all applicants regardless of experience andspecific background.WHAT ARE THE PREREQUISITES FOR ENROLLMENT?To optimize your chances of success in the Data Structures and AlgorithmsNanodegree program, you should have the following knowledge: Intermediate Python programming Basic algebraNeed Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 10

FAQs ContinuedIF I DO NOT MEET THE REQUIREMENTS TO ENROLL, WHAT SHOULD I DO?If you are new to programming, we recommend the Introduction toProgramming Nanodegree program.TUITION AND TERM OF PROGR AMHOW IS THIS NANODEGREE PROGRAM STRUCTURED?The Data Structures and Algorithms Nanodegree program is comprised ofcontent and curriculum to support four (4) projects. We estimate that studentscan complete the program in four (4) months working 10 hours per week.Each project will be reviewed by the Udacity reviewer network. Feedback will beprovided and if you do not pass the project, you will be asked to resubmit theproject until it passes.HOW LONG IS THIS NANODEGREE PROGRAM?Access to this Nanodegree program runs for the length of time specified inthe payment card above. If you do not graduate within that time period, youwill continue learning with month to month payments. See the Terms of Useand FAQs for other policies regarding the terms of access to our Nanodegreeprograms.SOF T WARE AND HARDWAREWHAT SOFTWARE AND VERSIONS WILL I NEED IN THIS PROGRAM? Python 3 A code/text editor, such as vim, Sublime Text, Atom, or VSCode A web browser A command line interface, such as Terminal (on Mac) or Git Bash (onWindows)Hardware Requirements:A modern personal computer running macOS, Windows, or Linux, with a highspeed Internet connection.Need Help? Speak with an Advisor: www.udacity.com/advisorData Structures and Algorithms 11

1000 Mentors with a 4.7/5 average rating Support for all your technical questions PERSONAL CAREER SERVICES CAREER SUPPORT Resume support