Advanced Python Syllabus
In this college-level course you will learn object-oriented programming in Python, along with selected advanced concepts including ternary operators, anonymous lambda functions, filters, maps, decorators, JSON, XML, concurrency, event-driven programming, basics of working with data, and elements of computing.
What You Will Learn
You will learn object-oriented programming in Python along with selected advanced concepts.
Using NCLab’s powerful editor, you can track the behavior of each line of code, step through and debug your programs, and view both printed and graphic outputs. Advanced Python is “learning by doing”. Like all NCLab courses, each level is self-graded for immediate feedback.
The course follows computer science guidelines developed by the CSForAll consortium.
- You type code from Day 1 (no block coding).
- You learn how to use Python libraries including Matplotlib and Numpy.
- The course has a game-like format and self-paced learning forms the player’s journey.
- All exercises are autograded, and you receive help and advice as needed.
- The course incorporates some math into coding in a rigorous but accessible manner.
- An interactive companion app allows you to create your own projects, save them in their NCLab user account, and share them with others online.
The prerequisite for this course are Python Fundamentals.
Course Structure and Length
This course is self-paced, and you will practice each skill and concept as you go. Automatic feedback is built into the course for both practices and quizzes.
The course is divided into four Units, and each Unit is composed of five Sections. Each Section consists of 7 instructional/practice levels, a quiz, and a master (proficiency) level. You can return to any level or quiz for review.
While learning skills in the Advanced Python course, you can practice writing code, work with libraries and create portfolio artifacts with NCLab’s Python app. Use a project idea from NCLab or create your own.
Advanced Python is designed to take approximately 80-120 hours. Since the course is self-paced, the amount of time required to complete the course will vary from student to student. You are responsible for learning both the tutorial content and the skills acquired through practice.
Unit 1 (Object-Oriented Programming)
In the first Unit, you will gain a detailed understanding of Object-Oriented Programming (OOP) in Python.
- Understand the difference between procedural (imperative) and object-oriented programming.
- Explain the philosophy of OOP, including its pros and cons, and how encapsulation makes software projects easier to manage.
- Create a new class using the keywords class and object.
- Create and understand the purpose of constructors.
- The keyword self must be the first parameter of the constructor and all methods.
- All attributes and methods of a class are accessed through the prefix self.
- Add new methods and new attributes to a class.
- Instantiate a class.
- Create class Line.
- Use the class Line from Section 1 to implement a simplified version of the famous Python interactive Turtle Graphics drawing program.
- Create class Turtle.
- Understand that all Python methods and attributes are public; whereas C++ and Java also have private and protected methods and attributes.
- Understand that a class should always manipulate its attributes using its own methods.
- Derive subclasses and create class hierarchies, understand inheritance.
- Upgrade the Graphics Editor from Unit 2 to an object-oriented design (Part 1).
- Create a base class Shape.
- Teach it universal methods that will apply to all subclasses, such as how to move, scale, rotate, reverse the orientation of its boundary, and merge other shapes into itself.
- In the Shape class, the geometry will be undefined (arrays xarray and yarray will be empty).
- Design a hierarchy of geometrical objects and the corresponding classes:
- All descendants of the class Shape automatically know how to move, scale, rotate etc.
- Only individual geometries are added on the level of the descendants.
- Inspect classes and objects. Finalize the upgrade of the Graphics Editor to an object-oriented design.
- Inspect classes and objects.
- Check if an object is an instance of a given class or its superclass.
- Obtain the class corresponding to a given object.
- Check whether an object has a given attribute or method.
- Check whether a class is a subclass of another class.
- Obtain the class from an instance.
- Obtain the class name from a given instance.
- Use polymorphism to redefine the characteristics of an ancestor class from a derived class.
- Understand multiple inheritance and its drawbacks.
Unit 2 (Advanced Concepts)
In Unit 2 you will learn selected advanced techniques of Python programming.
- Functions with a variable number of parameters (*args and **kwargs).
- Lambda expressions and anonymous functions.
- When anonymous functions should and should not be used.
- Filters and maps, and how lambda functions are used in them.
- Function reduce().
- Conditional statements (ternary operators).
- Concurrency and event-driven programming.
Unit 3 (Working With Data)
Working with data has become a mandatory skill in many areas including business, finance, health, engineering and others. Therefore, here you will learn how to use powerful Python libraries Pandas, Seaborn and Statsmodels to perform elementary operations with data.
- Importing the Pandas, Seaborn and Matplotlib libraries.
- Understanding Pandas DataFrames.
- Entering data into DataFrames.
- Using the regression line to make predictions.
- Reading files from the hard disk or from a URL.
- Obtaining the number of rows and number of columns of a DataFrame.
- Obtaining the list of all column names of a DataFrame.
- Displaying the beginning and the end of a DataFrame.
- Calculating the minimum, maximum, sum and mean of column values.
- Calculating variance and standard deviation.
- Plotting histograms with Pandas.
- Displaying boxplots with Seaborn, and how to interpret them.
- Correlation and the Pearson coefficient (R-value).
- Visualizing correlation graphically via heatmaps.
- Understanding the purpose of using the R-squared value, and its advantages over the R-value.
- Calculating the R-squared value by squaring all values in the correlation matrix.
- Quantifying the results of linear regression analysis.
- Statistical hypothesis testing.
- Multiple linear regression.
- Logistic regression.
Unit 4 (Elements of Computing)
Scientific computing is needed in Data Science, Machine Learning, Artificial Intelligence, and many other areas. Therefore, here you will learn how to use Python to perform selected elementary scientific calculations.
- Solving systems of linear equations.
- Solving differential equations.
- Basics of optimization.
- Finite difference methods.