CIS 842 Instructor Background and Advice

CIS 842 Instructor Background and Advice

A Brief History of the Instructors' Relationship to the Course

Dr. Dwyer has taught this course several times between 1995 and 1999. Dr. Hatcliff taught the course with Dr. Dwyer in Fall 2000 and alone in Fall 2001. The contents of the course this semester will be similar to that in previous semesters. However, this semester, the structure of the course will be a bit more rigid, there will be less emphasis on the project, and more emphasis on smaller homeworks. In addition, there will be a final exam.

We believe that the most effective way to help you learn about applying model-checking techniques to software is to study a few stable and well-developed tools, ask you actually program some tool components so that you are forced to understand the basic algorithms, data-structures, and computation costs involved, and finally, to apply the techniques you learn about to real code.

We have also included several topics toward the end of the course that match the current research interests of the instructors. There are numerous interesting topics related to model-checking that we are omitting from the course. However, we will try to provide points and web links to resources where you can learn more about these.

No course is perfect. This course changed from the previous semester, and it is likely that it will change when it is taught again. We are always open to your suggestions for the choosing the material to cover, and for improving the presentation of the material.

How to survive in this course

We cover a lot of material in this course, and it is easy to get lost quickly if you do not keep up daily. We try to do several things to help you keep up. We provide the lecture slides, and some supplementary notes that we write ourselves, we post objectives that you should be able to meet at the end of each week, we post weekly non-required self-assessment exercises for you to practice and to help you prepare at at steady pace for the exams.

Besides all this there are a number of things that you should do to make sure that you are getting the most out of the course. BEFORE each lecture, you should read the required reading material, and download the lecture slides. AFTER each lecture, you should review the lecture slides and any notes you have taken. Obviously, you should review the weekly objectives and carry on the self-assessment exercises as completely as possible.

Throughout the course you should do the homework as independently and as completely as possible. If you don't do the homework, you will have difficulty on the quizes and the exams. You MAY NOT work in teams together on the homeworks. Of course, it is fine to give each other small hints. What is a "small hint"? Well, in general, you should not tell another student more information about your solution than you believe we would tell you about the model solution. For example, if you came to us and were having difficulty with a particular problem, we might remind you that we discussed a particular technique in class and refer you to some section of the lecture notes or textbook. We would NOT let you look at the model solution to see how we solved the problem. Please, don't violate this policy. It's not fair to the other students that are working independently, and you will be making things more difficult for yourself. If I believe that you are blatantly violating this policy you will receive no credit for your homework assignment. Finally, remember that this is an 800-level course. Therefore, you may find the material more challenging and your responsibility for keeping up greater than in lower-level courses. If you find that you are having difficulties, don't panic, and don't despair. It is important that you come see me as early as possible so that we can take corrective measures.

How to interact with me

If you have a question about the course material (or any other problem), the methods of interaction (in order of preference) are as follows: I find that on matters of substance, it is always better to talk face to face. Sending email is appropriate in some situations (e.g., notifying me of a typo on homework, telling me that you can't access a file, asking a simple question that only requires a brief response by me). However, it is not the best use of my time if you send me a question by email that will require me to type for 20 minutes but could be answered with a few diagrams on by white-board in less than five minutes. So try to come in person during office hours. I understand that some of you will not be able to come to my office hours because of conflicts with another course. If you have conflict with the office hours, or if you have an urgent question, I can schedule another time for you.

Some other notes for interacting us

Feedback

Feedback during the course is very important --- both for student and for the instructor. The student needs feedback to determine (1) how he/she is doing in the course and (2) how to make performance-improving adjustments. The instructor needs feedback to determine (1) how well the students are understanding the presented material and (2) how the structure, content, and presentation of the course material can be improved.

In this course, students get feedback from the instructor in two ways: (1) through comments on homework and model-solutions for home work, and (2) by personal interaction with the instructor during office hours, etc. The instructor will grade the projects, homework and exams. Since there is no TA for the course, I may find it difficult to provide detailed comments regarding proper solutions on the homework. To make up for this, you will be always be provided with a complete key for each homework. This will give you the model solution for each question.

As noted in the "How to Survive" section, you should come to see me during office hours any time you have problem (sooner rather than later). Of course, I will get feedback on how well you are understanding the material by grading the homework and exams. However, for immediate feedback, I will often call on students to answer questions during lectures. Sometimes people feel threatened by this, but they shouldn't. We do this so that both the instructor and student can determine how well the material is being understood. When I was a student in this course at KSU, the instructor (later my PhD advisor) did the same thing. It always made be nervous, but it was good for me. Our goal is to have a relaxed classroom atmosphere where we carry on a dialogue: students should feel free to ask questions, and I should feel free to ask you questions to see if I am getting my point across.

Finally, instructors get feedback from you on the end-of-the-semester teaching evaluations. The instructors in the KSU CIS department take these evaluations seriously. Besides giving us vital information on how to improve the course, the evaluations are also included in our yearly reviews by the department and considered when we are up for promotion.

The teaching evaluations that include written comments are the most helpful. You should view the written comment section as an opportunity for you to justify your rankings in the preceding sections. If you have given lower rankings, it is most helpful if you explain why and give some suggestions on how to improve the course. If you have given higher rankings and like particular aspects of the course, then should note the things that you like and that you found helpful.

What do we do besides teaching

As opposed to smaller colleges and universities that focus on only undergraduate teaching, most large state universities such as Kansas State University are more research oriented. This means that in addition to teaching, most faculty members in the CIS Department at KSU are expected to divide their time between teaching, research, and service activities (serving on departmental committees, and performing tasks that support the scientific community at large). When a faculty member is hired in this department, generally they are asked to devote fifty percent of their time to teaching, forty percent to research, and ten percent to service.

My major research projects involve developing the theory and constructing tools for verification of concurrent Java software systems. On one of these projects (called the Bandera Project), I work closely with Dr. Dwyer, and to some extent with Dr. Anindya Banerjee. In our research, we collaborate or interact with several other groups: the formal methods group at the NASA Ames lab in California, groups from Stanford and SRI labs, the SLAM group at Microsoft Research, Advanced Technology Center at Rockwell-Collins, and the verification group at the University of Dortmund, Germany. We also work with people at the University of Massachusetts, University of Copenhagen, Denmark, and the University of Nice, France.

Another large project that I work on is the Sa^2VES project funded by the Air Force Research Lab on tools for constructing software for embedded systems. We are working on this project with Dr. Masaaki Mizuno, Dr. Mitch Nielsen, and Dr. Gurdip Singh.

My day-to-day research activities include supervising graduate students as the develop software and write their theses, writing code and experimenting with the software tools that we are developing, writing papers to be published in scientific conferences and journals, and preparing talks about our research to give at various places. My service activies include serving on departmental committees, serving on program committees for various international conferences (this involves reading and writing reviews for papers submitted to conferences), and serving on review panels for funding agencies that award research grants.

Because KSU encourages these research and service activities, it is expected that faculty members will travel during the semester to participate in conferences, engage in research with collaborators, etc. We try our best to make sure that traveling causes as little disruption as possible in our courses.

This semester, I have service several duties that will take a lot of my time. I'm co-chair of the 2003 Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'2003) -- part of the ETAPS 2003 Joint Conference, April 5 - 13, 2003, Warsaw, Poland. This fall, we will be collecting and reviewing around 100 papers for this conference. Also, I'll be away a week in September teaching a module on software model checking at the International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM '02) in Bertinoro, Italy, and I'll be away a week in November giving an invited talk at FMCO in The Netherlands. Finally, I'm on the ACM Conference on Programming Language Design and Implementation (PLDI'2003), program committee and my reviewing responsibilities for this will start in mid-November.


Maintained by John Hatcliff[HOME]