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 11 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.  I have used a variety of languages, such as Java, C++, C#, Visual Basic, Intel assembly language, and others. I still do some outside programming.

Welcome to The University of Texas at Dallas

Office hours for Spring 2013
Tuesday and Thursday, 12:00 to 2:00 and by appointment

Office: ECSS 3.203. Phone: 972/883-6353
E-mail me at John.Cole@utdallas.edu  Please use this instead of eLearning for correspondence. 
Students, please include which class you're in.


Date Posted

Announcement

3/20/2013 CodeWarmers: Back by Popular Demand!  Talking with a few of you during the dinner at the LLC today, I have decided to have a short CodeWarmers session this Friday, 3/22.  I'm not sure where just yet, but let's meet in my office (3.203) at 3:00 and by then I'll have a place.  We'll try some of the simpler contest problems to get started.  Bring your computer!
3/14/2013 Slides from C++ workshop, day 1.
2/26/2013 I'll be teaching a free 2-day C++ course during Spring break, March 14-15, and also two summer camps, one in C# and the other in advanced programming Java.  Details are on the K-12 outreach page.
1/23/2013 Announcing Codewarmers!  This is a programming workshop for those who aren't ready for Codeburners, to sharpen your programming skills.  Click the link for details.  First meeting this Sunday at 1:00 PM in the TI Auditorium in ECS South.
11/21/2012 I'll be offering a three-day Java programming intensive for children in grades 6-12 (although anyone is welcome to attend, including parents and teachers) on January 2-4, 2013.  Here's the Registration Link.  As the page says, it's free, but you must register so we know how many people to expect.  Lunch is included.  We also have a FaceBook Page with additional detail, or the Computer Science Department's outreach page.  For further details and a description, click here.
11/15/2012 I gave a talk on User Interface Design for Dr. Jey Veerasamy's Senior Design class on Friday, November 2, 2012 at 4:00 PM, in the TI Auditorium.  You can get the slides here.
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

Interesting Links
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.
How to Avoid a Bonfire of the Humanities (On why your other courses are important, from the WSJ)
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

Courses Fall 2013

CS4347.001 Database Systems on Monday/Wednesday from 10:00 to 11:15 AM in ECSS 2.312
CS6360.001 Database Design on Monday/Wednesday from 11:30 AM to 12:45 PM in ECSS 2.412
CS3354.001 Software Engineering on Monday/Wednesday from 1:00 to 2:15 PM in ECSS 2.312
CS6359.001 Object-Oriented Analysis and Design
on Monday/Wednesday from 4:00 to 5:15 in GR 2.530

Courses Summer 2013

CS6360.5U1 Database Design on Monday/Wednesday from 7:00 to 9:15 PM in ECSN 2.126

Courses Spring 2013

CS1335.001 Computer Science I for non-majors on Tuesday/Thursday from 8:30 to 9:45 AM in ECSS 2.305
CS6359.001 Object-Oriented Analysis and Design on Tuesday/Thursday from 10:00 to 11:15 AM in ECSS 2.201
CS1337.003 Computer Science I on Tuesday/Thursday from 2:30 to 3:45 PM in ECSS 2.412

Courses Fall 2012

ECS1200.003 Engineering Orientation on Tuesday from 10:00 to 11:15 in ECSS 2.412
ECS1200.013 Engineering Orientation on Thursday from 10:00 to 11:15 in ECSS 2.412
CS 4347.001 Database Systems on Monday/Wednesday from 10:00 to 11:15 in ECSS 2.305
CS 3354.001 Software Engineering on Monday/Wednesday from 1:00 to 2:15 in ECSN 2.120
CS 6359.001 Object-Oriented Analysis and Design on Monday/Wednesday from 4:00 to 5:15 in JO 4.614

Previous Courses

Some general notes for anyone taking my classes:

  • Study.  If you can work the problems and answer the questions at the ends of the chapters in the book, you will probably do well on the tests and in the course.  If you can neither answer the questions nor work the problems, you will almost certainly do poorly on the tests.  If you do not know whether you can work the problems or not, I invite you to find out.
  • Please come to class prepared.  This means you have read the material to be covered, you have your textbook with you, and you might have even made a list of questions to ask in class.  If you are prepared, you can ask good questions and it makes the discussion more interesting. Look at the online material for the course, both the references I'll link on the class page and from the text.
  • Computers in Class.  I am inclined to ban computers from the classroom on the basis that much of their use tends not to be course-related, but since some students use them to take notes, follow along with the material, and look things up, for now they are allowed.
  • Do not wait until the last minute to start on your homework or to turn it in.  "My computer was down" is the modern equivalent of "the dog ate my homework," and eLearning has a way of going down at inconvenient times. The best students get an early start on assignments.  That way you can get help if you get stuck. On a similar note, make backups of your work, and computers are always available in the labs.  Policy for most classes is that you lose 20 points per day or fraction thereof late, so that homework more than 5 days late is worth nothing.
  • Pay attention to details such as the way your programs and papers look, spelling, organization, and the like.  The best programs have both good form and good function.  This is also true for papers.  I realize that for some of you, English is not your first language.  However, you must be able to express yourself clearly in in writing.  Our craft is details.
  • Full-time school is the equivalent of a full-time job.  That is, you should be spending at least 40 hours per week on school.  Consider that if you're taking 15 hours, you should be spending about 6 hours outside of class for each 3-hour class.  Some weeks it will be more, some less, but that's a reasonable average.
  • Academic Integrity.  All assignments, unless explicitly stated, are individual.  That is, you are to turn in your own work.  You are not to work in a group, then each of you turn in what the group did.  Nor are you to get code off the Web and hand it in as yours. Clear-cut cases of cheating will be referred to the Dean's office without me talking with you first.  The penalty for such cheating on assignments is, at a minimum, a zero on the assignment.  For UTD's full policy on academic integrity, look here.
  • Grades.  I don't give grades, I assign them according to your work based upon a numerical score for tests and assignments.  Ideally, you would completely master the various aspects of a subject and not move on until you have done so.  This being impractical with more than 4 or 5 students, you earn a grade.  The published scale is generally 90+ is an A, 80-89 is a B, and so on.  I may curve the grades for a course, or not, at my discretion.  A curve measures your performance against others while an absolute scale shows competence in the material overall.  Do not ever request a better grade than someone else who got a higher numerical score.  While I understand that you may lose your internship, your scholarship, or other things you value, your grade is up to you.  Do not be someone who does not read the material before class, or who misses class, then comes by at the end of the semester to request a higher grade on that basis.  There is only one basis on which grades are earned: your work.
  • Office Hours.  I don't consider students who come to my office during office hours an annoying interruption; I always welcome the contact and often enjoy the discussions.  I'll help you, but I won't tutor you.
  • For all classes, I will send e-mail only to your UTD e-mail address, even if you write to me from some other address.  There have been times when I couldn't figure out who the student was because the non-UTD e-mail didn't carry his or her name.  This is also now school policy.  I need to know the e-mail is from you.
  • Questions via E-mail. I will try to answer questions sent to me via e-mail, but if it is something that could be asked during office hours or in class, you may not get a timely answer, if at all.  Answers to questions of this nature should not take up time outside of the normal school hours.  Always check your class Web site before e-mailing, especially if the question is about schedules.  If you e-mail me, indicate in the subject line which class you're in.
  • Programs must be documented. That is, they must contain comments.  Some would argue that programs can be written to be self-documenting, but your instructor respectfully disagrees. What is good program documentation?
Useful Links:
Spring 2013 Academic Calendar

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: March 10, 2013