Mostly Computer Science-related topics and resources, especially Linux and education (IB, IGCSE).
Tuesday, 10 May 2016
Linked Lists
The concepts, use, functionality, advantages and disadvantages are more important than the code when studying ADTs at an introductory level; focus on the diagrams rather than the Java (or code) implementations shown in these online resources.
Saturday, 30 April 2016
Recursion
For a further explanations, animations and exercises, check the following links:
- http://ice-web.cc.gatech.edu/ce21/1/static/JavaReview-RU/Recursion/rTraceMethods.html
- http://www.animatedrecursion.com/
- simple and intermediate recommended
- http://interactivepython.org/runestone/static/JavaReview/Recursion/recursionbasics.html
- http://introcs.cs.princeton.edu/java/23recursion/
Friday, 29 April 2016
Control and Embedded Systems
An HL topic for IB Computer Science that brings many questions (especially why on earth are we doing this) is Control. The best resources for you to study and revise is this:
Positive and Negative Feedback
Recommended resources:
- https://en.wikipedia.org/wiki/Positive_feedback *
- https://en.wikipedia.org/wiki/Negative_feedback * * introductory paragraphs should be enough for students of IB Comp. Sci. HL
- Concise summary on feedback control systems (closed loop)
- Great document on Control Systems from hkedcity.net; you should focus on its Chapter 3: Different types of control systems
Embedded Systems
Quite difficult to define, the best (and concise, too) article I've found so far is
- http://www.engineersgarage.com/articles/embedded-systems
- Plus https://en.m.wikipedia.org/wiki/Embedded_system if you want addional reading.
Software Licensing
- Privacy ([personal] data protection, collection, use and disposal)
- Security (access restrictions to data, especially relevant when stored/shared on networks)
- Licensing and copyrights
- Privacy: if you're interested, you may want to have a read at the personal data protection act @ https://www.pdpc.gov.sg/legislation-and-guidelines/overview
- Security: we have definitely discussed in dept during class, especially under our networking topic.
- Licensing and copyright: http://searchcio.techtarget.com/definition/software-license
Also these diagrams from https://en.m.wikipedia.org/wiki/Software_license are good for a quick overview on the topic:
Monday, 14 March 2016
Static vs Non-static in Java
In my opinion, tutorial4us did a great job explaining it. A very good read indeed.
My understanding is that instance (non-static) variables exist in each object (instance of the class). Each object will have its own value/content for each instance variable. Think of the name in a Person class. We define the name as an attribute or property of a person, and each Person object will have its own name.
Static variables exist only inside the class where they are declared. Some call them "class variables" because they are bound to the class, not the object. They are unique and when a new object is instantiated, the object does not get its own copy of it. Rather than using the dot notation with the object (object.nnnn), you would use it with the class (Class.nnnn).
Note that this also applies to, and is also often used with methods!
Think about these example:
public class Test
{
public static void main (String args[])
{
int[] numbers = {1,2,3,4,5};
System.out.println( numbers.length ); // =5
// length (size/number of elements) of the array object
System.out.println( Math.PI );
// PI is stored as a static constant inside the Math class
// we don't need to instantiate a Math object to use PI
}
}
To code or not to code
One of my favourite authors, V. Anton Spraul, has an interesting website about his books, programming, computer science, and other topics.
What caught my attention (this time) is the Learning How to Program: A Guide section of his web site.
I would like to recommend reading part two, "How do I know if programming is for me?" to anyone considering a CS course, diploma or degree, job, or anything that involves coding.
Below are my favourite quotes from the points he makes:
- "A good programmer enjoys programming. I don't mean that every act of coding will bring unbridled joy, or that programming is fun in the same way that playing a favorite sport or video game is fun. But there should be a real pleasure in seeing one's program working, even if the program is a pitiable little thing that accomplishes almost nothing."
- "Probably just about anybody could become a pretty good programmer if they work hard enough to become one. But make no mistake about it, programming is tough mental work. If, on some level, you're not enjoying the work, you're never going to be able to focus on it long enough to master it."
- "Unfortunately, just because a person really enjoys working with computers doesn't mean he or she will enjoy programming. I guess the reverse is true, though; if you don't like technology, you probably shouldn't try to learn programming."
Wednesday, 9 March 2016
Software as a service
- http://www.zdnet.com/saas-pros-cons-and-leading-vendors-7000011500/
- http://it.umich.edu/initiatives/cloud/content/what-cloud
- http://www.ebizq.net/topics/saas/features/10982.html
- http://www.itworld.com/saas/54844/pros-and-cons-saas-part-1
- http://wellsdigest.com/cloud-computing-pros-and-cons-of-software-as-a-service-saas/
- http://www.itp.net/587188-the-pros-and-cons-of-saas
- http://www.lexology.com/library/detail.aspx?g=ce55825d-8700-4339-9dd1-358721b9099f
Optimise Windows 10/11
How to optimise your Windows setup Just in case you need it. If you want a safe and conservative approach, just disable the background apps ...
-
Lenovo Ideapad S10-3 If you have a Lenovo Ideapad S10-3 (depicted above), and you want to test or install shiny new Ubuntu 10.10 on it,...
-
This brief post shows how to create a bi-dimentional array and describe it using IB pseudocode. It isn't stated in the IB Pseudocode in ...
-
In order to program in Java, you may want to follow the instructions and videos that I have prepared. They are simle and straightforward, an...

