John Cole

I'm a senior lecturer here at the University of Texas at Dallas. I had taught at Collin County Community College for three years, and prior to that, at Illinois Institute of Technology in the mid-1970s, which is also where I earned my degrees. Before joining the full-time faculty at UTD in Fall 2012, I had taught part-time for 13 semesters.  I have been a software developer for many years, working on projects as diverse as a SNOBOL4 compiler, a DATABUS compiler, a word processor, the operating system for an early computer, statistical analysis of insurance claims, telecommunications, and embedded programming.  Essentially, I would write anything for which someone would sign a check.  I have used a variety of languages, including Java, C++, C#, Visual Basic, Databus, Intel assembly language, and many others. I still do some outside programming.  Note to graduate students: I am not a researcher nor can I give you an assistantship of any sort.

Welcome to The University of Texas at Dallas

Office Hours for Fall 2017
Monday/Wednesday from 1:00 to 2:00.
Tuesday/Thursday from 3:00 to 4:00
Also by appointment, but please let me know what class you're taking.

Office: ECSS 4.606. Phone: 972/883-6353
E-mail me at [email protected]  Please use this instead of eLearning for correspondence. 
Students, if this concerns a class, please include which class and section you're taking in the subject line.
Locate buildings and rooms with the Campus Map

I'm the faculty sponsor for the student chaper of the ACM at UTD.  Check their Web site for information on events.
I love to tinker with embedded programs, the Raspberry Pi, Arduino, and of course write little Android apps. 
Here are some of my personal projects.


Date Posted

Announcement

8/1/2017 As a teacher, I will be competing for your attention.  Other things competing for that most valuable commodity are your cell phone, your computer, other people in the class, and your own thoughts.  Here is a ted.com video on how the tech companies manipulate you to keep your attention on what they want you to see.  This is particularly useful if you're taking a human-computer interactions or virtual reality course.  Also highly recommended for freshmen.
6/1/2017 The Pong game I wrote for the Android workshop starting in June 2013 has been productized and is available free of charge (and worth every penny of it) on the Google Play Store. Do a search on "John Cole Pong" and you can download it.
8/15/2016 Paul Fishwick's TEDxUTD talk on finding computing in everyday objects.
7/3/2016 My favorite language for most projects is C#, and I will be using it in some of my advanced classes.  Here is a link to Microsoft's tutorial for absolute beginners.
6/10/2016 Computer Science Department attendance policy for graduate courses: If you miss the first three classes, your final grade will be one letter grade lower than it would have been had you attended.  If you miss the first four classes, this is an automatic F grade. 
1/4/2016 Undergraduate Research Expo on February 27, 2016  Show off your undergrad research and win prizes.
6/15/2015 Embedded Systems and Robotics Workshop, PES University, Bangalore, India
5/22/2015 Slides from the Technical Writing Workshop on May 21, 2015.
2/21/2009 Link to "Sixth Sense" wearable computer video from the ted.com site.  In general, there is always interesting stuff on that site.
http://www.youtube.com/watch?v=ZfV4R4x2SK0

Teaching Philosophy

Every course I teach with the exception of CS1200 will involve significant amounts of programming. There is an ancient saying attributed to Confucius that goes like this: "I hear and I forget. I see and I remember. I do and I understand." In my classes, I use a combination of PowerPoint slides, lecture, examples, and in-class exercises so you can both see and hear, and sometimes do, as well. More...

Interesting and Useful Links
You will find assignments and other class material on eLearning, also called Blackboard.
The Computer Science Department main page contains recent events and other information. It's also pretty cool.
UTD International Student Services Organization.  Given the importance of writing in most of my classes, if English is not your first language you will find useful events, such as conversation workshops, writing help, and other help here.  You can get writing help from the Student Success Center's Writing Center.  I cannot stress enough the importance of good writing.
The Computer Science Mentor Center can help you with CS1336, CS1337, and CS2336.  Click here to go to the Center's official page.
Scott Adams on How to Get a Real Education (from The Wall Street Journal)
Computer Science Education article from EE Times (The author, Robert Dewar, was my thesis advisor)
Why Aren't Engineering Students Happier? Because It's Hard.
Video of Dr. Ben Carson's speech at the White House Prayer Breakfast, 2/8/2013  (Great points on education)
Video of Brett Victor talking about Inventing on Principle (about an hour, and worth it.)  3/1/2013
Java Swing Tutorials, straight from the source's mouth.  These are Sun's, and very good. 2/6/2014
Programming Tips, including Android, C++, etc.  There are code samples you can use for some of my classes.
Don't follow your passion.  Become passionate about somthing useful.  Funny and useful PragerU video.
Grader Guidelines

ScanTron form, correctly filled out.  The entire form must be done in number 2 pencil only.  Pen does not scan and you will lose 10 points for any corrections I must make to your form, including using the wrong one, using pen, etc. The "ID" field is a number that will be assigned to you as a "grade" in eLearning.

Notes for anyone taking my classes.  Read This!

Courses Fall 2017

CS6360.004 Database Design on Monday/Wednesday from 8:30 to 9:45 AM in JSOM 11.206
CS6326.001 Human-Computer Interaction on Monday/Wednesday from 11:30 AM to 12:45 PM in GR 3.302
CS1200.011 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 10:00 to 10:50 PM in ECSN 2.110
CS1200.006 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 11:00 to 11:50 AM in ECSN 2.110
CS1200.007 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 1:00 to 1:50 PM in ECSN 2.112
CS1200.015 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 9:00 to 9:50 AM in ECSN 2.112

Courses Spring 2017

CS1337.009 Computer Science I on Monday/Wednesday from 10:00 to 11:15 AM in RH West 2.401
CS6326.001 Human-Computer Interactions  on Tuesday/Thursday from 8:30 to 9:45 AM in ECSS 2.311
CS4V95.012 Undergraduate Topics in CS: Fundamentals of Mobile Application Development on Tuesday/Thursday from 11:30 to 12:45 in RH West 2.401
CS1337.004 Computer Science I on Tuesday/Thursday from 2:30 to 3:45 PM in ECSS 2.312

Courses Fall 2016

CS6360.004 Database Design on Monday/Wednesday from 8:30 to 9:45 AM in ECSS 2.306
CS6326.001 Human-Computer Interaction on Monday/Wednesday from 11:30 AM to 12:45 PM in ECSS 2.410
CS1200.015 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 9:00 to 9:50 AM in RH West 3.100
CS1200.006 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 11:00 to 11:50 AM in RH West 3.100
CS1200.011 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 10:00 to 10:50 PM in RH West 3.100
CS1200.007 Introduction to Computer Science and Software Engineering on Tuesday/Thursday from 1:00 to 1:50 PM in RH West 3.100

Courses Spring 2016

CS1337.009 Computer Science I on Monday/Wednesday from 10:00 to 11:15 AM in MC 2.410
CS6326.001 Human-Computer Interactions  on Tuesday/Thursday from 8:30 to 9:45 AM in ECSN 2.126 (This was CS6301.001 Special topics: User Interface Design for Mobile Devices)
CS4V95.015 Undergraduate Topics in CS: Fundamentals of Mobile Application Development on Tuesday/Thursday from 10:00 to 11:15AM in CB2 1.202
CS1337.004 Computer Science I
on Tuesday/Thursday from 2:30 to 3:45 PM in ECSS 2.312

Courses Fall 2015

CS6301.005 Special topics: User Interface Design and Mobile Application Development on Monday/Wednesday from 8:30 to 9:45 AM in JSOM 1.110
CS6301.006 Special topics: User Interface Design and Mobile Application Development on Monday/Wednesday from 11:30 AM to 12:45 PM in ECSS 2.203
CS1200.011 Introduction to Computer Science and Software Engineering from 10:00 to 10:50 AM Tuesday/Thursday in RH West 3.100
CS1200.006 Introduction to Computer Science and Software Engineering from 11:00 to 11:50 AM Tuesday/Thursday in RH West 3.100
CS1200.007 Introduction to Computer Science and Software Engineering from 1:00 to 1:50 PM Tuesday/Thursday in RH West 3.100
CS1200.008 Introduction to Computer Science and Software Engineering from 2:30 to 3:20 PM Tuesday/Thursday in RH West 3.100

Courses Spring 2015

CS6301.001 Special topics: User Interface Design for Mobile Devices on Monday/Wednesday from 8:30 to 9:45 AM in ECSN 2.110
CS1337.004 Computer Science I on Tuesday/Thursday from 2:30 to 3:45 PM in ECSS 2.312
CS4V95.015 Undergraduate Topics in CS: Fundamentals of Mobile Application Development on Tuesday/Thursday from 10:00 to 11:15 in ECSS 2.312

Previous Courses

Suggested Reading.  A few of you have asked for this list so you don't have to write things down when I reference them in class.

Last revised: July 28, 2017