Fundamentals for Software Engineers (Course No. 10)

Algorithms, Numeral Systems and Digital Concepts  

Fundamentals for Software Engineers

We know from experience: not everyone who knows a programming language is a computer scientist. Dealing with different types of algorithms, the use various numeral systems and Boolean concepts of digital technology are a must. Especially in the development of embedded systems, when writing software for microcontrollers, or in the implementation of FPGA projects using VHDL or Verilog, these issues play an important role.

This course provides the relevant fundamentals for computer scientists. Supported by practical examples and exercises, participants learn about advantages and disadvantages of linear and recursive algorithms, about pitfalls when using finite numbers, about applications of digital technology in the realisation of state machine in software, and a lot more.


Date: on demand
Duration of the course: 2 days
Location: Dübendorf (near Zürich, Switzerland)
Language: German (English on request)
Price: CHF 1400, incl. documentation and lunch


The course is ideal for training as well as for brush up. Lots of practice-relevant examples illustrate the theoretical background. Participants will be able to directly apply the course subjects in everyday's work.


Fundamentals for Software Engineers
  • Algorithms and algorithmic machines.
  • Microprocessor as algorithmic machine,
  • Notation of algorithms.
  • Linear and recursive algorithms.
  • Numeral Systems (decadic, binary, hexadecimal, octal).
  • Representation of negative numbers, complements.
  • Computations in numeral systems.
  • Finite numbers on microprocessors.
  • Common codes (Gray, ASCII, Unicode, etc.).
  • Boolean operators.
  • Boolean algebra and Karnaugh maps.
  • State machines.

Keywords are: algorithm, notation, formal languages, programming languages, recursion, number system, decimal, binary, hexadecimal, octal, complement, two's complement, addition, subtraction, multiplication, finite numbers, number circle, carry, borrow, overflow, registers, microprocessor, microcomputer system, BCD code, Gray code, ASCII code, Unicode, Boolean operators, NOT, AND, OR, XOR, Boolean algebra, reduction, Karnaugh map, Flip-Flop, state machines, UML, etc.


Basic experience in software development is an advantage. Computer exercises are prepared for the C and Java languages, but can also be solved in any other programming language.


Please contact us if you are interested. Courses take place from one participant.

Please note: If you register more than one person at the same time for the same course we grant a 15 % discount for the second person and 20 % for the third and further individuals. The number of participants is limited. Registrations are processed in chronological order. If you cancel your registration until two weeks before the course starts, we will refund your full payment. For cancellations until three working days before the course starts we refund half of your payment. We reserve the right to cancel courses. In this case, we will refund fully already payed fees.