|
|
Welcome to my unofficial notes and reports sharing page
The goal of this web site is to share my
unofficial lecture notes and research reports, together with a
collection of program samples which accompany these notes and
reports. Hopefully, viewers can be
inspired by manners in which I solved various matters, while their
knowledge can somehow benefit from my work and teaching experience
encapsulated in this site. The site is also addressed to students
of subjects that I am currently teaching, to my former students
(in case they wish to have a quick reference to a topic, program,
diagram, or material, that I discussed with them during my classes),
to students of similar subjects from other educational institutions
- who may wish to have a look how another lecturer is addressing
a given topic, as well as to my professional colleagues - i.e. other
lecturers and teachers of similar subjects, that may wish to have
a look at "what" and "how" I am teaching. You are welcome to use
these notes, if you feel so, and please do not hesitate to let me
know if you find something in them that is outdated, imperfect, or
simply contains a human error.
A rather unique feature of sample programs that
are attached with these lecture notes, is that
they present solutions of almost the same problems prepared in
several different programming languages.
Therefore, for example a problem of translation of Arabic numbers
into Roman numbers is solved in JavaScript, Java, PP C++, and OO
C++ languages. Similar is with many other programming problems,
e.g leap year verification, Bubble Sort, calculators, etc.
Especially I would like to recommend my
collection of calculators
programmed with JavaScript and with Java Applets. These calculators
are available via the menu item marked "calculators". Furthermore,
I also recommend examples of interesting programs, which are very
useful in teaching of programming. These are available either via
the menu item marked as "catalog of notes", or directly from pages
devoted to individual programming languages (JavaScript, Java,
Delphi, C++).
Should for some reasons this Web site
get out of order, actually there are two mirror
copies of it, which are available at the internet addresses
Pajak.20m.com and
Pajak.20fr.com.
Both of them offer the same lecture notes and the same examples
of programs. Thus in emergency situations please visit also a mirror
site.
|
Notice that you can see the
enlargement of each photograph from this web
site, simply by clicking on this photograph. Most of
browsers that you may use, including the popular Internet
Explorer, allow also to download
each illustration to your own computer, and then look at it,
reduce or enlarge the size of it, or print it with your own
graphical software.
Fig. #1: This is me - Prof. Dr Jan Pajak
(i.e. I am the person wearing a hat).
On one of my field trips to check my
"blowpipe" hunting skills. Although the
use of blowpipes for hunting may appear
to be very primitive, actually it is a very
effective hunting technique. We must
remember that Orang Asli natives from
Malaysia (visible on the edge of this
photograph) tip their miniature darts with
the "curare" poison made from the Ipoh
tree. So animals hit with such darts die
instantly like have been struck by a lightning.
On the other hand, the meat of animals
killed by darts tipped in curare is still
edible (i.e. NOT poisonous).
Photographed in 1995 during my Professorship
at the University Malaya in Kuala Lumpur.
If you are interested in web sites development
There is another web site that I am presently developing, which is aimed at
guiding newcomers through the entire process of development of their own web site
(starting from the scratch). This my another educational web site has the address
websitemaker.20m.com.
You can find in it various practical hints, how to go about the
development of your own web site. It also includes a page that
contains a list of internet addresses to around 100 search engines,
and another page which list sources of various free computer
resources useful for web site development (e.g. free web space
providers). Moreover, it has a search engine submission page,
which assists in submitting your web sites to existing search
engines. In spite that this another my web site is still in
the process of being developed, it is already highly useful.
You are welcome to have a look at it (click the menu item
websitemaker from "Web tutorials" to get there).
|
How my unofficial lecture notes were prepared:
Practically I worked on them during my whole lecturing
career so-far. Especially the examples of programs
contained in these notes are collected over many years,
some originating from the very beginning of my teaching
career. The Tertiary Educational Institutions, in which
I lectured during the period of time when the gathering
of material which gradually eventuated in these notes,
include:
1. The
Technical University of Wroclaw,
Poland (where I was employed as a Polish equivalent to a
reader from English University System)
2. The
Canterbury University,
Christchurch, New Zealand (where I had opportunity to
work as a Post-Doctoral Fellow).
3. The
Southland Polytechnic,
Invercargill, New Zealand (where I had the pleasure to work
as a Senior Tutor in computing).
4. The
Otago University,
Dunedin, New Zealand (where I was a Senior Lecturer in
the Department of Quantitative and Computer Studies,
specialised in Software Engineering).
5. The
Eastern Mediterranean University,
Famagusta, Northern Cyprus (where I was an Associate Professor in
Computer Sciences, with specialisation in Software Engineering).
6. The
University Malaya,
Kuala Lumpur, Malaysia (where
I had a honor to work as an Associate Professor of Engineering).
7. The
University of Malaysia Sarawak,
Kuching, Borneo (where I could contribute my knowledge and experience
working as an Associate Professor of Engineering).
8. The
Aoraki Polytechnic,
Timaru, New Zealand (where I
was employed as a computing tutor).
9. The
Wellington Institute of Technology,
Wellington, New Zealand (which provided me with the opportunity
to utilise my experience and knowledge from the area
of computing by working as an "Academic Staff Member").
In addition
to this, some information contained in my lecture notes
originates from as far as my employment in industry.
I actually was employed in two large factories, namely in:
10. Computer producing factory Mera-Elwro. (I worked
there as a scientific adviser in the Software Development Department.)
For example, all student projects concerning calculators
originate from this my employment, as one of tasks I helped to
solve over there was the production of a scientific calculator
(for more details see my list of publications on
Computing Research).
11. Bus and trucks producing factory named
Polmo-Jelcz.
(I worked there as a scientific consultant in the Production Technology Department.)
A lot of engineering teaching that I carried out on the Computer-Assisted
Design (CAD), but that are not addressed in these lecture notes,
were based on my work carried out in this bus and truck producing factory.
I would like to take this opportunity, and thank to all
these my countless colleagues and students, who contributed
somehow to the lecture notes that I am using in my teaching,
either by making available their own ideas, or by guiding,
advising, inspiring, commenting, criticising, or just
simply listening. Thank you all! In order to pass further
your willingness to share knowledge, I am making available
here my lecture notes.
|
Programming languages addressed in these notes
The lecture notes available here are elaborating on the
following programming languages:
C for Procedural Programming (PP)
C++ for Procedural Programming (PP), and for Object
Oriented (OO) applications
COBOL for Procedural Programming (PP)
Delphi (in Object Oriented applications)
Java Applets (in web pages design)
JavaScript (as an initial course for scripting
of simple web pages, and also as part of advanced courses
in client-side and server-side scripting) combined
with HTML.
Computing subjects that are covered in these notes
From the subject area point of view, these lecture notes
elaborate on such matters as:
programming in various computer languages listed above,
fundamentals of computing (including program design
and development, logic charting, numbers systems, operating
systems, etc.),
web pages development (including programming of web
pages, web pages design methodologies, samples of web pages, etc.)
web pages scripting (including JavaScript, Java Applets,
client-side scripting, server-side scripting, and more).
Fig. #2: Students and their professor!
Myself (Dr Jan Pajak) photographed with students
of my course on Software Engineering, at the Eastern
Mediterranean University in Northern Cyprus!
How to go about downloading lecture notes from this Web Page:
Move to the page which in Menu 1 is marked
catalog of lecture notes
by clicking either here, or on the menu from the left margin of
this page, then choose a subject on which you wish to download the notes,
and then click on the topic of notes that you wish to have,
finally save these notes in your own computer.
My email is: pajakjan@gmail.com
|
My research:
My
research have a multidisciplinary character. For
example, apart from research done in computing,
currently I also investigate a device for remote
detection of impending earthquakes and for giving
advanced earthquake warnings. This device is to
raise alarm a long time before an earthquake
is to strike. Outcomes from some of this my research
on earthquakes you can review on several web
pages listed in "Menu 2", e.g. on:
alarm.gq.nu,
alert.1hwy.com, etc.
Have a look at them. Perhaps you find this device
interesting.
Of
course, a significant amount of my latest research
related to the area of computer science. In order to
name several topics that I researched from the area
of computer science, these included, amongst others
(for more comprehensive list of my research topics
and research publications see the web page
Computing Research):
(a)
The "all-in-one" idea. This is a new idea for
computing. (I believe that in the formulation briefly
explained and illustrated here - it is my own.) It is
based on a very old finding, that for quantitative
calculations which are needed one time only, a
good calculator is incomparably more useful
than a best programming language. This is why
shoppers bring calculators with them to supermarkets,
instead of using their computers for calculating prices
and spending. I conceived this new idea around
21 May 2005, when in the course of my research,
which at that time I was completing at the
Wellington Institute of Technology,
I attempted to develop a virtual keyboard for an
universal use. I realised then, that it is possible to
design this virtual keyboard in such a manner,
that it obtains a processing power of a sophisticated
programming language, while simultaneously it
still maintains a simplicity of a calculator. I gave the
name "all-in-one" to this new idea of a software tool
for single-use quantitative calculations. Soon afterwards
I completed a first prototype, in which I implemented
practically this new idea. My intention was to develop
a kind of powerful calculator, the processing capability
of which would be equal of these from most sophisticated
programming languages. Unfortunately, just when I managed
to finish a second prototype of this super-powerful calculator,
and intended to subject it to testing and research, on
22 July 2005 I was made redundant from the IT position.
(There was a rapid drop in IT student numbers,
which NZ experienced at the beginning of 2005.)
In such circumstances I could not carry out the development
of further improved prototypes. Therefore, at the moment
the practical implementation of this "all-in-one" idea still
has a lot to wish for, e.g. regarding the user-friendliness,
ergonomics, types of calculations it is able to carry out,
processing power, etc. However, it already demonstrates
quite well as to what this new computing idea of "all in one"
is about. You can see this second prototype for the
"all in one" idea at several web pages listed in
"Menu 2", e.g. at:
magnocraft.20fr.com,
capsule.20m.com,
totalizm.fanspace.com, etc.
Of course,
the huge potential of this new idea "all in one" does NOT finish
on making it available to users via present computers. After all,
programming it into computers must open possibilities to apply
it also in other areas. For example, relatively easy it can be
implemented also on the cellular telephones. After
such an implementation, each cellular phone would work practically
as a totaliztic keyboard in the "all in one" idea, linked in a network
with computers of a large processing power. One does not need
explanations how our life gets improved, when users of all cellular
phones would rapidly receive the calculation power equal to
that of the most powerful programming language and computer,
released with the simplicity of operating just an ordinary calculator.
(b)
Search engines. I am researching these
currently (I actually try to develop several search engines
and then investigate their properties). You can find out more
about this current research from the page
Search Engine Research.
(c)
Natural languages processing.
(d)
Thermal graph method for investigation of temperature distribution
(this method is a version of finite elements method).
(e)
A language for automatic programming (I actually was an
author of my own programming language called JAP - named
from the Polish "Jêzyk Automatycznego Programowania"
(i.e. the "Language of Automatic Programming"), which was
in use for several years at a number of Polish Universities.
(f)
Computer viruses.
Also several other topics. More information about
directions of my research in computing, and about my research
publications in this area, you can find on the web page
Computing Research
from the menu.
|
What is this "all-in-one" idea for computing:
Let us now explain
briefly, what actually is this idea of computerisation called "all in one."
These readers, who make programs for computers,
know well that there are two basic categories of calculations
and computing tasks, namely (a) repetitive tasks (e.g. balancing of funds
by a bank), and (b) tasks which are only carried out one time (e.g. calculating
during our shopping in a supermarket, which product that they offer is
more beneficial to us in terms of price to weight). Tasks which are repeated
many times are worth to be computerized through writing programs.
After all, the large contribution of labour for the completion of programs
is returned for them when these programs are utilized. However, tasks
carried out only one time are not suitable for programming. After all,
the large input of labour for programming them would never be returned,
if this program is used a single time only. Thus, computing of tasks which
are completed only a single time, usually is completed either with calculators,
or manually. The enormous processing power of present computers is
not harvested for them. This is quite a regretful situation, as there is a large
potential being lost.
On 21 May 2005 I started
to develop a kind of virtual keyboard for universal applications. I realized then,
that this keyboard can be made almost infinitively universal, and that it can
obtain almost all calculating powers that a given computer has. In the result,
such a small keyboard can receive practically all capabilities, which presently
are embedded into the most advanced programming languages and computers.
But it still is going to maintain simplicity of a calculator, and still can be used
just as a calculator - means just for completing single-use jobs. In this manner,
the new idea for computerization called "all in one" was born. This new
idea boils down to a design of a keyboard, which in a simplest possible
form supplies the users with all capabilities of data processing that normally
are offered only by complex and sophisticated programming languages and computers.
In this way the powerful calculation abilities of present computers can be
made accessible for these people who wish to carry out tasks for only
single uses. Immediately after this idea evolved in my mind, I started to
construct a prototype keyboard, which implemented practically this idea
of "all in one". Unfortunately, shortly afterwards, this work was interrupted
for objective reasons (i.e. my redundancy from the IT job). Until this interruption,
I managed to contribute towards the development of the "totaliztic keyboard"
only around two months of occasional programming and thoughts. On the
other hand, in order to develop such a powerful software tool to a reasonable
level, in my opinion it requires at least a year of continuous research, thinking
over, testing, and programming by a single researcher.
Fortunately, until the time when
I lost my IT job and thus was forced to abandon this project, I managed to program
a second prototype of the "totaliztic keyboard" for this "all in one" idea. Although
this second prototype still leaves a lot to wish for, regarding the ergonomics,
user-friendliness, and calculation power which it already received, still it illustrates
well what this new idea "all in one" is about. So by checking here how it works, the
reader obtains quite a good understanding as to how this new idea "all in one"
is able to facilitate all calculations for only a single use. After all, the reader is
able to realize from this prototype, that in future implementations of this idea
both text boxes can be made adjustable - so that they accommodate whatever
the user wishes, that both alphabets (i.e. present Russian and present English
+ Polish) can be made replaceable - so that the user could switch/exchange them
into Japanese, Korean, Thai, Arabic, Jewish, Greek, or any other alphabet
in existence in the world, that the edition capabilities of this keyboard can be
increased until they reach these from the WORD or WORD PERFECT,
that the number of mathematical functions and physical conversions can
be increased to practically unlimited extent, that the calculations carried
out can be simplified and facilitated further by adding the capability to
"recognize" in the text values that should be subjected to calculations,
and by writing the results in any place that the user indicates, that to the
processing power of this keyboard can be added graphics, animation,
and whatever someone wishes, etc., etc. So practically, after full implementation,
this new idea of "all in one" in fact would allow users to carry out with this
single simple keyboard practically every type of data processing that
present computers are able to do and that are on offer in the form of
complex programming languages. And we know that there is a lot of
such capabilities. Actually, even in the present, far from perfection form,
this keyboard is already able to be utilised for facilitating an entire range
of works, including calculations, translation, editing, typing, transliteration,
conversion, etc. Furthermore, it provides us with an idea (a concept)
which can be developed further e.g. by assigning to it diploma projects
and doctor dissertations from computer sciences. In turn, after it is developed
to the practically useful level, it will be able to enhance the work and life
for a large number of people, who need to computerise and simplify
all one-off activities that they carry out. |
Date of the latest update of this page: 8 August 2008.
Counts of visits to this page:
Hit Counter
10694
|