You are on page 1of 10

INDIVIDUAL LEARNERS

SCHOOL OF PROGRAMMING AND DEVELOPMENT

Intermediate Python
Nanodegree Program Syllabus
Overview
Python is the future of computer programming. It’s the language that powers machine learning and AI, two technologies that
are on the forefront of digital transformation. Plus, it is an essential backend language for web application development.
Learners who take this class will be prepared to work in a number of different high growth fields that are experiencing
significant demand for talent. This Nanodegree program teaches intermediate-level skills for programming with the Python
language. The training wheels will come off and learners will free analyze data and build the backend of web applications
themselves. They’ll acquire techniques like Python objects, object-oriented programming, debugging, and control flow. This
course is ideal for developers interested in using Python to build more complex algorithms with greater capabilities (i.e.
image resizing, document templates, word counts, name entity recognition on a webpage, etc.) in preparation for a variety of
different roles spanning fields like data science, AI, and software engineering.

Program information

Estimated Time Skill Level

2 months at 10hrs/week* Intermediate

Prerequisites

A well-prepared learner should have the ability to write and run basic programming scripts, read basic Python syntax, and have
familiarity with Python and object-oriented programming.

Required Hardware/Software

Learners need access to the internet and a 64-bit computer.

*The length of this program is an estimation of total hours the average student may take to complete all required
coursework, including lecture and project time. If you spend about 5-10 hours per week working through the program, you
should finish within the time provided. Actual hours may vary.

Intermediate Python 2
Course 1

Advanced Python Topics


Python is a particularly powerful programming language, and the features it provides allow programmers to produce practical
programs. Learn how to enhance Python language abilities by mastering modern subject matter. Framed by fundamentals,
learners will first find a foundation in Python’s methods to describe data. Dig deeper into functions and functional design,
while creating strategies for solving problems. Investigate the ins-and-outs of objects and object-based design, obtaining order
from the interconnected ideas captured within class objects and instance objects. Finally, get the opportunity to fuse Python
with external files, culminating in the creation of complete codebases that can crunch number or protect the planet from peril.

Course Project

Near-Earth Objects
Learners will produce a program that can inspect and query close approaches of near-Earth objects—
moments in the past (or future) at which an asteroid or comet passes quite close to Earth. Read 200 years if
data from CSV and JSON files into Python models and build a database capable of answering questions such
as: When does Halley’s comet pass by Earth and what are the next ten close approaches of big, hazardous
asteroids whose orbit takes them exceptionally close to earth? Finally, save the results back to CSV or JSON
files. By completing this project, learners will demonstrate an ability to represent data in Python, transform
that data, and connect to external data sources.

• Evaluate intrinsic or prescribed characteristics of structured data.

Lesson 1 • Understand Python’s approach to objects, names, and namespaces.

Representing Data • Explore fundamental types, such as booleans, numbers, and text.

• Explore collections, such as lists, tuples, strings, dictionaries, and sets.

Intermediate Python 3
• Trace the details of function execution.

• Create simple function interfaces using advanced arguments types, including


Lesson 2
keyword arguments and variadic arguments.
Functions & Functional • Create functional programs, using map/filter, lambdas, iterators, and
Programming generators.

• Create decorators, high-level tools to transform functional behavior.

• Trace the details of instantiation and attribute resolution on class objects and
instance objects.

• Create classes with custom methods, including initializers and decorated


Lesson 3
properties.
Object-Oriented Programming • Analyze object-based design patterns, including polymorphism (through magic
methods) and inheritance.

• Handle and produce errors (builtin or custom) to process or signal failure.

• Understand the principles of files and file systems, in order to open files for
reading or writing.
Lesson 4
• Create programs that can read data from or write data to a plain text file.
File I/O • Create programs that can read or write JSON data.

• Create programs that can read or write CSV data.

Lesson 5 • Build a database to inspect and query properties of close approaches of


near-Earth objects by reading data into Python, transforming the data, and
Project: Near-Earth Objects saving the results back to a file.

Intermediate Python 4
Course 2

Large Codebases with Libraries


Python can be used to develop very large systems to solve complex problems. Learn how to write, structure, and extend code
to be able to support developing these large systems at scale. Understand how to leverage open source libraries to quickly add
advanced functionality to the code and how to package code into libraries. Apply object-oriented programming to ensure that
the code remains modular, clear, and understandable. Honing these skills is the foundation for building codebases that are
maintainable and efficient as they grow to tens of thousands of lines.

Course Project

Meme Generator
Python is well suited for solving both web and data problems. Learners will build a service that
demonstrates an understanding of both of these domains. First, they’ll import quote data from many
different data types (PDF, DOCX, CSV, TXT). Then, they’ll demonstrate an understanding of the strategy
object design pattern to write clean, modular code to handle these different file types. Then, they’ll resize
images and overlay the quotes onto the resized graphics. Finally, they’ll practice making their service
available for others to use as a command line utility and as a deployable web service.

• Review PEP standards to write clear, compliant code.


Lesson 1
• Practice implementing object-oriented programming in Python.
Foundations
• Understand core Pythonic principles to write code that can scale.

Intermediate Python 5
• Understand how you can write modular code building blocks to reuse
Lesson 2 functional units of code.

Building Modules • Learn advanced object-oriented programming concepts including inheritance


and abstraction.

• 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).
Lesson 3
• Learn how to use virtual environments to maintain clear dependency states
Using Libraries during development.

• Expand on object-oriented design using the advanced strategy object design


pattern.

• Design complex systems of code that communicate across the operating


Lesson 4 system interfaces.

• Understand how you can create command line tools using your Python scripts.
Python in Systems
• Learn how to consume other command line tools within your Python scripts.

• Connect your code to systems that expand beyond a single computer (the
internet).
Lesson 5
• Learn how to download and use data from web services using requests.
Python for Web
• Understand the basics of backend development by making a Python service
available from the web using Flask.

• Build a meme generator that overlays quotes on images by applying advanced


Lesson 6 Pythonic object-oriented principles and using complex libraries to interact with
command line tools to process data and make your service available on the
Project: Meme Generator
web.

Intermediate Python 6
Meet your instructors.

Sam Redmond
Cofounder at Hedron Vision

Sam holds a BS in math and an MS in computer science from Stanford, where he created CS 41:
The Python Programming Language and lectured for four years. Currently, he’s cofounding Hedron
Vision, developing headset-free holographic display technologies.

Gabriel Ruttner
CTO at Ursa

Gabe is the CTO at Ursa and a tech advisor for startups. Gabe has expertise in building
cloud-based machine learning and natural language processing services at early stage tech
companies. He holds technical degrees from Cornell University and Stony Brook University.

Intermediate Python 7
Udacity’s learning
experience

Hands-on Projects Quizzes


Open-ended, experiential projects are designed Auto-graded quizzes strengthen comprehension.
to reflect actual workplace challenges. They aren’t Learners can return to lessons at any time during
just multiple choice questions or step-by-step the course to refresh concepts.
guides, but instead require critical thinking.

Knowledge Custom Study Plans


Find answers to your questions with Knowledge, Create a personalized study plan that fits your
our proprietary wiki. Search questions asked by individual needs. Utilize this plan to keep track of
other students, connect with technical mentors, movement toward your overall goal.
and discover how to solve the challenges that
you encounter.

Workspaces Progress Tracker


See your code in action. Check the output and Take advantage of milestone reminders to stay
quality of your code by running it on interactive on schedule and complete your program.
workspaces that are integrated into the platform.

Intermediate Python 8
Our proven approach for building
job-ready digital skills.
Experienced Project Reviewers

Verify skills mastery.


• Personalized project feedback and critique includes line-by-line code review from
skilled practitioners with an average turnaround time of 1.1 hours.

• Project review cycle creates a feedback loop with multiple opportunities for
improvement—until the concept is mastered.

• Project reviewers leverage industry best practices and provide pro tips.

Technical Mentor Support

24/7 support unblocks learning.


• Learning accelerates as skilled mentors identify areas of achievement and potential
for growth.

• Unlimited access to mentors means help arrives when it’s needed most.

• 2 hr or less average question response time assures that skills development stays on track.

Personal Career Services

Empower job-readiness.
• Access to a Github portfolio review that can give you an edge by highlighting your
strengths, and demonstrating your value to employers.*

• Get help optimizing your LinkedIn and establishing your personal brand so your profile
ranks higher in searches by recruiters and hiring managers.

Mentor Network

Highly vetted for effectiveness.


• Mentors must complete a 5-step hiring process to join Udacity’s selective network.

• After passing an objective and situational assessment, mentors must demonstrate


communication and behavioral fit for a mentorship role.

• Mentors work across more than 30 different industries and often complete a Nanodegree
program themselves.

*Applies to select Nanodegree programs only.

Intermediate Python 9
Learn more at
www.udacity.com/online-learning-for-individuals →

12.29.22 | V1.0

You might also like