March 3, 2004

Bulk view

Java and OO Best Practices

This is in no way a comprehensive discussion on Java and OO Best Practices. This is a subset of the knowledge we pass around with each other. All of this is subject to programmer opinion and there's a lot more that needs to be learned.

bad practices ("code smells")

- duplicate code Have you ever copy-pasted your code? Follow the "Once and Only Once" rrule.

- accessible fields

Tight coupling, corruptible, inflexible. Should have accessors and mutators. Problems with threading.

- large class

A class should only be doing one thing. Follow the "one responsibility rule."

- large method - using magic literals - unnecessary class/instance variables

If it's only used in one method, make it local

- Initializing strings with "new" - Using floats and doubles for currency calculations - Returning null - Subclassing for functionality - Muffling exceptions - Unexceptional exceptions - Excessive use of switches - Middle man: methods that just delegate to other classes. Case of over-design.

good practices - validate your parameters - abstract or final - create local copies to prevent corruption (hmm... good for multithreading, but heck slow) - String, string buffer - favor immutability (now, there's a thought...)
software engineering best practices

Note to self: should have webcam-based project that tracks red laser pointer.

What would be a fun blog visualization hack to see if I can still get the hang of it?

- Download the XML feeds for my blog and my friends' blogs, hacking RSS exports for them if necessary. - Perform either Bayesian or Kohonon self-organization clustering on the topics. - See how the topics cluster and who posts on what. - Figure out, based on that, where my interests lie... - ... and alert me when new posts are made that are close to those topics.

Possible research areas

- Wearable computing: I'm interested in things like Bradley Rhodes'

Remembrance Agent. I'd like to extend it to dynamically index new work and integrate more information sources.

- Intelligence/memory augmentation: Technical support assistance.

- Computer science education: Modelling of student misconceptions

based on a corpus of programs

- Social network analysis: Visualization of social networks

For augmentation, this is interesting: If I could tie together my interest in augmentation with the Semantic Web, that would be quite cool.

Monash university

Postgraduate handbook 2004 Information Technology

Doctor of Philosophy

Course code: 0190 + Caulfield, Clayton, Gippsland, Berwick and Peninsula + School coordinators: Dr Leonid Churilov (Business Systems), Dr Graham Farr, Dr David Squire (School of Computer Science and Software Engineering), Dr Graeme Johansen (School of Information Management and Systems), Dr Manzur Murshed (Gippsland School of Computing and Information Technology), Dr Marian Quigley (School of Multimedia Systems) and Dr Asad Khan (School of Network Computing)

The Faculty of Information Technology offers a Doctor of Philosophy (PhD) program by research in each of the academic units of the faculty, across five of the university's campuses. The degree is awarded for a thesis which, in the opinion of the examiners, makes a significant contribution to knowledge or understanding of any field of study with which the university is directly concerned. The award of the degree is generally accepted as showing that the candidate is capable of carrying out independent research.

Areas for research include graphics and image processing, artificial intelligence, inductive inference, parallel and persistent computer architectures, systems analysis and design methodologies, knowledge-based systems, knowledge management, information systems management, inter-organisational systems, data modelling, electronic commerce, computer-assisted software engineering, programming paradigms and languages, object-oriented systems, formal specification, software metrics, decision support systems, executive information systems, network computing, computer and network security, human-machine interfaces, distributed systems, information storage and retrieval, robotics, digital communications, microelectronic circuit design, digital systems design, and librarianship, archives and records, network security, multimedia authoring, mobile and distributed computing systems, image processing and computer vision, multimedia computing and communication, electronic data interchange and internet commerce, multimedia standards and protocols, multimedia interfaces, GUI design and programming, multimedia applications in teaching and learning, multimedia narrative, animation, game design and development, creating content in digital environments, societal implications of multimedia.

The degree is usually undertaken on a full-time basis over three years. Part-time studies are available on conditions approved by the PhD and Scholarships Committee.

In appropriate circumstances, enrolment for a masters degree by research may be converted to enrolment for a PhD.

Entry requirements
The minimum qualifications for admission to PhD candidature are: (a) a bachelors degree requiring at least four years of full-time study and normally including a research component in the fourth year, leading to an honours degree at first or upper second class level (HI or HIIA); or (b) a course leading to a masters preliminary qualification at a level rated by the relevant school and faculty as equivalent to a first or upper second class honours degree; or (c) a masters degree that comprises a significant research component, at least equivalent to (a) above.

The degree of Doctor of Philosophy (PhD) at Monash signifies that the holder has completed a course of postgraduate training in research under proper academic supervision, and has submitted a thesis that the examiners have declared to be a significant contribution to knowledge, and that demonstrates the candidate's capacity to carry out independent research.

For further information about the PhD program and attendance requirements, contact the Monash Research Graduate School in the Research Services Division of Monash University, Clayton campus.

For further information about the research interests of each school within the faculty, refer to the section titled `School information'. School coordinators can provide advice and information about research topics and supervision.

Applications for PhD candidature can be made at any time of the year and application forms are available from the faculty offices.

“Visually Impaired Can Now ‘Surf’ Internet Thanks to Indian Software”

More than a hundred visually-impaired children in India are using software that lets them surf the Internet. The software product, called Vachantar, is being used by students at the Government High School for Blind Girls in the south Indian state of Andhra Pradesh. Developed by the Center for ...

Note: Stuff like this has been around for a while, though. =)

E-Mail from [email protected]