Skip to main content

Computer Science - Senior

Course # COMP 4811

Credits 6

Prerequisites and/or Corequisites: Software Engineering

Course Description 

Final Year Project I (FYP-I) is the first stage of a two-part capstone project required for the completion of the bachelor’s degree in software engineering. This course provides students with the opportunity to initiate and plan a substantial engineering project that reflects the current software engineering landscape and industry practices. Students identify and define a project, conduct background research and literature review, explore methodologies, and develop a formal project proposal and design. Emphasis is placed on the use of modern project management techniques such as agile planning, iterative development, and collaborative tools for version control and progress tracking.

Students are encouraged to incorporate artificial intelligence (AI) into their project scope where relevant, exploring its role in software design, automation, and problem-solving. They also integrate sustainable and environmentally responsible practices, considering energy efficiency, responsible coding practices, and long-term societal impact. Throughout the semester, students work under supervision to refine their ideas, develop partial prototypes or system components, and prepare professional documentation and presentations. FYP-I lays the foundation for Final Year Project II (FYP-II), in which students complete the full implementation, testing, and evaluation of their projects.

Course Learning Outcomes

Upon the completion of this course, students will be able to:

  • Identify, define, and scope a complex software engineering project that addresses real-world challenges, reflecting the current software engineering landscape.
  • Apply modern project management techniques, including agile methodologies, iterative planning, and collaborative tools, to organize and monitor project progress.
  • Conduct a structured literature review and background research to support the design and justification of the proposed project.
  • Develop a detailed project proposal and initial system design that incorporates user requirements, industry standards, and, where appropriate, artificial intelligence (AI) components.
  • Integrate sustainable and environmentally responsible software engineering practices into project planning and early development stages.
  • Prepare professional project documentation and communicate project ideas and progress effectively through written reports, presentations, and discussions with supervisors.

Course Assessments and Grading

Item

Weight

Project Proposal

25%

Project Presentation

20%

Prototype Demo

30%

Project Report

25%

Course # COMP 4021

Credits 6

Prerequisites and/or Corequisites:The prerequisite is Computer Architecture. Corequisites are the Internet of Things and Information Security.

Course Description

In this course, students gain a fundamental understanding of how networks operate. Students learn about the components of networks, their functions, the structure of networks, and architectures used to create networks, including the Internet. By the end of the course, students can build simple local area networks, perform basic configurations of routers and switches, and implement IP addressing schemes. Students are encouraged to design, implement, and evaluate small-scale software projects in teams of up to three people. This course is designed according to the Cisco Certified Network Associate program 200-301 and IBM DevSecOps best practices.

Course Learning Outcomes

Upon the completion of the course, students will be able to:

  • Define Computer Networks and the basic components of a network system
  • Describe soft-/hardware that make networks efficient and secure
  • Design simple local area networks
  • Define the differences between protocols, software, and network architectures to select the soft-/hardware configuration
  • Describe how a local area network is installed with appropriate topology and protocols in accordance with specific criteria (reliability, performance, security, budget, etc.)
  • Imitate modern computer networks with Cisco Packet Tracer in the context of real-life projects, Cisco Certified Network Associate (CCNA) certification, and IBM DevSecOps best practices

Course Assessments and Grading

Item

Weight

Problem-solving sessions

39 %

Quizzes

26 %

Midterm exam

15 %

Final exam

20 %

Course # COMP 4071

Credits 6

Prerequisites and/or Corequisites: Mathematics: Linear algebra, including vectors and matrices. Computer Science: Programming ability in JavaScript.

Course Description

This course teaches you how to create 2D and 3D drawings and animations, using JavaScript and WebGL, so that they can be displayed on web pages. You learn how to use the mouse and keyboard to interact with these drawings, for example, to create and modify smooth curves. You also implement in software some of the basic algorithms that WebGL performs, including line drawing, triangle drawing, and Z-buffer visibility tests.

Course Learning Outcomes

Upon the completion of this course, you will be able to:

  • Draw lines and triangles using WebGL.
  • Draw lines and triangles with your own software.
  • Write GLSL vertex and fragment programs for different sorts of shading and highlights.
  • Produce animated displays that change and move.
  • Interact with these displays using the mouse or touchpad.
  • Design smooth curves using multiple cubic Bezier curve segments.
  • Use hierarchical modeling to move segmented skeletons of characters or robots.
  • Use JavaScript and WebGL to create interactive and/or animated web pages.

Course Assessments and Grading

Item

Weight

Homework assignments

40%

Quizzes

10%

Midterm exam

15%

Final Project

20%

In-class exercises

10%

Attendance

5%

Course # COMP 4051

Credits 6

Prerequisites and/or Corequisites: Object-Oriented Programming and Software Engineering.

Course Description

Mobile computing devices have become ubiquitous in our communities and influence individuals, organizations, and society from both a technical and social perspectives. The course Mobile App Development provides a broad overview of mobile app development technologies, from the process of building a mobile app in Android Studio to real-life projects. Students learn the basics of the Java programming language in the Android back-end part, how to use libraries to build apps with a proper look and several activities, and how to design the front-end part. Students are encouraged to design, implement, and evaluate small-scale software projects in teams of up to three people. This course was designed according to the Meta Android Developer Professional Certificate program and IBM DevSecOps best practices.

Course Learning Outcomes

Upon the completion of the course, students will be able to:

  • Describe the development of mobile apps on front-end and back-end parts in the context of the full stack development, Meta Android Developer Professional Certificate program, and IBM DevSecOps best practices
  • Differentiate mobile app technologies such as Google Android, Microsoft Xamarin, Apache Cordova, and Apple iOS
  • Develop Java Android apps in Android Studio and install them on virtual devices and/or physical smartphones
  • Design the user interface of Java Android apps employing standard elements such as Button, TextView, ImageView, etc.
  • Develop the back-end part of Java Android apps using standard features of the Kotlin programming language
  • Work in teams to solve real-life problems based on the selection of the most appropriate algorithm(s) and code optimization

Course Assessments and Grading

Item

Weight

Problem-solving sessions

39 %

Quizzes

26 %

Midterm exam

15 %

Final exam

20 %

Course # COMP 4072

Credits 6

Prerequisites and/or Corequisites: Computer Graphics (can be concurrently), Statistics, Calculus, Linear Algebra

Course Description

The course focuses on two topics, creating computer animation using Blender, and generating photorealistic images using ray tracing.  The first 7 weeks will cover geometric modelling, computer animation, shading, texturing, and lighting with the Blender computer animation package.

The last 7 weeks’ lecture will cover distributed ray tracing, which can create special effects like recursive reflections in mirror surfaces, depth of field, motion blur, and “global illumination” which simulates multiple light bounces on the scene surfaces. Students will also work on their final animation projects in the last 7 weeks.

There will be a final animation team project, to demonstrate skills with Blender in a creative setting, due during the last class week of the semester.

Course Learning Outcomes

Upon the completion of the course, students will be able to:

  • Use surface-based geometric modelling tools for computer aided design.
  • Build a character with a skin and skeleton, using Blender.
  • Create an animation of a scene that changes in time, with lighting and camera motion.
  • Understand the mathematics behind geometric modelling (to be evaluated by quizzes and exams).
  • Understand the algorithms behind ray tracing and distributed ray tracing (to be evaluated by quizzes and exams).

Course Assessments and Grading

Item

Weight

Attendance

10%

Homework

25%

In-class exercises

10%

Quizzes

5%

Exams

20%

Final Project

30%