Skip to main content

Computer Science - Senior

COURSE #: DMNS 4811

Course Description

The Final Year Project I (FYP- I) is the first part of an engineering project that students must complete as fulfillment for 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

By the completion of the course, the students should 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
  • Communicate the ideas and progress of the project in a technical report and presentation.
  • Communicate project ideas and current work achievements through technical report and presentation.

Course assessment and Grading

Item

Weight

Project Proposal (split into 6 assignments)

30%

Project Draft Report

20%

Project (partial implementation 50%)

30%

Presentation

20%

COURSE #: COMP 4051

Course Description

Mobile computing devices have become ubiquitous in our communities and influence individuals, organizations, and society from both a technical and social sciences perspective. 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 like Augmented Reality and DBMS with Firebase. Students learn the basics of the Java for Android programming language in the back-end part, how to use libraries to build apps with a proper look and several activities, and how to design and handle the front-end part. Students are encouraged to design, implement, and evaluate small-scale software projects in teams of up to three people.

Course Learning Outcomes

Upon the successful completion of this 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 Java Android apps in Android Studio and install them on virtual devices or smartphones
  • Design the user interface of Java Android apps employing standard elements such as Button, TextView, ImageView, etc.
  • Develop back-end part of Java Android apps using standard features of Java programming language such as numeric operations using class Math, Java maps, Java concurrency, file I/O, and the smartphone internal storage
  • Work with the camera via Android CameraX API to implement image processing algorithms
  • 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 (13 sessions)

26

An assignment on the installation of Android Studio and virtual device(s) on students’ laptops/desktop computers

2

Quizzes (13 quizzes)

13

Course project (1 course project)

19

Midterm exam (1 midterm exam)

20

Final exam (1 final exam)

20

COURSE #: COMP 4001

Course Description

This course is designed for students with basic background in mathematics and prior knowledge of Python programming. The course introduces a general overview of data organization in tabular form and uses the Python language as a practical support. Students learn how to reorganize data files of different formats into a single tabular form and visualize the data with Dynamic slicers. Working individually and in a team is practiced in this course.

Course learning outcomes

Assessment

Weight

Class exercises

20%

Assignment 1

10%

Midterm test

25%

Assignment 2

10%

Bonus

10%

Final exam

25%

COURSE #: COMP 4071

Course Description

This course will teach you how to create 2D and 3D drawings and animations, using JavaScript and WebGL, so that they can be displayed 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 successful 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

55

Quizzes

9

Midterm exam (1 midterm exam)

14

Final exam (1 final exam)

14

In-class exercises

7

Attendance (UCA’s 10% policy enforced)

1

 

COURSE #: COMP 4021

Course Description

In this course, students gain a basic understanding of the way networks operate. Students learn about network components and their functions, as well as 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.

Course Learning Outcomes

Upon the successful completion of this 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 (13 sessions)

39

Quizzes (13 quizzes)

17

Midterm exam (1 midterm exam)

22

Final exam (1 final exam)

22