Logic Gates

A Logic Gate Simulator (courtesy of JOSH TYNJALA) is used to demonstrate AND, OR, NOT, NAND and NOR gates. There are exercises that will lead you from Truth Tables for individual logic gates, through equivalent combinations of gates to a half and full adder. The logic exercises can be downloaded here.

Python

Ann Dawson (anne.dawson@gmail.com) is to be thanked for providing some extremely thorough examples of Python 3 programs that not only demonstrate the syntax of instructions but they also illustrate various structures.

If it's Python exercises that you're after then here are some that will take you through variable types, While and For loops and If..Then..Else.

AppInventor

App Inventor lets you develop applications for Android phones using a web browser and either a connected phone or emulator. The App Inventor servers store your work and help you keep track of your projects.

The HelloPurr App is AppInventor's equivalent of 'Hello World' and a simplified set of notes and follow-up exercises are available here.

Secondary Storage - Common Craft

 

Common Craft videos are crudely produced, short, films that can be used to describe how something works. Here's an example of a specification for small group work to produce a Common Craft Video about Secondary Storage.  Some useful notes on how to create a Common Craft Style Video are here.

 

Networking

Notes containing descriptions of networking components and how they work together to create a computer network need to be put back together because a 'packet' of key words was lost in transmission.

 

Useful notes

Pygame

Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.

A series of excellent tutorials written by Lorenzo E. Danielsson, that have been updated for Python 3.3, can be found here:

Tutorial 1, Tutorial 2, Tutorial 3, Tutorial 4, Tutorial 5, Tutorial 6, Tutorial 7, Tutorial 8, Tutorial 9

For the last question in the exercises of Tutorial 2 you may need a hint sheet.

Tuples, Lists and Dictionaries

Example of Dictionary

Error Handling

Unfortunately errors are a part of programming that cannot be avoided and they must be taken extremely seriously. The first step in avoiding errors is to be aware of them, and their differing types, and then employ strategies for eliminating them or handling any exceptions that can be predicted but not avoided during execution. Complete this sheet of notes in your own words to summarise error handling.

Here is an example of a Trace Table. Trace table example for Python 'Months of The Year'.

Python I/O Methods

Creating text files and reading from text files can be seen on a YouTube video (the URL is in the header of the example Python program) and there are some notes here.

System Development Life Cycle

Software life cycle models describe phases of the software cycle and
the order in which those phases are executed.  There are lots of
models, and many companies adopt their own, but all have very similar
patterns.

There are various Software development models or methodologies. They are as follows:

  1. Waterfall model
  2. V model
  3. Incremental model
  4. RAD model
  5. Agile model
  6. Iterative model
  7. Spiral model
  8. Some of these models are sumarised here and here are the "group's" notes: Agile, V-Model, Spiral, Waterfall and Incremental.

Flowcharts and Psuedocode

A book that does exactly what it says in the title, which is written in easily digestible chapters, is 'Problem Solving with Flowcharts and a Little Flavor of Programming with Python' (By Achla Agarwal, Krishna Agarwal, Laura Goadrich, and Mark Goadrich - ISBN 9780557276349)

This book is also available as a pdf download from lulu.com

  • The book is written for students of any age who want to learn the concepts to enable them to program successfully. Programming is an art and this text will teach you the techniques and underlying logic that will form the foundation of future coding skills, no matter what language you choose to program in. Because there are a variety of programming languages that are changing and evolving, it is important to create a solid skill-set that is adaptable to any programming language you choose to learn.
  • Chapter 1 and chapter 3 are available on the website and can be seen here by following these links. A pdf version of the book is available for viewing here.

    The full list of chapters is:

    • Chapter 1 - Techniques for Solving Problems
    • Chapter 2 - Storing Data
    • Chapter 3 - Flowcharts, Pseudocode and Python
    • Chapter 4 - Input and Output
    • Chapter 5 - Boolean Logic
    • Chapter 6 - Selection Structures
    • Chapter 7 - Nested If-Then-Else and Case Statements
    • Chapter 8 - Repetition Structures
    • Chapter 9 - Nested Loops
    • Chapter 10 - Functions
    • Chapter 11 - Arrays
    • Chapter 12 - File I/O
    • Appendix A - Installing Python

    Accompanying the book are a number of very simple quizzes:

  • Some more examples of psuedocode, unrelated to the above book, are here.