Education

Teaching and learning about math, Maple and MapleSim

This post is written by a mathematics teacher who usually views Maple’s new initiatives from an educational perspective, and I’m well aware that others may see things differently. A single user might be delighted by a new feature that fits their personal workflow. An advanced user might not care if something requires a workaround.

There are also many preferences when it comes to how the interface should look. I often consider whether something will work well for our high school as a whole. We have students who are not very mathematically or scientifically inclined, and others who are. That’s why user-friendliness is essential. Some packages have been developed to make things easier for students. We try to avoid too many workarounds, since these often create problems for them.

Now, on to Maple 2025’s new interface:

When Microsoft introduced tabs and ribbons instead of menus and toolbars in Word many years ago, I personally thought it was a good idea. I can imagine it working well in Maple too — especially if the different elements are placed logically on the tabs, and frequently used functions are easy to access.

However, I just returned from summer vacation, ready for a new school year, only to discover something surprising: the Windows version comes with the new ribbon interface, while the Mac version still has the old one! For any teacher, this is a nightmare scenario: teaching a class where the Windows and Mac interfaces look completely different. Has Maplesoft ended up caught between two chairs here?

I’ve heard that a Mac version with tabs and ribbons is under development. But since it’s not ready yet, we can’t use it. On Windows, I also noticed a strange extra application called “Maple 2025 Screen Readers”. If you open it directly, you get an odd mix of modern 2D notation and old 1D Maple notation, which is simply unacceptable. If you instead click “Screen Reader Mode” in the top-right corner, it looks more normal. But does that mean it’s fully functional? If so, we might be able to combine this with the Mac version that still uses the old interface — and then switch next year to both Windows and Mac with tabs and ribbons. Still, I must say that Maplesoft is providing far too little information on this! Around 75% of our students use Macs, while only 25% use Windows.

Another issue: When saving a Maple file on a Windows computer, you’re forced into Maple’s own “Save As” window. I’ve previously suggested that it should instead open directly in Windows’ native File Explorer, which is far more powerful. In File Explorer, you can quickly use Quick Access shortcuts to save the file in the right folder. In Maple’s “Save As” window, however, it often takes 6–7 extra clicks to reach the desired location. For students who aren’t very tech-savvy, navigating through a deep folder tree can be a real challenge. Why doesn’t Maplesoft just use Windows’ own File Explorer, which students are already familiar with? Most other programs do. Perhaps someone can explain why Maplesoft insists on keeping their own limited “Save As” dialog.

Finally: I do believe that tabs and ribbons can be a good solution, but there’s still work to be done in placing items on appropriate tabs. For example, although I personally use the F5 keyboard shortcut to switch between Text, Non-executable Math, and Math mode, I know many students prefer to click on these options in Maple 2024. In the new interface, it now takes two or three clicks to do so. Since this is a function used very frequently, that’s a drawback. Couldn’t users be allowed to customize the Quick Access toolbar — via the Options menu — so these items can be placed there if needed?

 

 

With the launch of ChatGPT 5.0, many people are testing it out and circulating their results. In our “random” Slack channel, where we share anything interesting that crosses our path, Filipe from IT posted one that stood out. He’d come across a simple math problem, double-checked it himself, and confirmed it was real:

ChatGPT 5.0 Example

As you can see, the AI-generated solution walked through clean, logical-looking steps and somehow concluded:

x = –0.21

I have two engineering degrees, and if I hadn’t known there was an error, I might not have spotted it. If I’d been tired, distracted, or rushing, I would have almost certainly missed it because I would have assumed AI could handle something this simple.

Most of us in the MaplePrimes community already understand that AI needs to be used with care. But our students may not always remember, especially at the start of the school year if they’ve already grown used to relying on AI without question. 

And if we’re honest, trusting without double-checking isn’t new. Before AI, plenty of us took shortcuts: splitting up the work, swapping answers, and just assuming they were right. I remember doing it myself in university, sometimes without even thinking twice. The tools might be different now, but that habit of skipping the “are we sure?” step has been around for a long time.

The difference now is that general-purpose AI tools such as ChatGPT have become the first place we turn for almost anything we do. They respond confidently and are often correct, which can lead us to become complacent. We trust them without question. If students develop the habit of doing this, especially while they are still learning, the stakes can be much higher as they carry those habits into work, research, and other areas of their lives.

The example above is making its rounds on social media because it’s memorable. It’s a basic problem, yet the AI still got it wrong and in a way that’s easy to miss if you’re not paying attention.

Using it in the classroom can be a great way to help students remember that AI’s answers need to be checked. It’s not about discouraging them from using AI, but about reinforcing the habit of verifying results and thinking critically about what they see.

So here’s my suggestion:

  • Show this example in your class, no matter the subject. If your students are using AI, they’ll benefit from seeing it.
  • Spend 10 minutes discussing it.
  • Use it as a jumping-off point to talk about what’s OK and not OK when using AI for your course.
  • Share other examples like this throughout the year as small reminders, so “critical thinking” becomes second nature.

This isn’t just about catching an AI’s bad subtraction. It’s about building a culture of verification and reasoning in our students. The tools will keep improving, but so will the temptation to turn off our own thinking.

If we can help students get into the habit of checking, AI can be a powerful partner without putting them on autopilot.

To the MaplePrimes community: How do you talk to your students to help them build strong habits when working with AI? Do you bring in examples like this one, or use other strategies? I’d love it if you could share your thoughts, tips, and ideas.

 


The Summer Issue of Maple Transactions has been published.  There are articles from a range of interests: research, education, and personal stories.

Have a look, and I hope you find something of value in the issue.

 

We are pleased to announce that the registration for the Maple Conference 2025 is now open!

Like the last few years, this year’s conference will be a free virtual event. Please visit the conference page for more information on how to register.

This year we are offering a number of new sessions, including more product training options, and an Audience Choice session.
Also included in this year's registration is access to an in-depth Maple workshop day presented by Maplesoft's R&D members following the conference.  You can find an overview of the program on the Sessions page. Those who register before September 14th, 2025 will have a chance to vote for the topics they want to learn more about during the Audience Choice session.

We hope to see you there!

Hi,

look at this Maple code.

short_list_prime_factorization_fun.mw

short_list_prime_factorization_fun.pdf

Have a good day

Matthew

Hi,

check out this maple code

positive_odd_integer_factorization_data.pdf

positive_odd_integer_factorization_data.mw

that is all

Regards,

Matthew

Hi,

have some Maple code to share.

prime_triplet_0_4_6.mw

prime_triplet_0_4_6.pdf

Enjoy

Matthew

ps Prime numbers are fun

see https://t5k.org/

 

We are a week away from the submission deadline for the Maple Conference!  
Presentation proposal applications are due July 25, 2025.

We are inviting submissions of presentation proposals on a range of topics related to Maple, including Maple in education, algorithms and software, and applications. We also encourage submission of proposals related to Maple Learn. You can find more information about the themes of the conference and how to submit a presentation proposal at the Call for Participation page.

We hope to see there.

Hi,

Don't laugh.

Some of you are not familair with Wagstaff Prime Numbers

see Wolfram Math World

also, this Maple code is esentially, a loop and the isprime() function

for your edification

b

have a look

just wanted to contribute my two cents to the Maple community

good day

We are excited to announce that the Maple Conference will be held Novemeber 5-7, 2025!

Please join us at this free virtual event as it will be an excellent opportunity to meet other members of the Maple community, get the latest news about our products, and hear from the experts about the challenges and opportunities that our technology brings to teaching, learning, and research. More importantly, it's a chance for you to share the work you've been doing with Maple and Maple Learn. 

The Call for Participation is now open. We are inviting submissions of presentation proposals on a range of topics related to Maple, including Maple in education, algorithms and software, and applications. We also encourage submission of proposals related to Maple Learn. 

You can find more information about the themes of the conference and how to submit a presentation proposal at the Call for Participation page. Applications are due July 25, 2025.

After the conference, all accepted presenters and invited speakers will be invited to submit related content to the Maple Transactions journal for consideration.

Registration for attending the conference will open in July.  Watch for further announcements in the coming weeks.

We hope all of you in the Maple Primes community will join us for this event!

Kaska Kowalska
Contributed Program Co-Chair

 

The link below goes to the Proceedings of the Maple 2024 Conference, which includes several articles that will be of interest to the readers of Maple Primes.

There may be one more paper coming in to the proceedings later as per policy; since most things are ready, away we go!

Proceedings of the Maple 2024 Conferenc

Geometrical entertainment in the form of rolling without slipping, now inside a torus.
You can also print out the corresponding equations - these graphs are # in the text, but it is better to do this separately from the geometric animation, because textplot3d takes up a lot of resources.

Please consider it not as a Maple program, but simply as an idea for a corresponding algorithm.
for_TORUS_IN_TORUS_for.mw
 

Maplesoft’s CEO, Dr. Laurent Bernardin, has written an opinion piece on Fostering Student Retention through Success in Mathematics. In it, he discusses ways to reduce university dropout rates by turning the technology shortcuts students are already using in their math courses into data-driven insights and interventions that promote student success.

You can read the whole article here:  Fostering Student Retention through Success in Mathematics

You will not be shocked to learn that Maplesoft plays a role in the strategy he proposes. 😊 (But this is a serious problem for a lot of schools, and we really would like to help!)

Hello everyone,

I am creating this post to begin a thread where I will share a series of worksheets on important topics in Complex Analysis, written as part of my notes for my classes. Complex_Analysis_Notes.pdf

The planned sections include:

  • Section 1: Infinite Series

  • Section 2: Power Series

  • Section 3: The Radius of Convergence of a Power Series

  • Section 4: The Riemann Zeta Function and the Riemann Hypothesis

  • Section 5: The Prime Number Theorem

Each worksheet will include calculations, plots, and examples using Maple to illustrate key ideas.

I plan to upload one worksheet every week to keep a steady pace and allow time for discussion and feedback between posts.

I hope this thread will be helpful both for learning and for deeper exploration.
Feel free to comment, suggest improvements, or ask questions as I post the materials.

Thank you!

restart; interface(imaginaryunit = 'I'); z := I*(1/3); S_N := proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc; limit(S_N(n), n = infinity); S_N(10); S_N(100); S_N(1000); with(plots); points := [seq([Re(evalf(S_N(n))), Im(evalf(S_N(n)))], n = 0 .. 50)]; pointplot(points, connect = true, symbol = solidcircle, symbolsize = 10, color = blue, labels = ["Re", "Im"])

proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc

 

9/10+(3/10)*I

 

53144/59049+(5905/19683)*I

 

 

restart; interface(imaginaryunit = 'I'); z := I*(1/2); S_N := proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc; limit(S_N(n), n = infinity); S_N(10); S_N(100); S_N(1000); with(plots); points := [seq([Re(evalf(S_N(n))), Im(evalf(S_N(n)))], n = 0 .. 50)]; pointplot(points, connect = true, symbol = solidcircle, symbolsize = 10, color = blue, labels = ["Re", "Im"])

proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc

 

4/5+(2/5)*I

 

819/1024+(205/512)*I

 

 

NULL

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(((1/2)*I)^n, n = 0 .. N) end proc; fullsum := sum(((1/2)*I)^n, n = 0 .. infinity); realpts := [seq([n, Re(S(n))], n = 0 .. 30)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 30)]; limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); horiz_reallimit := plot(4/5, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot(2/5, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); plots[display]([pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Value"], legend = "Real Part"), pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Value"], legend = "Imaginary Part"), horiz_reallimit, horiz_imaglimit], axes = boxed, labels = ["n", "Partial Sum Value"])

4/5+(2/5)*I

 

4/5

 

2/5

 

 

restart; with(plots); interface(imaginaryunit = 'I'); H := proc (N) local n; sum(1/n, n = 1 .. N) end proc; limit(H(n), n = infinity); limit(Re(H(n)), n = infinity); limit(Im(H(n)), n = infinity); harmonic_pts := [seq([n, H(n)], n = 1 .. 100)]; harmonic_plot := pointplot(harmonic_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed)

infinity

 

infinity

 

0

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(I^k/k, k = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(I^k/k, k = 1 .. infinity); Re(S_infinite); Im(S_infinite); horiz_reallimit := plot(-(1/2)*ln(2), k = 0 .. 100, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot((1/4)*Pi, k = 0 .. 100, color = black, linestyle = 2, thickness = 2); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Real Part"); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Imaginary Part"); plots[display]([real_plot, horiz_reallimit, imag_plot, horiz_imaglimit]); plots[pointplot](complex_pts, symbol = solidcircle, style = pointline, color = blue, axes = boxed, labels = ["Re", "Im"])

-(1/2)*ln(2)+((1/4)*I)*Pi

 

-(1/2)*ln(2)

 

(1/4)*Pi

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum((-(2/3)*I)^n, n = 0 .. N) end proc; fullsum := sum((-2*I*(1/3))^n, n = 0 .. infinity); realpts := [seq([n, Re(S(n))], n = 0 .. 30)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 30)]; limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); horiz_reallimit := plot(9/13, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot(-6/13, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); plots[display]([pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Value"], legend = "Real Part"), pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Value"], legend = "Imaginary Part"), horiz_reallimit, horiz_imaglimit], axes = boxed, labels = ["n", "Partial Sum Value"])

9/13-(6/13)*I

 

9/13

 

-6/13

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum((I*Pi)^n, n = 0 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 0 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 0 .. 100)]; limit(S(N), N = infinity); limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum (Real Part)"], title = "Real Part of Partial Sums of (Pi i)^n", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum (Imaginary Part)"], title = "Imaginary Part of Partial Sums of (Pi i)^n", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane (Pi i)^n", axes = boxed)

undefined

 

undefined

 

undefined

 

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(2*I^k/k, k = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(2*I^k/k, k = 1 .. infinity); Re(S_infinite); Im(S_infinite); horiz_reallimit := plot(-ln(2), k = 0 .. 100, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot((1/2)*Pi, k = 0 .. 100, color = black, linestyle = 2, thickness = 2); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Real Part"); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Imaginary Part"); plots[display]([real_plot, horiz_reallimit, imag_plot, horiz_imaglimit]); plots[pointplot](complex_pts, symbol = solidcircle, style = pointline, color = blue, axes = boxed, labels = ["Re", "Im"])

-ln(2)+((1/2)*I)*Pi

 

-ln(2)

 

(1/2)*Pi

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; add(exp(Pi*I*n)/n, n = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(exp(Pi*I*n)/n, n = 1 .. infinity); limit_Re := Re(S_infinite); limit_Im := Im(S_infinite); limit_Re; limit_Im; real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], title = "Real Part of Partial Sums", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], title = "Imaginary Part of Partial Sums", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane", axes = boxed); plots[display]([real_plot, imag_plot]); plots[display](complex_plot)

-ln(2)

 

-ln(2)

 

0

 

-ln(2)

 

0

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; add(exp(2*Pi*I*n), n = 0 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 0 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 0 .. 100)]; S_infinite := sum(exp(2*Pi*I*n), n = 1 .. infinity); limit_Re := Re(S_infinite); limit_Im := Im(S_infinite); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], title = "Real Part of Partial Sums", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], title = "Imaginary Part of Partial Sums", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane", axes = boxed); plots[display]([real_plot, imag_plot]); plots[display](complex_plot)

infinity

 

infinity

 

0

 

 

 
 

``

Download infinite_series.mw

As a university-level math student, I am constantly working through practice problems. An issue I constantly face is that when I get a problem wrong, it can be challenging to find out which line I did wrong. Even if I use Maple Calculator or Maple Learn to get the full steps for a solution, it can be tedious to compare my answer to the steps to see where I went wrong.

 

This is why Check My Work is one of the most popular features in Maple Learn. Check My Work will check all the lines in your solution and give you feedback showing you exactly where you went wrong. I honestly didn’t know that something like this existed until I started here at Maplesoft, and it is now easy to see why this has been one of our most successful features in Maple Learn.

 

Students have been loving it, but the only real complaint is that it’s only available in Maple Learn. So, if you were working on paper, you'd either have to retype your work into Maple Learn or take a picture of your steps using Maple Calculator and then access it in Maple Learn. Something I immediately thought was, if I’m already on my phone to take a picture, I’d much rather be able to stay on my phone.

 

And now you can! Check My Work is now fully available within Maple Calculator!

 

To use Check My Work, all you need to do is take a picture of your solution to a math problem.

 

 

Check My Work will recognize poor handwriting, so there is no need to worry about getting it perfect. After taking the picture, select the Check My Work dropdown in the results screen to see if your solution is correct or where you made a mistake.

 

 

Check My Work will go through your solution line-by-line giving you valuable feedback along the way! Additionally, if you make a mistake, Maple Calculator will point out the line with the error and then proceed with checking the remainder of the solution given this context.  

 

For students, Check My Work is the perfect tool to help you understand and master concepts from class. As a student myself, I’ll for sure be using this feature in my future courses to double-check my work.

 

What makes Check My Work great for learning a technique is that it doesn’t tell you what mistake you made, but rather where the mistake has been made. This is helpful since as a student you don’t have to worry about the time-consuming task of finding the step with an error, but rather you can focus on the learning aspect of actually figuring out what you did wrong.

 

Once you have made corrections to your work on paper, take a new picture and repeat the process. You can also make changes to your solution in-app by clicking the “Check my work in editor” button in the bottom right, which runs Check My Work in the editor where you can modify your solution.

 

No other math tool has a Check My Work feature, and we are very proud to bring this very useful tool to students. By bringing it fully into Maple Calculator, we continue working towards our goal of helping students learn and understand math.

 

View the GIF below for a brief demonstration of how to use Check My Work!

 

 

We hope you enjoy Check My Work in Maple Calculator and let us know what you think!

1 2 3 4 5 6 7 Last Page 1 of 59