J. William Cupp

J. William Cupp. Instructor
Campbell Hall 126
(205) 934-0650

Research and Teaching Interests: Computer Programming, Programming Languages, Theory of Computation, Professionalization of Computer Science, Software Engineering

Office Hours: By appointment


  • B.S., Florida Southern College, Economics
  • MSSE, Naval Postgraduate School, Electronic Warfare
  • M.S., Nova Southeastern University, Computer Science
  • Ph.D., Nova Southeastern University, Computer Science

Upon completion of my undergraduate degree I joined the US Navy, married my sweetheart, and together we headed out on a life of adventure and world traveling. During my service I observed close up and first hand many systems, both digital and mechanical, and gained an understanding that everything has to work together — if not, it doesn’t really matter how spectacular some of the parts may be. Along the way the Navy decided I needed a master’s degree and sent me to study Electronic Warfare. This was a good thing, because it led to my teaching career.

My final posting in the Navy was to the faculty of the Royal Military College of Canada as an instructor in electronics. There I naturally gravitated towards computers, software development, and computer science. After retiring I took a position at Indiana Wesleyan University, where I wound up teaching for 16 years. The Information Systems program there expanded to include computer science and later software engineering. During this time I came to understand, a lá Dr. Donald Knuth, that I am at heart a computer scientist and that explains my natural draw into the field. As one of a very small number of faculty members in that area, I had a wide exposure to all sorts of topics in the undergraduate curriculum. I followed the development of the ACM/IEEE-CS joint recommendations on curriculum and the growth of topical accreditation by ABET. I also came to understand my strengths and realize the fondness I have for students in their earliest exposure to the field.

My wife and I raised our children from pre-school age through high school graduation in this small Midwest town. With the nest empty the wanderlust returned for both of us. We left Indiana and went to Papua New Guinea for two years, where we taught our subjects at a university there. After that contract concluded we went to México for one year as “foreign visiting professors.” We’ve picked up quite a bit about dealing with students of a variety of cultural backgrounds. Now at UAB we seek to be a bit more accessible to extended family members, immerse ourselves in the teaching, and getting to know our undergraduate students.

I like to know what makes a programming language — what it has to contain, why, and the complexities of how to understand this language as a human, and as a machine. I like to compare various languages to analyze their strengths and weaknesses, and to teach students to do likewise. I like to study the learning of the art of programming and development of the skill of problem solving by students. I thirst to learn and experience other cultures and interact with students from many different walks of life.
  • In México: Data Structures, Discrete Mathematics, and a general introductory programming course to non-majors
  • In Papua New Guinea: Introductory Programming, Data Structures, Object Oriented Programming, Programming Languages, and a smattering of other diverse subjects.