A first course in software development as an engineering discipline, using a modern programming language, Language syntax. Algorithm design. Tracing...
Computer architecture and organization: CPU, cache, memory, input/output, bus structures, interrupts; computer arithmetic: integer and floating point;...
In-depth experience in the design and construction of computer programs involving data structures and different programming paradigms. Data...
Principles of event-driven systems. Review of computer organization. Assemblers and linkers. Development of embedded applications. Programming...
Designing and implementing small-scale programs as communities of collaborating objects, using a dynamically-typed or statically-typed programming...
Modular programming with a procedural language. Compilation and linking, libraries. Memory management and object lifetimes: static allocation,...
Thorough coverage of fundamental abstract collections: stacks, queues, lists, priority queues, dictionaries, sets, graphs. Data structures: review of...
Development of expertise in designing, implementing, and testing industrial-quality, reusable code through individual and team projects. Applying and...
Operating systems and databases treated from a common perspective. Management of CPU, processes, memory, files, and data. Implications of concurrency....
Computer organization: processor, memory, input/output, system bus. Number systems: binary, decimal, hexadecimal. Assembly language programming:...
Development of expertise in designing, implementing and testing maintainable, reusable software through team projects. Applying modern programming...
Introduction to software engineering principles, software development life-cycles. Modelling in software engineering. Current techniques, notations,...
Creating requirements specifications prior to designing and implementing complex software systems. Software development lifecycles, role of...
Principles underlying different kinds of programming languages (procedural, functional, logic programming) and their semantics. Overview of machinery...
Current techniques, notations, methods, processes and tools used in Requirements Engineering. Requirements elicitation, negotiation, modelling...
Techniques of operations research for decision-making in complex engineering systems. Linear programming, network models, PERT, integer programming,...
Principles and practice of a systems engineering approach to the development of software for real-time, concurrent, distributed systems. Designing to...
Signals: energy and power signals, discrete-time and continuous. Linear systems and convolution. Fourier Transform; complex Fourier series; signal...
Review of signals, linear systems and Fourier theory; signal bandwidth and spectra; digital waveform coding; introduction to analog and digital...