Operating systems Software and programming theory mathematics