Skip to main content

Computer Science - Senior

Course # COMP 4811

Credits 6

Prerequisites and/or Corequisites: Software Engineering

Course Description 

The Final Year Project I (FYP- I) is the first part of an engineering project that students must complete as the fulfillment of their bachelor’s degree. The software engineering project aims to solve complex engineering problems and design systems or components that integrate core computation areas and meet specified customer needs, considering public health and safety requirements as well as economic, cultural, societal, and environmental aspects of project management. Before students develop an application, they conduct research on their project using the required methodology. Students develop a proposal for the project and plan and design it. The project supervisors monitor students' continuous progress during regular meetings. Finally, students prepare a project report and present their work. This course gives students the opportunity to develop their analytical, practical, and communication skills.

Course Learning Outcomes

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

  • Apply concepts and methods of software engineering to solve complex problems
  • Develop solutions to complex software engineering problems regarding public health and safety, cultural, societal, and environmental requirements
  • Design, plan and propose a project according to user requirements
  • Identify project development methodologies appropriate for the project
  • Prepare project documentation following the principles of academic conduct

Course Assessments and Grading

Item

Weight

Project Proposal (split into several assignments)

30%

Project Draft Report

20%

Project (partial implementation 50%)

30%

Presentation

20%

Course # COMP 4051

Credits 6

Prerequisites and/or Corequisites: Prerequisites are 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 Kotlin 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 taught by Meta staff.

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 full stack development
  • Differentiate mobile apps technologies such as Google Android, Microsoft Xamarin, Apache Cordova, and Apple iOS
  • Develop Kotlin Android apps in Android Studio and install them on virtual devices and/or physical smartphones
  • Design the user interface of Kotlin Android apps employing standard elements such as Button, TextView, ImageView, etc.
  • Develop back-end part of Kotlin 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 the code optimization

Course Assessments and Grading

Item

Weight

Problem-solving sessions

39 %

Quizzes

26 %

Midterm exam

15 %

Final exam

20 %

Course # COMP 4021

Credits 6

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

Course Description

In this course, students gain a basic understanding of the way networks operate. Students learn about network components and their functions, how a network is structured, and the architectures used to create networks, including the Internet. By the end of the course, students can build simple local area networks, perform basic configurations for 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 was designed according to the Cisco Certified Network Associate program 200-301.

Course Learning Outcomes

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

  • Define Computer Networks and basic components of a network system
  • Describe soft-/hardware which makes 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 and Cisco Certified Network Associate (CCNA) certification

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 Python or C/C++ and in JavaScript.

Course Description

This course covers the creation of 2D and 3D drawings and animations using JavaScript and WebGL for display on web pages. You will learn how to use the mouse and keyboard to interact with these drawings, for example, to create and modify smooth curves. You will 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

10 %

Quizzes / In-class exercises

10 %

Midterm exam

20 %

Group Project

20 %

Final exam

40 %

Course # COMP 4072

Credits 6

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

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.
  • Understand the algorithms behind ray tracing and distributed ray tracing.

Course Assessments and Grading

Item

Weight

Attendance

10%

Homework

20%

In-class exercises

5%

Quizzes

5%

Exams

20%

Final Project

40%