Description
Python is a general-purpose programming language that has applications in web development, data science, machine learning, finance, and other fields. The Intermediate Python Nanodegree programme prepares you to use Python's capabilities to streamline the functionality of applications that perform complex tasks such as file classification, data mining a webpage, and so on. You will have a portfolio that demonstrates your ability to apply practitioner-level Python skills on the job by the end of the programme.
Syllabus:
Course 1: Advanced Python Topics
Representing Data
- Evaluate intrinsic or prescribed characteristics of structured data.
- Understand Python’s approach to objects, names and namespaces.
- Explore fundamental types, such as booleans, numbers and text.
- Explore collections, such as lists, tuples, strings, dictionaries and sets.
Functions and Functional Programming
- Trace the details of function execution.
- Create simple function interfaces using advanced arguments types, including keyword arguments and variadic arguments.
- Create functional programs, using map/filter, lambdas, iterators and generators.
- Create decorators, high-level tools to transform functional behavior.
Object-Oriented Programming
- Trace the details of instantiation and attribute resolution on class objects and instance objects.
- Create classes with custom methods, including initializers and decorated properties.
- Analyze object-based design patterns, including polymorphism (through magic methods) and inheritance.
- Handle and produce errors (builtin or custom) to process or signal failure.
File I/O
- Understand the principles of files and file systems, in order to open files for reading or writing.
- Create programs that can read data from or write data to a plain text file.
- Create programs that can read or write JSON data.
- Create programs that can read or write CSV data. LESSON FIVE Project: Near-Earth Objects
- Build a database to inspect and query properties of close approaches of near-Earth objects by reading data into Python, transforming the data with functional and object-based design principles, and saving the results back to a file.
Project: Near-Earth Objects
Python has the ability to transport you to another world, and this project is no exception! You will create a programme that can inspect and query close approaches of near-Earth objects — instances in the past (or future) when an asteroid (or comet-like object in space) passes very close to Earth. You'll read 200 years of data from CSV and JSON files into Python models, and then create a database that can answer questions like "when does Halley's comet pass by Earth?" and “what are the next ten close approaches of large, dangerous asteroids whose orbits bring them dangerously close to Earth?” ” Finally, save your results as CSV or JSON files. By completing this project, you will be able to demonstrate your ability to represent data in Python, transform that data using function and object-based design principles, and connect to external data sources.
Course 2: Large Codebases with Libraries
Foundations
- Review PEP standards to write clear, compliant code.
- Practice implementing Object Oriented Programming in python.
- Understand core pythonic principles to write code that can scale.
Building Modules
- Understand how you can write modular code building blocks to reuse functional units of code.
- Learn advanced Object Oriented Programming concepts including Inheritance and Abstraction.
Using Libraries
- Install and use open source libraries to solve complex problems.
- Explore the common use cases of open source libraries available on the Python Package Index (PyP).
- Learn how to use Virtual Environments to maintain clear dependency states during development.
- Expand on Object Oriented design using the advanced Strategy Object design pattern.
Python in Systems
- Design complex systems of code that communicate across the operating system interfaces.
- Understand how you can create Command Line tools using your Python scripts.
- Learn how to consume other Command Line tools within your Python scripts.
Python for Web
- Connect your code to systems that expand beyond a single computer (the internet).
- Learn how to download and use data from web services using requests.
- Understand the basics of backend development by making a Python service available from the web using Flask.
Project: Meme Generator
• Build a meme generator that overlays quotes on images by applying advanced Pythonic Object Oriented Principles and using complex libraries to interact with command line tools to process data and make your service available on the web.
Project 2 Meme Generator
Python is well suited to dealing with both web and data problems. You will create a service that demonstrates your knowledge of both of these domains. First, you'll import quote data from a variety of sources (PDF, DOCX, CSV, TXT). Then, you'll use your knowledge of the Strategy Object design pattern to write clean, modular code to handle these various file types. The images will then be resized, and the quotes will be overlaid on top of the resized graphics. Finally, you will practise making your service available to others as a command line utility and a deployable web service.