Skip to content


CS 159: Advanced Programming
James Madison University | Spring 2024 | Dr. Mayfield

Screenshot of Eclipse

About the Course

Have you ever wanted to create your own mobile app, interactive website, or video game? This hands-on course will give you a solid foundation for all kinds of programming. Learning to program is very rewarding, both for pursing your interests and for changing the world. Java is one of the most popular languages in industry today, from building enterprise web applications to developing native Android apps.

I encourage you to learn new problem-solving skills, experiment with algorithm design, become familiar with a formal language, and develop new technical skills. Programming can be difficult at times, but what you learn is worth all the effort. I promise to create a collaborative, team-based learning environment that encourages questions, provides significant learning opportunities, and actively involves you. I hope you enjoy the course!

About the Instructor

Chris Mayfield is a Professor of Computer Science at James Madison University. His research focuses on CS education and faculty development at the undergraduate and high school levels. He currently has two NSF-funded projects: one that studies student engagement in CS1 (2216454) and one that supports high school CTE teachers (2219770). He received a Ph.D. in Computer Science from Purdue University and bachelor’s degrees in CS and German from the University of Utah.


Many JMU CS faculty have contributed to this course over the years. Special thanks to my colleagues who have shared activities, labs, homeworks, quizzes, and exams. This semester's materials were co-developed with professors Zhuojun Duan, Chandani Shrestha, Isaac Wang, and Dee Weikle.

Unless otherwise noted, the materials on this website are freely available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.