- Academic Programs
- Our Department
- Student Life
- Alumni & Industry
Paul Davies is a Senior Instructor within the Department of Electrical and Computer Engineering at UBC. His interests lie in the design and development of safety critical, real-time systems, software engineering principles, computer architecture and the application of FPGA technologies for use with soft-core processors. His teaching interests include, programming (assembler/C/C++), Digital systems design, Concurrent and Multi-threaded software, real-time operating systems, software engineering, UML, microcomputer systems design and computer architecture.
Paul Davies is the author of the "Indispensible Guide to C" and has acted as reviewer for several books and articles on C/C++ programming. In addition, he has been employed as both a hardware design engineer and as a software consultant for a number of embedded real-time projects and has developed and delivered several professional software training courses run for the benefit of industry. He is a Professional Engineer (P.Eng), a Chartered Engineer (C.Eng) and a Member of the Institute of Engineering Technology (MIET).
Introduction to Microcomputers
Boolean algebra; combinational and sequential circuits; organization and operation of microcomputers, memory addressing modes, representation of information, instruction sets, machine and assembly language programming, systems programs, I/O structures, I/O interfacing and I/O programming, introduction to digital system design using microcomputers. [4-2-0] Course Overview This course is a combination of two previous courses - EECE 256 and EECE 259
System Software Engineering
Operating systems principles, real-time systems, principles of concurrent and multi-threaded programming, information structures, introduction to object oriented analysis, design, and modeling using UML, testing of software systems. Course Objective There is a need for Electrical and other Non-Software Engineering disciplines to have an appreciation of the role of Software Engineering and Operating System Principles in the design and development of complex software based systems, particularly Real Time, Embedded Computer or Mechatronic type systems.
Digital Systems and Microcomputers
Data representation in digital computers; boolean algebra; the design and optimization and implementation of combinatorial and sequential circuits; modern digital circuit technologies; memory and programmable logic devices; organization and operation of microcomputers; data/address bus organization; input-output interfacing. Credit will be given for only one of EECE 355 or EECE 259, and EECE 355 or EECE 256.
Software Engineering Capstone Design Project
Design, analysis, and implementation of solutions in response to a real world software engineering problem. Projects are provided by industry, research laboratories, or other suitable entities. Includes coverage of topics such as project management. Students must have fourth year standing and be registered in the Software Engineering Option to take this course.
Microcomputer Systems Design
Microprocessor and system buses; advanced I/O methods; priority interrupts; event/exception handling; serial I/O; computer networking; memory system design; interaction of hardware and software, microprocessor comparison, testability issues, safety critical systems. [3-2-0]