51³Ô¹Ï

AUCA/ Academics/ Academic Divisions / Schools/ Division of Applied Sciences/ Software Engineering Department/ BA in Software Engineering Program/ COURSES/ ELECTIVE COURSES

COURSE DESCRIPTIONS

Ìý

3D Design and Animation (JMC/TCMA/COM-336)

This course introduces the principles and techniques of three-dimensional modeling, texturing, lighting, and animation. Students learn to use professional 3D software tools to create digital models, environments, and animations for film, games, and interactive media. Topics include modeling with polygons and NURBS, materials and shading, keyframe and procedural animation, rigging, and rendering. Emphasis is placed on storytelling through motion and the integration of artistic and technical skills. Final projects demonstrate the full 3D production workflow.

Ìý

Software Project Management (COM-341)

This course explores the methodologies, tools, and best practices for managing software development projects. Students learn about project life cycles, agile and waterfall methodologies, risk management, cost estimation, scheduling, and quality assurance. The course emphasizes leadership, teamwork, and communication skills essential for managing technical teams. Students use modern project management tools such as Jira or Trello to plan, monitor, and evaluate software projects.

Ìý

Algorithm Analysis (COM-324.1)

This course provides a rigorous study of algorithm efficiency and computational complexity. Students learn techniques for analyzing and comparing algorithm performance using asymptotic notations, recurrence relations, and empirical methods. Topics include advanced data structures, graph algorithms, optimization, NP-completeness, and approximation algorithms. The course combines theoretical analysis with programming assignments that test algorithmic efficiency on practical problems.

Ìý

Applied Autonomous Robotics (COM-255)

An introduction to the design and implementation of autonomous robotic systems. Topics include sensors, actuators, motion control, robot kinematics, and behavior-based programming. Students learn how robots perceive and interact with their environment through real or simulated robotic platforms. Emphasis is placed on practical applications such as navigation, mapping, and obstacle avoidance using technologies like ROS (Robot Operating System) and embedded controllers.

Ìý

Introduction to Artificial Intelligence (COM-214)

This course introduces the fundamental concepts and techniques of artificial intelligence (AI). Topics include problem solving, search algorithms, knowledge representation, reasoning, planning, and basic machine learning methods. Students explore how AI systems can perform tasks such as game playing, natural language understanding, and decision-making. The course combines theoretical foundations with programming exercises and small-scale projects.

Ìý

Computer Vision (COM-389)

This course focuses on enabling computers to interpret and process visual information from the world. Topics include image formation, filtering, feature extraction, object detection, segmentation, motion analysis, and 3D reconstruction. Students use modern computer vision libraries (e.g., OpenCV) and learn about deep learning approaches for visual recognition. Applications include robotics, medical imaging, and autonomous systems.

Ìý

Data Science (COM/MATH-295)

An introduction to the principles and practices of data science, integrating statistics, programming, and data visualization. Students learn techniques for data collection, cleaning, and analysis using tools such as Python, R, and SQL. Topics include exploratory data analysis, regression, classification, and basic machine learning. Emphasis is placed on understanding data-driven decision-making and communicating results effectively through visualization and reports.

Ìý

Database Design (COM-326.1)

This course provides an in-depth exploration of database modeling and design principles. Students learn to analyze system requirements and translate them into conceptual, logical, and physical database designs. Topics include normalization, entity-relationship modeling, indexing, and query optimization. Practical projects involve designing and implementing relational databases using SQL and a modern DBMS. The course emphasizes scalability, performance tuning, and data integrity.

Ìý

Digital Integrated Circuit Design (COM-333)

This course introduces students to the design and implementation of digital integrated circuits. Topics include logic gates, combinational and sequential circuits, timing analysis, and hardware description languages (HDL). Students design, simulate, and test digital systems using CAD tools and FPGA platforms. The course bridges theoretical digital logic with real-world hardware applications, preparing students for careers in embedded systems and electronics engineering.

Ìý

Game Development (COM-299)

A hands-on introduction to the principles of interactive game design and development. Topics include game engines, physics simulation, artificial intelligence in games, level design, and user experience. Students work in teams to design and implement playable games using modern frameworks such as Unity or Unreal Engine. The course emphasizes creativity, teamwork, and iterative design through prototyping and playtesting.

Ìý

Information Security (COM-424.1)

This course introduces the fundamental concepts of cybersecurity, including data protection, network security, encryption, and access control. Students learn about threats, vulnerabilities, and defense mechanisms across various computing systems. Topics include authentication, cryptographic protocols, firewalls, and intrusion detection. Through practical labs, students analyze and mitigate security risks in simulated environments.

Ìý

Information Security II (COM-425.1)

A continuation of Information Security I, this course covers advanced topics in network defense, ethical hacking, digital forensics, and security management. Students learn penetration testing methodologies, vulnerability assessment, and secure system design. The course emphasizes hands-on exercises using professional cybersecurity tools and focuses on compliance, incident response, and ethical considerations in security practice.

Ìý

Introduction to Web Programming (COM-388.1)

This course introduces web development technologies and the principles of creating interactive web applications. Topics include HTML, CSS, JavaScript, client-server architecture, and HTTP communication. Students build dynamic websites and learn basic server-side scripting using frameworks such as Node.js or Flask. The course emphasizes responsive design, usability, and web standards.

Ìý

Introduction to Automated Deduction (COM-270)

An introduction to the theory and implementation of automated reasoning systems. Topics include propositional and predicate logic, theorem proving, unification, resolution methods, and logic programming. Students study how computers can perform logical inference and build basic proof engines. Applications include verification, artificial intelligence, and knowledge representation.

Ìý

iOS Application Development (COM-256)

This course introduces the design and development of mobile applications for Apple’s iOS platform. Students learn the Swift programming language, user interface design using SwiftUI, and app lifecycle management. Topics include data persistence, networking, and integration with device sensors. Students complete a capstone project by developing and deploying a functional mobile application.

Ìý

Machine Learning (COM-474)

An advanced introduction to machine learning algorithms and their applications. Topics include supervised and unsupervised learning, model evaluation, feature engineering, decision trees, neural networks, and ensemble methods. Students gain experience implementing algorithms using Python libraries such as Scikit-learn and TensorFlow. The course emphasizes both the theoretical foundations and practical use of machine learning in data-driven systems.

Ìý

Management of Information Systems for SFW (COM-302)

This course examines the role of information systems in modern organizations. Students learn how information technology supports business processes, decision-making, and strategic goals. Topics include IT infrastructure, enterprise systems, data management, and project management. The course also discusses emerging technologies, digital transformation, and ethical issues related to information systems management.

Ìý

Mobile and IoT Development (COM-254)

This course explores the development of applications for mobile and Internet of Things (IoT) platforms. Topics include embedded programming, sensor integration, wireless communication, and cloud-based data exchange. Students build mobile apps that interact with IoT devices and services. The course emphasizes design for performance, scalability, and energy efficiency in distributed systems.

Ìý

Modern Programming Languages (COM-297)

A comparative study of modern programming languages and paradigms. Students explore syntax, semantics, and design philosophies of languages such as Python, JavaScript, Rust, Go, and functional languages like Haskell. Topics include type systems, concurrency, memory management, and language translation. The course emphasizes writing clean, efficient, and idiomatic code across multiple programming environments.

Ìý

Neural Networks and Deep Learning (COM-312)

This course focuses on the theory and application of neural networks and deep learning architectures. Topics include perceptrons, backpropagation, convolutional neural networks (CNNs), recurrent neural networks (RNNs), and generative models. Students implement neural networks using frameworks such as TensorFlow or PyTorch and apply them to tasks like image recognition and natural language processing. The course combines mathematical rigor with hands-on experimentation.

Ìý

Parallel Programming (COM-451.1)

This course covers concepts and techniques for programming in parallel and distributed computing environments. Topics include concurrency, synchronization, shared-memory and message-passing models, GPU programming, and performance optimization. Students learn to design efficient parallel algorithms using frameworks such as OpenMP, MPI, and CUDA. The course emphasizes scalability and the challenges of parallel computation on modern hardware.

Ìý

Programming Languages (COM-371.1)

An in-depth study of programming language design, structure, and implementation. Topics include syntax, semantics, parsing, type systems, scoping, and memory management. Students gain experience writing interpreters or compilers for simple languages. The course explores various paradigms, including procedural, functional, and object-oriented programming, and discusses the trade-offs between them.

Ìý

System Administration (COM-463.1)

This course provides the knowledge and skills required to manage and maintain computer systems and networks. Topics include user and file management, system security, backups, performance tuning, and automation with shell scripting. Students gain practical experience configuring servers, managing operating systems (Linux/Windows), and troubleshooting issues. The course prepares students for real-world system administration and IT operations roles.

Ìý

Theory of Computation (COM-332.1)

This course examines the mathematical foundations of computing and formal languages. Topics include finite automata, regular expressions, context-free grammars, Turing machines, decidability, and computational complexity. Students learn to model and analyze computation from a theoretical perspective, gaining insight into the limits of what computers can and cannot do. The course provides essential background for advanced topics such as compiler design and algorithm theory.

Ìý