blogger visitor

Techucation

A Blog by Malcolm Yoke Hean Low

 Subscribe in a reader




View Malcolm Low's profile on LinkedIn

Malcolm Low

Create Your Badge

 Subscribe in a reader


Enter your email address:

Delivered by FeedBurner


Archive for the Teaching category

What Should We Teach New Software Developers? Why? - CACM article by Bjarne Stroustrup

Posted on Tuesday, December 22, 2009 at 11:58 PM by Malcolm

What Should We Teach New Software Developers? Why?
Bjarne Stroustrup in CACM viewpoint, "Fundamental changes to computer science education are required to better address the needs of industry. Computer science must be at the center of software systems development. If it is not, we must rely on individual experience and rules of thumb, ending up with less capable, less reliable systems, developed and maintained at unnecessarily high cost. We need changes in education to allow for improvements of industrial practice."


Posted in General (RSS), Teaching (RSS)

Leap Year Bug in Microsoft Zune Player

Posted on Tuesday, January 06, 2009 at 12:45 PM by Malcolm

On December 31, 2008, every Zune 30 device freezes due to a leap year bug in a driver from Freescale Semiconductor in a "while loop". Obviously a leap year test case is not carried out on the driver. See this article for details. Edited on: Tuesday, January 06, 2009 3:20 PM

Posted in General (RSS), Teaching (RSS)

Oxford and Cambridge offer lectures on Apple's iTunes

Posted on Wednesday, October 08, 2008 at 10:21 AM by Malcolm

The universities of Oxford and Cambridge are to make lectures by well-known academics available through Apple's iTunes.

More than 150 hours of free audio and video podcasts from the University of Oxford are now available on a new site on iTunes U.

Cambridge on iTunes U offer more than 300 audio and video tracks covering a broad range of themes; delve into the Enron scandal, take a guided tour of the exhibitions at the Fitzwilliam museum by leading experts, and listen to the regular contributions from the St John's College choir - all without having to leave your house!

Edited on: Wednesday, October 08, 2008 10:22 AM

Posted in General (RSS), Teaching (RSS)

Design Patterns - Broker, Generator and Reactor Design Patterns

Posted on Thursday, September 21, 2006 at 11:28 AM by Malcolm

  • Broker Design Pattern
    Broker Design Pattern
    • The Facade Pattern
    • The Mediator Pattern
    • The Adaptor Pattern
    • The Proxy Pattern


  • Generator Design Pattern
    Generator Design Pattern
    • The Factory Pattern
    • The Singeton Pattern
    • The Prototype Pattern


  • Reactor Design Pattern
    Reactor Design Pattern
    • The Command Pattern
    • The Observer Pattern


Edited on: Thursday, November 20, 2008 10:43 PM

Posted in Teaching (RSS)

JUnit Testing

Posted on Thursday, August 10, 2006 at 7:46 PM by Malcolm

Command line tool to run test

The JUnit package has q command line based tool to run tests.

> java junit.textui.TestRunner [-wait] TestCaseClass

TestRunner expects the name of a TestCase class as argument. If this class defines a static suite method it will be invoked and the returned test is run. Otherwise all the methods starting with "test" having no arguments are run.

When the wait command line argument is given TestRunner waits until the users types RETURN.

TestRunner prints a trace as the tests are executed followed by a summary at the end.

Posted in General (RSS), Teaching (RSS)

Unified Modelling Language (UML)

Posted on Saturday, May 20, 2006 at 12:16 AM by Malcolm

Links on UML Edited on: Saturday, January 17, 2009 7:03 PM

Posted in General (RSS), Teaching (RSS)

Software Engineering - Tools, Resources, Articles

Posted on Thursday, May 04, 2006 at 12:48 AM by Malcolm

Software Engineering Tools

  • Ants - Ant is a Java-based build tool. In theory, it is kind of like Make, without Make's wrinkles and with the full portability of pure Java code.
  • Cobertura - Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.
  • Emma - EMMA is an open-source toolkit for measuring and reporting Java code coverage. EMMA distinguishes itself from other tools by going after a unique feature combination: support for large-scale enterprise software development while keeping individual developer's work fast and iterative. Every developer on your team can now get code coverage for free and they can get it fast!
  • JavaNCSS - Ever wondered how many lines of code or how many classes there are in  the Sun JDK? Curious about the size of your own projects - or do you want to keep track of your work-progress. That's what JavaNCSS is for. JavaNCSS is a simple command line utility which measures two standard source code metrics for the Java programming language. The metrics are collected globally, for each class and/or for each function.
  • Jester - The JUnit test tester. Jester finds code that is not covered by tests. Jester makes some change to your code, runs your tests, and if the tests pass Jester displays a message saying what it changed. Jester includes a script for generating web pages that show the changes made that did not cause the tests to fail.
  • Clover - Clover measures code coverage generated by system tests, functional tests or unit tests, allowing you to improve test quality and find bugs sooner.
  • A list of static source code analysis tools for C
Software Engineering Resources
  • Junit.org - This site is dedicated to software developers and testers using the JUnit testing framework. In addition to the latest news and download links for JUnit, you can find answers to questions about automated testing, tools and extensions for JUnit, and articles on Test Driven Development and other testing topics.
  • httpunit.org - Written in Java, HttpUnit emulates the relevant portions of browser behavior, including form submission, JavaScript, basic http authentication, cookies and automatic page redirection, and allows Java test code to examine returned pages either as text, an XML DOM, or containers of forms, tables, and links. When combined with a framework such as JUnit, it is fairly easy to write tests that very quickly verify the functioning of a web site.
  • EasyMock - EasyMock provides Mock Objects for interfaces in JUnit tests by generating them on the fly using Java's proxy mechanism. Due to EasyMock's unique style of recording expectations, most refactorings will not affect the Mock Objects. So EasyMock is a perfect fit for Test-Driven Development.
  • Refactoring - This site is a simple portal for information about refactoring. There is a list of sources of information about refactoring, including various books that have been written.
  • User Interface Design Patterns - This collection consists of user interface design patterns (interaction patterns) that seems to be recuring problems when trying to make design based on the user’s goals. These design patterns have been analyzed during the past five years by going through hundreds of designs, to give instructions and design examples to the students of design courses at the University of Helsinki, Dept. of Computer Science.
  • A Summary of Principles for User-Interface Design - This document represents a compilation of fundamental principles for designing user interfaces, which have been drawn from various books on interface design, as well as the author's own experience. Most of these principles can be applied to either command-line or graphical environments.
  • User Interface Design Tips, Techniques, and Principles - A fundamental reality of application development is that the user interface is the system to the users. What users want is for developers to build applications that meet their needs and that are easy to use. Too many developers think that they are artistic geniuses – they do not bother to follow user interface design standards or invest the effort to make their applications usable, instead they mistakenly believe that the important thing is to make the code clever or to use a really interesting color scheme. Constantine points out that the reality is that a good user interface allows people who understand the problem domain to work with the application without having to read the manuals or receive training.
  • DreamSpark - Microsoft professional-level developer and design tools provided at no charge for students
  • Struts Framework - An open source framework for building Servlet/JSP based web applications based on the Model-View-Controller (MVC) design paradigm. A free pdf version of book "Starting Struts 2" is available at here.
  • JSP Tutorial - This tutorial teaches JSP by progressing from very simple examples to complex examples.
  • AJAX Tutorial - AJAX Tutorial for Java Programmers
Software Engineering Articles Software Engineering Books

Edited on: Monday, August 10, 2009 7:34 PM

Posted in General (RSS), Teaching (RSS)

Teaching - Software Engineering, Operating Systems

Posted on Wednesday, January 04, 2006 at 9:23 PM by Malcolm

Courses taught in 2010 Semester 2


Courses taught in 2010 Semester 1

  • CSC207 - Software Engineering
  • CM104 - Reasoning with Objects
  • CSC/CPE203 - Software, Systems and Models

Courses taught in 2009 Semester 2

Courses taught in 2009 Semester 1


Courses taught in 2008 Semester 2

  • CPE207 - Software Engineering

    Topics covered in this course include the following:
    • UML 2.0
    • Software Development Lifecycle (SDLC)
    • Project Management

Courses taught in 2008 Semester 1


Courses taught in 2007 Semester 2


Courses taught in 2007 Semester 1


Courses taught in 2006 Semester 2


Courses taught in 2006 Semester 1

  • CM104 - Reasoning with Objects
  • CSC207 - Software Engineering I
  • CSC205 - Operating System
Edited on: Wednesday, August 10, 2011 2:32 PM

Posted in Teaching (RSS)