Showing posts with label computer. Show all posts
Showing posts with label computer. Show all posts

Monday, 1 June 2020

Java programming and OOP

Either to revise or as additional sources, the followins resources may help you with Java programming and OOP.

 Hope they will be useful to you!

Friday, 3 April 2020

ROM and RAMs

I found this great article on the differences between BIOS (basic input/output system) and EFI/UEFI (Unified Extended Firmware Interface), which are the contents of the ROM, which is actually flash memory, non-volatile and writable.

Something to note is that in this context of flash ROM, we could say that ROM means read-only, or not writeable, but from a user perspective rather than a hardware limitation. Updating the (ROM) BIOS/UEFI is a process handled by special applications (BIOS updaters or flashers) that check and update it, or may even be an advanced option offered by the UEFI/BIOS itself.

Althogh the concept of RAM (Random Access Memory), the primary storage keeping instructions and data to be used by the processor, is not tough to grasp, the difference between static and dynamic RAM is a bit tougher. Watch this great video explaining below. Credits go to H3Vtux.



You may also want to watch TechQuickie's "Different Kinds of Memory as Fast As Possible":

And finally, this nice quizlet cards may help you revise the topic of Computer Organisation.

Tuesday, 3 December 2019

Lexicographical Order

This refers to the way strings and characters are alphabetised and compared.

In Java, you need to understand lexicographical order to properly implement (and debug) sorting algorithms.

The page below has the best, most concise and practical explanation I have found so far:

Monday, 15 July 2019

Buying a laptop 2019

This post is meant to share information to help you choose a laptop. If is focused on laptops for students and work. This post does not refer to gaming laptops. Also note that this post contains my opinions and it was not sponsored by Lenovo or anyone else.

In a nutshell, I recommend:

Feature

Suggestion

Comment

Screen size

14 inch screen size, 13 minimum, IPS type

smaller screens increase mobility, but they may decrease readability and also adversely affect your eyesight in the long term

Processor/ CPU

Intel Core i5

invest on RAM rather than upgrading the processor

Memory/ RAM

8 GB minimum, 16 GB ideal

if your budget allows for it

Storage/ SSD

250 GB minimum, 500 GB ideal

if your budget allows for it

Graphics

Integrated

prioritise RAM, storage (SSD) and CPU upgrades before discrete graphics

As much as I find macOS a good operating system, I find that the current offering of MacBooks is too expensive, impossible to maintain and upgrade, and far too expensive for their hardware specifications. I do not like their keyboards, either. If you go for a MacBook, AppleCare is strongly recommended. Watch this video by Dave2D for more information and recommendations on buying Apple laptops

Before you buy, look for the online review of the laptop you intend to buy. Besides google, try Laptop magazine, Notebook check and any reliable sources you may already know.

Let us take the ThinkPad series as an example of choosing a laptop. I have a ThinkPad L460. When it got “old and slow”, I was able to upgrade its RAM to 16 GB and its hard disk drive to a 500 GB solid state drive. It was straightforward, and I am still using it. This experience makes me consider getting a T470 or another ThinkPad in the future.

Find reviews for different models, then check with the Lenovo local online store, where you may be able to try different configurations and check their prices and offers.

Please remember to check for student/academic pricing. In Singapore, Lenovo offers student discounts here.

For more information and articles, you may check

https://www.laptopmag.com/articles/best-laptops-for-college

https://www.laptopmag.com/articles/laptop-buying-guide

Lower budget update

Unfortunately, quality laptops tend to expensive. Rather than buying a cheap, and possibly useless laptop, you may want to consider purchasing a refurbished laptop the manufacturer or a reputable shop. For a few hundred dollars, you could get a second hand ThinkPad model T, or even an X. They may not be the latest products, but for school and everyday use, they may offer a great value.

One example of a manufacturer's refurbished store is Apple's. Of course, you could also look for similar shops online or in your city. If you are in Singapore, try Remax at Bedok Mall, Century Square (Tampines), Funan and of course there are a number of shops at Sim Lim Square selling refurbished ThinkPads as well. I also found that NewEgg Singapore also hsa a refurbished section, but I have not used it myself (yet). Just don't expect a refurbished computer to be just like a new device; refurbished implies either second hand/used and/or repaired. It's a good alternative to purchasing a new laptop, but keep your expectations reasonable.

I own a Lenovo ThinkPad X250 that I got from Remax, and I am very happy with my purchase. I did buy with the intention of tinkering with it and running Linux. I eventually upgraded its RAM and swapped its old hard disk drive for an SSD, and I'm even happier with the value of what I've got. I did buy a model with an HDD, but there are many models on sale (again at Remax) already upgraded with an SSD. Of course I'd love to buy a new(er) ThinkPad, but that will take a considerable amount of time saving some serious amount of money...

Monday, 22 April 2019

IB Final Papers Revision

Just a last reminder to help you prepare for your IB final papers.

Best luck in your revision and finals!

Sunday, 21 April 2019

Computer Networks

Best of YouTube videos on Computer Networks

Some of these links, rather than pointing to individual videos, will take you to YouTube channels containing many videos on the topic. Note that some videos or parts of a video may not be relevant to your specific syllabus or needs.

Big O notation

Best of YouTube videos and links on Big O notation

Hope these videos help. Remember to check your textbooks as well! You may also want to read chapter 14 of Big Java Late Objects (Horstmann) and chapter 15 of Java Illuminated (Anderson and Franceschi).

Monday, 31 December 2018

Warm up to Computer Science

These resources will help you practice and strengthen your Computer Science and practical programming skills. Multiple links are provided to cover a wider range of backgrounds, experience and needs.

Python is a great first programming language to learn for beginners, and Java is second to none to learn OOP and intermediate to advanced programming concepts. Java is a must for computer science students, and is also the prescribed programming language for the IB Diploma Programme Computer Science course with the Object Oriented Programming (OOP) option.

Good luck!

Theory/General Knowledge:
Practical aspect: Programming

Free eBooks recommended:
A few of the best reference sites about Java programming are

Friday, 2 November 2018

Buying a laptop

This is never an easy topic, but you could read the following article (which is updated yearly) as a starting point:

https://www.laptopmag.com/articles/best-laptops-for-college

and these great tips to avoid buying the wrong laptop/computer:

https://www.digitaltrends.com/computing/top-laptop-buying-mistakes/

Some alternatives not discussed in the article by Laptop Magazine:
  1. Get a MacBook Pro with additional storage (512GB SSD, for example), and split the storage in order to be able to install Windows using Boot Camp. That way you can get the best of both worlds, macOS and Windows. This can be rather costly, though.
  2. Depending on your interests, tertiary institution requirements and budget, you could consider getting a first or second hand laptop, and run Linux (Ubuntu, for example) on it. Just like Macs can dual-boot macOS and Windows, a PC laptop can be set up to dual-boot Windows and Linux.
  3. A desktop and laptop combination; a powerful desktop or at least one that can be easily upgraded, and a light laptop with long battery life to take notes and do everyday tasks.
  4. Two laptops, a powerful one working as a desktop replacement "workhorse" for heavy tasks and a light one as a daily driver (see above).
  • Options 3 & 4 may include a computer that you already own.
General suggestions
  • Read/watch a few independent reviews before you buy. Availability of reviews will depend on model, make, popularity, etc.
  • Recommended RAM is 8 GB minimum; for longevity purposes (and especially if you intend to to photo and video editing) 16 GB RAM is a great choice, if possible and affordable.
  • The best secondary storage combination I can think of is an SSD (240 to 512 GB) combined plus an external large capacity hard disk drive (capacity depending on your individual needs and budget).
  • Processors: Intel i5 or i7 (8th generation preferably, or 7th), AMD Ryzen 5 or 7 second generation (2000 series).
  • Make sure that you get a laptop that doesn't overheat, or at least one that lets you control its thermals, by software or BIOS*.
* Careful when managing your thermals! You may damage your hardware. Here there be dragons...

Friday, 6 October 2017

Wednesday, 4 October 2017

UML Class Diagrams in a Nutshell

...A really small nutshell.

This webpage contains a nice, short and sweet explanation and side-be-side comparison between a class diagram and its corresponding Java code. Priceless.

Source: http://pages.cs.wisc.edu/~hasti/cs302/examples/UMLdiagram.html

Tuesday, 6 June 2017

Class Relationships

Please read these two resources to have a better understanding of class relationships
For more resources on the principles of OOP and UML diagrams, click here.

OOP Principles and UML

These are my favourite explanations (so far) regarding the principles of OOP: Abstraction, Encapsulation, Inheritance and Polymorphism. They are most important to understand and remember, so study and practice them well. The links have page names (at the end of the link) that are self-explanatory.
UML provides so many tools, that it can be overwhelming. So it is always useful to narrow it down and focus on what is useful for a specific task. The following resources are on UML class diagrams. You are also recommended to look into use-case diagrams, which are great for conceptual designs.
In terms of class relationships, you should know (according to the IBO syllabus content)
  • dependency (“uses”)
  • aggregation (“has a”) and
  • inheritance (“is a”).
You may find the following links useful to revise these concepts. Just focus on what IBO requires among all the detailed information provided.

Tuesday, 25 April 2017

FDE Cycle

Fetch-Decode-Execute Cycle

Links with information about the FDE cycle, from simple & concise to deeper and more detailed:
An excellent flow chart depicting the FDE cycle (original source https://en.wikipedia.org/wiki/Instruction_cycle):


Plus a nice animation demonstrating how the fetch-decode-execute cycle works, made using Scratch:

I have also made my own, simplified version for study and revision purposes:

Monday, 24 April 2017

Sorting and Searching Algorithms

Resources, animations and videos of sorting and searching algorithms:

The following links point to videos and video channels showing animations of different sorting algorithms. More than one video is provided so that you may pick the one you understand best. You could also build your understanding from a few sources as well.
Sequential (Linear) and Binary searches:
Bubble sort:
Selection sort:
Insertion sort:

https://www.geeksforgeeks.org/comparison-among-bubble-sort-selection-sort-and-insertion-sort/

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 ...