Some general notes for anyone taking my classes
  • I believe in you.  I believe you are here at UTD because you are capable of doing excellent work.  Please show me that this is true.  Here are some guidelines for success.
  • I'm here to help.  I will guide you in the classroom, give you assignments that will help you learn, and be available outside of the classroom to discuss the subject.  I will prepare carefully for each class.  The rest is up to you.
  • The TAs and graders are also here to help.  So is the Mentor Center, for certain courses such as CS1336, CS1337, CS2305, and CS2336.  Please check their schedule.  Office hours and locations for TAs and graders will be posted on the Web page for your course, linked to my main Web site.   The course syllabus is available on Coursebook.  I generally post these shortly before classes start.
  • If you want to learn, nothing can stop you.  If you don't want to learn, nothing can help you.  Therefore, my role is both teaching you the material, and instilling in you the desire to understand it.  The latter is by far the most important.  I had a long, varied, and fulfilling career designing and writing software before coming to UTD full-time in 2012, and I want you to have the same love of our chosen field that I have.  Especially in upper-division and graduate courses, the assignments take considerable thinking and work.  However, you can do them, and they will help you learn.  Consider that when you get a job as a programmer, you will be given a task and you will be expected to do it.  For example, you might be be told, "Here's a file with a few million records, and 30,000 new ones are added every day.  Give us a program that lets us determine from this pile of data if we're meeting our goals."
  • 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.  Some of these problems will be assigned as homework. Also, eliminate distractions while you're studying, and that includes music. Here's an article that talks about the effects of music on concentration: https://www.edutopia.org/blog/dont-listen-music-while-studying-david-cutler
  • Please come to class prepared.  This means you have read the material to be covered, you have something with which to take notes, 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.
  • Please come to class.  Attendance in most classes is not mandatory; this is college, not high school.  I like to think the lectures are both useful and entertaining, and that you will learn more if you attend them.  There is indeed a good correlation (Pearson's r) between attendance and grades.  There could even be a cause-and-effect relationship.  I take attendance in all classes, and it could be a deciding factor in your grade although it doesn't enter in directly unless explicitly stated in the syllabus.  If you come to me for help and I find that you have missed several classes without good reason, I will still work with you but you probably won't get as much out of it.  Also, be on time for class.  It's disruptive when people come into class after we have started, and I always start exactly on time.  If your bus consistently drops you off 5 minutes late, take an earlier bus.
  • A new CS Department attendance rule as of Fall 2016 is that if you miss three consecutive classes, your final grade will be one letter grade lower than it would have been had you not missed.  If you miss four consecutive classes, this results in an automatic failing grade.
  • Pay attention in class.  I'm surprised that I have to say this to college students, but you must pay attention to whoever is speaking, whether it is the instructor or another student.  This does not preclude taking notes, but it means that you are not to be texting someone, reading a novel, or carrying on a conversation with someone else. 
  • Take Notes.  The act of writing as you hear the material helps fix it in your mind.  You don't have to copy what I say verbatim, but if I mention that something is important or likely to be on a test, you should make a note of that.  I also strongly encourage you to take notes on your reading.  You will notice that your instructor carries a spiral-bound notebook at all times, and uses it.
  • You are responsible for the material.  I understand that you may miss classes for various reasons, but if there is a quiz or an assignment and you have missed some information, read the textbook and/or the slides, or ask your friends.  The schedule for all courses is posted on this Web page.  Each course also has its own Web page with additional information.
  • PowerPoint Slides and the Textbook..  In most classes, I use a combination of PowerPoint slides, programs, and other material.  Unless I explicitly tell you in writing, the slides are not sufficient to pass the course.  You must read the textbook as well, and in particular, do the exercises.  I use the slides to cover talking points, and may or may not make them available, at my discretion.  Do not rely upon them.  I know the textbooks are expensive, but ignorance is far more expensive.
  • Develop Good Communication Skills.  The best idea in the world is worthless unless you can communicate it effectively.  I realize that you may be from a country where English is not the primary language, and I understand, since I would have difficulty in your country.  However, all coursework must be done in good English.  In some courses, a small part of the grade is based on spelling and grammar.  If I don't understand your answer to a test question, it's probably wrong and there is no redress by coming to me and explaining verbally.  If you write a paper and are uncertain of the quality of the English, get help with it.  UTD has a writing center where qualified people can assist you.
  • Learn to Type.  You will be typing programs, design documents, use cases, and so on for your entire professional career as well as your time here at UTD.  In addition, many of the tests I give are online, through eLearning.  Learn this basic skill.  For a very good free online typing tutorial, look at keybr.com.  And practice.
  • 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 unless explicitly stated in the syllabus or on the class Web page.  However, they can be a distraction to people around you, too, which is another reason for banning them.  Put your cell phone away once class starts unless you are programming it or recording the lecture.
  • 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 while eLearning is generally very stable, it 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.  Lab computers have a huge variety of software, so anything you need for any class is almost certainly on them.  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.  One minute late is still late.  No excuses and no exceptions.
  • Pay attention to details such as the way your programs and papers look, spelling, organization, variable names, and the like.  The best programs have both good form and good function.  This is also true for papers.  Our craft is details.
  • Memorization.  I will expect you to remember certain facts relevant to the course material.  Without the raw material stored in declarative memory, it is impossible to work effectively in a subject.  The best way to memorize is not to simply go down a list of terms, but to apply the idea to some project.  For example, do not memorize the list of C++ keywords.  Write programs that use the constructs and you'll not just memorize but understand.  Similarly, knowing that hearing has the fastest response time of the senses can make a difference in the way you design a user interface.
  • 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 as an undergraduate, you should be spending about 6 hours outside of class for each 3-hour class.  For a graduate class it will probably be more.  Some weeks it will be more, some less, but that's a reasonable expectation.
  • Academic Integrity.  All assignments, unless explicitly stated in writing in the assignment, 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, or for a group assignment, use work from another group.  Nor are you to get code off the Web and hand it in as yours, even if you use such code as a "starting point."  Remember, if you found it on Github, so will several other people, so you're caught either way.  It is far better to turn in something you wrote and get a bad grade than cheat and get a good grade.
  • Do your own work.  If you have an issue, talk to me.  For that matter, you are not to use source code from any source, even if you give credit in your program, unless it is explicitly allowed in the assignment or as explained below.  The exception is that use of libraries that are part of the language you're using (JavaFX, the C++ STL, etc.) is always allowed unless explicitly prohibited in the assignment.  So is code from my Programming Tips page, and from slides shown in class unless explicitly disallowed in writing. 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.
  • Tests.  I give many tests in the Testing Center in the Synergy Park North (SPN) building, and most are online using eLearning. This gives you the speed of typing your answers, and better feedback.  The times and locations of tests will always be announced in class and posted to eLearning.  For tests given in the classroom (but not quizzes) read the Exam Rules.   For classroom tests you will need a Scantron card, available in the campus bookstore.  If the test is in the testing center there will be no class that day.
  • Quizzes. I will occasionally give quizzes in eLearning.  These are intended to get you to read the material before the lecture during which the material is covered.  You will have at least 24 hours for these, usually more.  Answers will be shown after the due date, so quizzes may not be taken late nor made up.
  • Test Dates.  You may occasionally have two tests in different courses on the same day.  DO NOT EVER e-mail me asking me to change the exam date of a course without also CCing the professor whose exam conflicts with mine. If you have three exams on the same day, you are entitled to redress.
  • Grades.  I don't give grades, I assign them according to your work based upon a weighted numerical score for tests and assignments.  The formula is in the syllabus for your course.  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 if you do not maintain a certain GPA, your grade is up to you.  Do not be the student who does not read the material before class, or who misses class, or gets a late start on assignments, then comes by at the end of the semester to request a higher grade on the basis of hardship.  There is only one basis on which grades are earned: your work.  I will assign extra work to help raise your grade only under extreme circumstances, such as extended absence due to illness.  I will discuss your exam or project with you, but remember that this can also result in a lower grade.
  • While I'm on the topic of grades, if you have a concern, the time to talk with me about it is after the first midterm, not two or three days after the final exam.  Just because your test scores are above average does not guarantee you an A.  That grade is reserved for excellent work.  I would love it if every student did turn in excellent work, but that almost never happens.
  • Who does what.  Your instructor grades tests and assigns final grades The TA or grader grades assignments unless the instructor specifically says he or she will grade them. Thus if you have an issue with an assignment grade, contact the TA or grader but always copy the instructor. If you have an issue with a test or your midterm or final grade, contact the instructor only. Once a grade has been posted, you have one week to discuss it with the instructor or TA.  After that, no changes will be made.
  • Assignment Deadlines.  In general, you will have a week for small assignments, two weeks for programs, and three or more weeks for major projects.  Occasionally many students may say they need extra time, especially if they have not started on the assignment early enough or have not asked questions about the requirements.  I may or may not grant an extension, but never less than three days before the assignment is due.  Doing so penalizes those who have been conscientious.  I may also, at my discretion, give additional points to those who turn in the assignment by the original deadline, should I extend the deadline. If you are ill and request an extension you must have some documentation, such as a note from the student health service or a doctor.
  • Handing in Assignments.  Virtually all assignments are given in eLearning, and must be handed in that way.  If you are required to submit source code, for example, you should generally provide a Zip file with all code included.  Your name and Net ID must be in all documents you submit.  A link to Github, Google Docs, or other sites does not constitute submission of an assignment, and will result in a zero grade.
  • 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 am also often available outside of posted office hours.  I'll help you, but I won't tutor you.  If you have problems with the material, with the way it is being taught, or with me personally, come and talk with me.  I do not keep regular office hours after the last day of classes but I will announce times during which I will be available and post them on my main Web page.
  • Letters of Reference.  In general, I'll be glad to write you a letter of reference or be a reference for scholarships, jobs, graduate school, etc., provided you did well in my class.  However, please come and talk with me during office hours rather than simply e-mailing your request.  Also, it takes time to write a good letter, and I may not be able to do it on short notice.  Requests that you need filled in less than seven days may not be honored.  I will look carefully at programs you wrote for my classes and those will figure into the recommendation, so make sure you write good, well-commented code.
  • 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, but I answer all e-mail. I may also answer questions you send in the "Announcements" section of your class so everyone can get the benefit, but I won't identify you.  Answers to questions of this nature should not take up time outside of the normal school hours, which is to say that a question about an assignment that shows up in my inbox at 10:00 PM the day the assignment is due is very unlikely to get an immediate answer.  Always check your class Web site before e-mailing, especially if the question is about schedules.  When you e-mail me, please indicate in the subject line which class you're in.
  • Help with Programs via E-mail.  Please do not send me code or unfinished projects and a request for help.  For the 1000- and 2000-level courses there are tutors available in the labs.  For other courses, please come to office hours or make an appointment to talk with me or the TA/grader.  I'll answer, but the answer will be to come and talk with me.  I simply do not have the time to honor all such requests.
  • 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.  I will look at your uncommented code, but you won''t enjoy the experience.  What is good program documentation?