A webpage with a nice and detailed explanation of half and full adders:
Mostly Computer Science-related topics and resources, especially Linux and education (IB, IGCSE).
Wednesday, 22 November 2017
Monday, 30 October 2017
Technology and ethics
A very interesting article on drones... What price progress indeed.
The comments and reflection are up to you. Pros and cons as it is usual with technology.
Thursday, 12 October 2017
Friday, 6 October 2017
2's Complement
Source: https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html
Wednesday, 4 October 2017
UML Class Diagrams in a 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
Monday, 2 October 2017
Analogue vs Digital
Sunday, 10 September 2017
Get back the command prompt in Windows 10
If you've updated your Windows 10 system to the Creators Update (or newer), you may have noticed that the contextual menu (shift+right click) inside a folder has changed.
PowerShell has replaced the command prompt by default, which was an issue for me as I (still) rely heavily on the old command line interface.
The instructions I followed to fix this issue can be found at
Hope you find this as useful as I did.
Tuesday, 6 June 2017
Class Relationships
- http://creately.com/blog/diagrams/class-diagram-relationships/ focus on association, composition/aggregation (depends on your IA), multiplicity and inheritance. http://www.infoworld.com/article/3029325/application-development/exploring-association-aggregation-and-composition-in-oop.html (link title explains itself)
OOP Principles and UML
- http://codebetter.com/raymondlewallen/2005/07/19/4-major-principles-of-object-oriented-programming
- http://beginnersbook.com/2013/03/oops-in-java-encapsulation-inheritance-polymorphism-abstraction/
- http://www.javaworld.com/article/2076204/core-java/understanding-constructors.html
- http://pages.cs.wisc.edu/~hasti/cs302/examples/UMLdiagram.html
- http://etutorials.org/Programming/UML/Chapter+4.+Class+Diagrams+The+Essentials/
- http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Aggregation+and+Composition/
- http://www.uml-diagrams.org/class-diagrams-overview.html
- http://creately.com/blog/diagrams/class-diagram-relationships/
- http://www.infoworld.com/article/3029325/application-development/exploring-association-aggregation-and-composition-in-oop.html
- http://pages.cs.wisc.edu/~hasti/cs302/examples/UMLdiagram.html
- http://www.tutorialspoint.com/uml/uml_class_diagram.htm
- http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
- dependency (“uses”)
- aggregation (“has a”) and
- inheritance (“is a”).
- http://www.conceptdraw.com/How-To-Guide/uml-class-diagram-notation
- https://en.wikipedia.org/wiki/Class_diagram
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:- GCSE Bytesize (Instructions)
- The Fetch–Execute cycle and the role of registers within it (A level Computing WikiBook)
- Also known as the Instruction cycle (Wikipedia article)
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.- https://visualgo.net/ - excellent interactive animated sorting algorithms out there
- http://www.sorting-algorithms.com - sorting algorithm animations, discussed
- https://www.geeksforgeeks.org/fundamentals-of-algorithms/ self-explanatory
- http://xoax.net/comp_sci/crs/algorithms/ - concise and well illustrated videos about different algorithms.
- http://www.cs.armstrong.edu/liang/animation/ - animations on algorithms, plus data structures and other topics.
- https://www.youtube.com/user/AlgoRythmics/videos - algorithms illustrated with European traditional folk dances
- https://www.geeksforgeeks.org/linear-search/
- https://www.geeksforgeeks.org/binary-search/
- https://youtu.be/wNVCJj642n4 (Both)
- https://youtu.be/vZWfKBdSgXI (Linear search only)
- https://youtu.be/CX2CYIJLwfg (Linear search only)
- https://youtu.be/5xlIPT1FRcA (Binary search only)
- https://youtu.be/D5SrAga1pno (Binary search only)
- https://www.geeksforgeeks.org/bubble-sort
- https://www.programiz.com/dsa/bubble-sort
- https://youtu.be/yIQuKSwPlro
- https://youtu.be/UnK5ueUgc88
- https://youtu.be/y_Nuui4Qf-k
- https://youtu.be/P00xJgWzz2c
- https://www.geeksforgeeks.org/selection-sort
- https://www.programiz.com/dsa/selection-sort
- https://youtu.be/f8hXR_Hvybo
- https://youtu.be/79AB11J5BqU
- https://youtu.be/TW3_7cD9L1A
- https://youtu.be/Aq2E47uU2ao
- https://youtu.be/6nDMgr0-Yyo
- https://www.geeksforgeeks.org/insertion-sort
- https://www.programiz.com/dsa/insertion-sort
- https://youtu.be/c4BRHC7kTaQ
- https://youtu.be/JU767SDMDvA
- https://youtu.be/OGzPmgsI-pQ
- https://youtu.be/OxN2Jqb8S9s
- https://youtu.be/Fr0SmtN0IJM
https://www.geeksforgeeks.org/comparison-among-bubble-sort-selection-sort-and-insertion-sort/
Sunday, 23 April 2017
Algorithms and Abstract Data Types HL
Resources about various algorithms - Higher Level:
- http://www.algolist.net/Algorithms/ - various algorithms (sort, binary search) and programming concepts (recursion) explained
- From this link, be sure to revise the sequential and binary searches, plus the chapters on sorting algorithms and recursion (code examples are on Python, which means it's close to pseudocode, but you can run it if you have the Python 3 interpreter)
- http://introcs.cs.princeton.edu/java/40algorithms/ - an excellent chapter on Algorithms and Data Structures; there was a performance question in a recent past paper, so it may be a good idea to read 4.1 (performance) as well. Don't obsess over Tilde notation and skip memory usage as well. Our focus is to be aware of how some algorithms are more efficient than others (as you can see by their classification into their order of growth: constant, logarithmic, linear, quadratic, cubic, exponential, etc.) Stacks and Queues
Binary Search Trees
Resources about Abstract Data Types:
- http://www.webopedia.com/TERM/A/abstract-data-type.html
- http://www.csanimated.com/animation.php?t=Abstract_data_type
- http://www.csanimated.com/animation.php?t=Stack
- http://www.csanimated.com/animation.php?t=Queue
- http://www.csanimated.com/animation.php?t=Linked_list
- http://visualgo.net/en/list.html - animated ADTs (linked list implementations)
- Chapter on Linked Lists, from the same site as #2 in the previous list of links ;-)
- http://www.algolist.net/Data_structures/ - well explained and clear diagrams
- HackerRank's algorithms YoutTube playlist
- HackerRank's data structures YoutTube playlist
-
mycodeschool's YouTube playlist on data structures. Examples are in C/C++, but their explanations and diagrams are great!
2D Arrays and IB Pseudocode
Obviously, integer should be replaced by the appropriate data type.declare A as integer array of size [ROWS][COLUMNS] or declare A as integer array of size (ROWS, COLUMNS) declare A as integer array of size [5][6] declare A as integer array of size (5, 6)
IB papers may have defined it for you, or they may not ask you at all to define the size. You could define it (unknown size) as
...then you'd use it likedeclare A as integer array of size [ ][ ]
I'd recommend going for the [ ][ ] style as it'd be more consistent with the single dimensional arrays described in the IB pseudocode documents mentioned above.loop ROW from 0 to 5 loop COL from 0 to 6 output A[ROW][COL] or output A(ROW, COL) end loop end loop
Arrays and Java
- http://javabeginnerstutorial.com/core-java-tutorial/java-array-tutorial/ to start with
- http://www.homeandlearn.co.uk/java/java_arrays.html excellent site, from start to end; includes 2D arrays and much more
- http://introcs.cs.princeton.edu/java/14array/ great resource with many examples, but more complex
- Also, it is highly recommended to study Big Java Late Objects (Horstmann, 2013) - chapter 6: Arrays and Array Lists
- http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm
- http://math.hws.edu/javanotes/c7/s5.html
Tuesday, 28 March 2017
Encryption
- http://www.professormesser.com/security-plus/sy0-401/symmetric-vs-asymmetric-encryption-2/
- http://itchyfish.com/advantages-and-disadvantages-of-symmetric-and-asymmetric-key-encryption-methods/
Wednesday, 22 March 2017
Network and security
Also, links to how stuff work's networking and security.
- Here is a great Networking Tutorial for beginners with pretty much all computer networking essentials covered.
- http://www.computerhope.com/jargon/network.htm
- http://computer.howstuffworks.com/computer-networking-channel.htm
- http://computer.howstuffworks.com/security-channel.htm
- http://www.webopedia.com/quick_ref/OSI_Layers.asp
- http://searchnetworking.techtarget.com/definition/OSI
- http://searchnetworking.techtarget.com/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2
- http://www.webopedia.com/DidYouKnow/Computer_Science/WEP_WPA_wireless_security.asp
Monday, 20 March 2017
Case Study 2017
- https://news.developer.nvidia.com/share-your-science-predicting-healthcare-outcomes-with-artificial-intelligence/
- https://news.developer.nvidia.com/share-your-science-microsoft-developing-applications-for-the-visually-impaired/
- https://news.developer.nvidia.com/share-your-science-the-impact-of-deep-learning-on-radiology/
- https://devblogs.nvidia.com/parallelforall/nvidia-digits-alzheimers-disease-prediction/
- https://news.developer.nvidia.com/share-your-science-combating-cancer-with-deep-learning/
- https://news.developer.nvidia.com/google-uses-ai-to-diagnose-breast-cancer/
- https://news.developer.nvidia.com/ai-based-mobile-app-tests-for-parkinsons-in-minutes/
- https://news.developer.nvidia.com/share-your-science-advanced-retina-assessment-and-diagnostic-services/
- https://news.developer.nvidia.com/identify-rare-diseases-with-a-selfie/
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...