Sunday, October 25, 2009

Me and IMETI 2009

I've discovered that IMETI 2009 coordinators have listed me as one of the reviewers of their multi-conference. Hereby I refuse any relations with this conference. I just remember that I had been invited to be a reviewer but I did not receive no articles for review.

Monday, August 24, 2009

Book Review: Introduction to Programming and Object Oriented Design Using Java

"Suppose that two functions foo and bar are required to view and update an integer variable, say x. The simple implementation is to define x as a global variable in the program body. However this method will also allow other functions in the scope to view and alter x which is not desired in many cases. Object orientation focuses on the data and their related operations. Encapsulation is the first feature of object oriented method that restricts altering and/or viewing x to some limited set of known functions ."

This is the summary of the material that I present in elementary programming courses to prepare the minds for new concepts in object oriented style. Today, computer science students begin their long way in software production by structured analysis, design, and programming. After the so-called spaghetti style, structured programing methodology was a great step forward in simplifying software design and maintenance. No CS instructor begins the introduction to programming with assembly language; Because there is no need to do so and structured thinking is more easily taught through function based concepts.

With the introduction of object oriented methodology, there is no students to learn structured methods and then smoothly migrate to object oriented methods. In fact the first step can be easily removed; as in the book I'm going to introduce and review in this post.
Object-Oriented Design Using Java, 3rd Edition

Introduction to Programming and Object-Oriented Design Using Java, 3rd Edition, says the elementary words of programming in object oriented language. Classes and objects are introduced in first chapter. The rest 21 chapters of the books cover various concepts and aspects of object oriented methodology using the inline examples and code snippets in Java, one of the finest programming languages.
Each chapter ends with self-study questions and plenty of exercises which make the book self contained and appropriate for self study purposes.

The book focuses on practical aspects of software design. Common data structures and algorithms, visual modeling and user interfaces are thoroughly discussed.

In short, I can mention the book as giving emphasis to three main features:
  • Object oriented methodology in software design and production
  • Easy to study and learn
  • Covering all aspects of practical software production from designing algorithms to designing user interfaces
The book ends with appendices containing tips and tricks of programming, listings of some classes used in the text, and a glossary.
As an instructor of basic courses in computer engineering and science, I will prefer to introduce my students to the word of computing with object oriented methodology and Java language. I think there is no more need to confuse the new comers with out of date concepts.




Friday, April 10, 2009

After The Rain Falls...


پس از باران
Originally uploaded by muharram_m
A beautiful view of Tehran after a rain falling for two hours.

Thursday, April 09, 2009

Pawprint


رد پای گربه
Originally uploaded by muharram_m
Pawprint of a cat on the office table!

Thursday, April 02, 2009

Slogans, Anywhere !


درخت شعار زده
Originally uploaded by muharram_m
Slogans, any where, even on trees !

Tuesday, March 31, 2009

The sky celebrates the new year


برف بهاری
Originally uploaded by muharram_m
Today, sky has joined the people to celebrate the new year, with these dancing pretty snowflakes!

Sunday, March 29, 2009

Book Review: Combining Pattern Classifiers; Methods and Algorithms

Recently I've read the book Combining Pattern Classifiers, Methods and Algorithms by Ludmila I Kuncheva. The book addresses the problem of using multiple pattern classifiers to enhance the classification task in quantitative (e.g. accuracy) and qualitative (e.g. robustness) directions.
After taking three courses on pattern recognition and machine learning, the book helped me to get an idea over the whole subject of pattern analysis and classification. It starts with a compact but rich introduction to the theme of pattern recognition and the basic classifier types. Classifier design methods are studied in classifier vs. boundary design and parametric vs non-parametric learning dimensions. After the two introductory chapters on the discipline of pattern recognition, the concept of multi-classifier systems is introduced in chapter three. It is clarified in this chapter that the book is dedicated mainly to combining classifiers at the decision level and topics such as using diverse set of base classifiers are not discussed intensively. Then, combining of classifier outputs are treated in label output and continuous output categories. Various algorithms for majority voting and fusion of the label outputs are studied and compared throughout chapters three and four. Fusion of continuous valued outputs are studied in chapter five.
Selecting different classifiers for different sections of the input spaces are introduced in chapter six and the well-known knn method with its variations are studied in this chapter. Bagging and boosting methods for classifier selection are the subject of the seventh chapter.
The two stages before and after classifier combination; i.e. feature selection as the preprocessing and error corrections as the post-processing; discussed in chapter eight. The importance of feature selection and feature space partitioning are analyzed and demonstrated through the representative examples.
Most of the topics covered so far in the book were based on the results of the experiments in different application areas. Chapters nine and ten contain theoretical views and analysis on the classifier combination methods and rules.
Chapter ten is totally devoted to the diversity of classifiers in an ensemble. Diversity of the classifiers are studied in simple observable methods (e.g. training on different sections of input spaces) as well as statistical analysis tools and methods. Some open research directions are mentioned in the field of classifier combination.
As a student, I found this book helpful for gaining an understanding of the nature of pattern classifiers and the combination architectures. I'll recommend the book for those who took the elementary courses such as statistical pattern recognition and machine learning. The book will serve as a guiding resource for combining and using various familiar methods and algorithms.