Ultraproducts and non-standard analysis have been a topic of several of my courses in Şirince.
Here is a long text that I created when preparing for my 2014 course. The current version (still rough) is dated January 10, 2018 (305 pages, size A5, 12 point type):
But I did not distribute this text or otherwise use it for the course. For the notes of what I did do in that course, see its webpage.
See also the page of my 2012 course for the notes that I did use for that course.
Earlier in 2012 I wrote out a proof that the quotient of the ring C(ℝ) of continuous functions from ℝ to itself by a maximal ideal is an elementary extension of ℝ as an ordered field. Current version dated January 10, 2018 (20 pages, size A5, 12 point type).
Notes on nonstandard analysis as such are on the page of my 2010 course.