Directory of Open Access Journals

18-Mar-05

Do you know there are a large number of Open Access journals available in the internet. However, tracking down all the ones that interest you on the internet can be time-consuming. The Directory of Open Access Journals (DOAJ) was created to do something with this issue. This site provides a comprehensive database of free, full text, quality controlled scientific and scholarly journals. I hope you find it useful.

Conference on Software Engineering Education

14-Mar-05

The Conference on Software Engineering Education and Training (CSEE&T) is an international academic conference that presents research papers, panels and keynotes regarding all issues related to SE education, training and professionalism. People from industry and academia will come together to discuss how we can improve the education, training, and professionalism of those working in the software engineering field. It will be an exciting event for all those involved in the education, training and professional development of software engineers. CSEE&T is sponsored by the IEEE Computer Society. in cooperation and supported by the Software Engineering Institute (SEI).

Software Engineering Skills

14-Mar-05

The following is an excerpt from the paper by Said Hadijerrouit, “Learner-Centered Web-Based Instruction in Software Engineering”, IEEE Transactions on Education, Vol. 48, No. 1, Feb 2005. It briefly summarizes the basic software engineering skills. My thank goes to the author of this paper.

  • analysis skills, such as representing the problem domain and users requirements using object-oriented concepts, including the simulation of scenarios;
  • design skills (such as architectural, compoment, and logical design), cohesion and coupling issues, and elaboration of requirements and design criteria;
  • coding and testing skills, such as program coding, testing, evaluating and debugging of the evolving code solution, and consistency checking;
  • reuse skills, such as comparing, contrasting, and recognizing similarities and differences between new problem situations and previous solutions, including modifying, adapting, and reusing existing solutions;
  • critical thinking skills, such as evaluating, explaining, and justifying software engineering solutions;
  • writing and reading skills, such as writing and formatting technical documentation and reading texts and documents;
  • communicative skills, such as communicating with other learners and working in teams.

Instructional Principles for the Constructivist Pedagogy

14-Mar-05

The following is an excerpt from the paper by Said Hadijerrouit, “Learner-Centered Web-Based Instruction in Software Engineering”, IEEE Transactions on Education, Vol. 48, No. 1, Feb 2005. It reminds me about the most basic instructional principles that the constructivist paradigm suggests for the design of learning environments. My thank goes to the author of this paper.

  1. Knowledge must be actively constructed by learners, not passively transmitted by teachers.
  2. Students’s prior knowledge must be taken into account by the construction of new knowledge.
  3. In order to be useful for problem solving, knowledge components must be related to each other. The process of constructing inter-related knowledge requires higher order thinking skills, such as analysis and design skills.
  4. To get students actively involved in knowledge construction, learning activities should focus around a set of intrinsically motivating problems that are situated in real-world tasks.
  5. Learning should take place in a collaborative environment that involves social interaction and negotiation.
  6. Assessment procedures should be embedded in the learning process, focus on authentic tasks, and consider learners’ individual orientations.
  7. Teachers serve primarily as guides and facilitators of learning, not as transmitters of knowledge.

“Constructivism is a theory of learning that regards learning not so much as the product of passive transmission but as a process of active construction. Constructivism is learner-centered, assuming that learners learn better if they construct knowledge for themselves, rather than having it dictated by an instructor.”

Static Analysis of Java Programs with PMD

11-Mar-05

PMD is an open source tool that analyzes Java source code to find potential bugs.PMD scans Java source code and looks for potential problems like:

  • Empty try/catch/finally/switch blocks
  • Unused local variables, parameters and private methods
  • Empty if/while statements
  • Overcomplicated expressions - unnecessary if statements, for loops that could be while loops
  • Classes with high Cyclomatic Complexity measurements

PMD can also be integrated with Ant for automatic source-code checking, and plug-ins exist for most major IDEs and programmer’s editors.

I recommend an Elliotte Rusty Harold’s article titled Zap bugs with PMD. It is an introductory reading about installing, configuring, and running PMD.

Test-Driven Development, Java and JUnit

10-Mar-05

This is an article written by Mike Clark on January 2004 titled “A Dozen Ways to Get the Testing Bug in the New Year”.

The article can be read and printed through the this URL.

(more…)