Machine Learning SE Spring 2021
Machine learning, often called artificial intelligence (AI), is one of the most exciting areas of technology at the moment. This is an undergraduate course in which the students will be able to learn:
1) The basics of Machine Learning
2)The concepts of Machine learning in computer science and Software Engineering.
3) The difference between supervised and unsupervised learning.
3) The difference between machine learning and deep learning.
4) To design and evaluate machine and deep learning algorithms.
Operating System Lab
The goal of this Lab is to have students understand and appreciate the principles in the design and implementation of operating systems software. Introduction to operating systems concepts, process management, memory management, file systems, virtualization, and distributed operating systems. The laboratory exercises will include familiarization with UNIX system calls for process management and inter-process communication; Experiments on process scheduling and other operating system tasks through simulation/implementation. Finally, the students would require to apply the operating system concepts by experimenting on either xv6/minix operating systems.
Object Oriented Programming Lab (Spring 2021)
This course has been compiled to assist the conduct of practical classes for CS
151L “Object
Oriented
Programming”. Practical work relevant to this course aims at introducing the
basic as well as advance concepts of objects oriented
programming using Python language such as class, object, inheritance, multiple inheritance, polymorphism, function and operator
overloading.
Object Oriented Software Engineering (Spring 2021)
Introduction to Software Engineering, Modeling with
UML, Project Organization and Communication, Requirements Elicitation,
Analyses, System Design: Decomposing the System, System Design: Addressing
Design Goals, Object Design: Reusing Pattern Solutions, Object Design:
Specifying Interfaces, Mapping Models to Code, Testing, Rationale Management,
Configuration Management, Project Management, Software Life Cycle,
Methodologies: Putting It All Together.
Object Oriented Programming (Spring 2021)
This subject introduces the student to
object-oriented programming. The student learns to build reusable objects,
encapsulate data and logic within a class, inherit one class from another and
implement polymorphism. This subject
uses the Python programming language exclusively and establishes a foundation
for learning system analysis and design.
Introduction to Software Engineering
Introduction to Software Engineering Course cover Nature of
Software, Overview of
Software Engineering, Professional
software
development, Software engineering practice, Software process structure, Software process models, Agile software Development, Agile process
models, Agile development techniques, Requirements engineering process,
Functional and non-functional requirements, Context models, Interaction models, Structural models, behavioral models, model driven engineering, Architectural design, Design and implementation, UML diagrams, Design patterns, Software testing and quality assurance, Software evolution, Project management and project planning, configuration management, Software Process improvement.
Global Software Engineering
The course of Global Software Engineering is based on software development in general and professional software development in particular. The course is planned to start with basic concepts about this field so that the future software engineers may know about the history of their field; with its pros and cons, while working in it. After discussing this in the first week, the course takes pace and moves towards global software development techniques including the relevant issues, outsourcing, partnership and subsidiary based software development. Furthermore, the development process models are discussed to give a step-by-step outline of the GSD procedure. The course then covers the essentially important topic of project management in the context of GSE. This is discussed with all the divergent topics inclusive, till the mid-term exam.
After the mid-exams, the course moves forward to advanced topics and includes highlights on risk analysis, risk management and Decision Analysis Resolution (DAR). It then focuses on the GSD cost estimation and cost quality assurance techniques. Having mastered the concepts of different quality assurance standards, the students are finally led towards the challenges in this area of software engineering, which are discussed in detail and the course is winded up in the final weeks with discussion on challenges like negotiation management, and some light is thrown on presenting a GSD project and its report writing.
Digital Image Processing Fall 2020
This course provides fundamental concepts and techniques of digital image processing and its applications in computer vision, biomedical images, robotics etc. The course will be focused on 1) how to efficiently represent and process image/video signals, and 2) how to deliver image/video signals over networks. Important topics to be covered include: image acquisition and display using digital devices, properties of human visual perception, sampling and quantization, image enhancement, image restoration, two-dimensional Fourier transforms, linear and nonlinear filtering, morphological operations, noise removal, image de-blurring, edge detection, image registration and geometric transformation, image/video compression, object recognition and image understanding.
Final Year Project
The course is designed to achieve the following objectives:
• Develop a large software project for a community, university, or private enterprise
• Understand the significance of teamwork in building software systems
• Apply effective project management techniques
• Utilize a variety of techniques to capture and understand user requirements
• Utilize design techniques appropriate to project assigned
• Develop and implement strategic test plans
• Develop user and system documentation
Management Information System
A management information system is an information system used for decision-making, and for the coordination, control, analysis, and visualization of information in an organization. The study of the management information systems involves people, processes and technology in an organizational context.
Data Structures & Alogrithms
At the end of the course the students will be able to:
1. Implement various Data Structures and their Algorithms, and apply them in implementing simple applications.
2. Analyze simple algorithms and determine their complexities.
3. Apply the Knowledge of Data Structures to other Application Domains.
4. Design New Data Structures and Algorithms to solve problems.
Software Project Managment
Software project management refers to the branch of project management dedicated to the planning, scheduling, resource allocation, execution, tracking and delivery of software and web projects. Project management in software engineering is distinct from traditional project management in that software projects have a unique lifecycle process that requires multiple rounds of testing, updating, and customer feedback. Most IT-related projects are managed in the agile style, in order to keep up with the increasing pace of business, and iterate based on customer and stakeholder feedback. A Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product.
Programming Fundamentals Lab (Fall 2020)
The objective of course is to introduce a
disciplined approach to problem solving methods and algorithm development using
structured programming methodology. The aim is to do practical work related to Python.
Software Requirements Engineering
The course will introduce the basics of requirements
engineering. It will discuss the issues, processes, and techniques in
requirements engineering. This course will give students a number of best
practices so that they can improve the quality of the requirements elicitation
and development process while developing software systems.
Software Architecture And Design-SE5th-Fall2020-UOM
Introduction to the discipline of design, generic design processes, and design management; software product design, including analysis activities such as needs elicitation and documentation, requirements development activities such as requirements specification and validation, prototyping, and use case modeling; engineering design analysis, including conceptual modeling and both architectural and detailed design; a survey of patterns in software design, including architectural styles and common mid-level design patterns.
Programming Fundamentals (Fall 2020)
The objective of course is to introduce a
disciplined approach to problem solving methods and algorithm development using
structured programming methodology. The aim is to teach the syntax and
vocabulary of a modern programming language like Python.