top of page
Software Engineering Courses
A study of software design topics including: abstraction, modularity, design patterns, software modelling, architectural patterns.
A study of topics related to architecting software systems: database design, methods and technologies for developing web-based software systems, and architecting systems for non-functional software properties.
Covers Machine Learning, which focuses on developing machine learning applications, specifically in the engineering domain. Covers basic techniques for supervised and unsupervised learning, with the emphasis on the applied aspects of the techniques.
Sources and characteristics of large scale data, i.e., "big data", large scale data analysis, benefits of large scale data analysis to various industry domains, scalable data analysis frameworks, large scale data algorithms in selected application domains.
Advanced topics on principles of system analysis, system thinking, requirements engineering, essential elements of quality software design, design patterns, and system-level software analysis.
An introductory course in programming with an emphasis on data engineering. Topics include: basic data structures and algorithms; loops and iterations; files and I/O, functions, classes, modules, and packages; strings and text manipulation; data wrangling; network and web programming; data visualization.
A fundamental study of software design and development topics for engineering students. Topics include: fundamental programming constructs; key features of an object-oriented programming language, especially inheritance and polymorphism, elements of object-oriented design; programming and application of common data structures; strategies and tools for testing and debugging.
A fundamental study of data structures and algorithms for engineering students. Topics include arrays, lists, stacks, queues, trees, hash tables, graphs, algorithms for searching and sorting, and introduction to algorithm analysis.
A team design project in either software development or software best practice and experience.
A team design project in either software development or software best practice and experience.
Principles of software dependability techniques, and techniques to improve and predict software reliability.
Types of data mining: classification, clustering, association, prediction. Processes: data preparation, model building. Techniques: decision tree, neural network, evolutionary computing, Bayesian network. Applications: multi-media, text and web mining.
Definitions, contexts, language, dynamics, historical and contemporary examples of Engineering Innovation and Entrepreneurship; innovation process from a multidisciplinary perspective; Engineering inventive processes.
bottom of page