Skip to main content

Computer Science - Fall 2023 Senior

Course # COMP 4811

6 Credits

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 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

Course assessment and Grading

Item 

Weight 

Project Proposal (split into several assignments) 

30% 

Project Draft Report 

20% 

Project (partial implementation 50%) 

30% 

Presentation 

20% 

Course # COMP 4071

6 Credits

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 completion of this course, students should 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 (1 midterm exam) 

15%

Final Project 

20%

In-class exercises 

10%

Attendance (UCA’s 10% policy enforced) 

5%

Course # COMP 4021

6 Credits

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 completion of this course, students should 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 

17%

Midterm exam  

22%

Final exam  

22%

Course # COMP 4001E

6 Credits

Course Description

This Human-Computer Interaction (HCI) course provides students with a comprehensive grasp of the principles and techniques required for crafting effective user interfaces. It encompasses aspects such as physical capabilities, cognitive models, and social models that shape the design of interactions. Through this course, students will gain insights into variables like color, perception, ergonomics, attention, memory, and cultural considerations, which will significantly enhance their capacity to design interfaces tailored to a wide range of user requirements. Consequently, students completing this HCI program will acquire a diverse skill set and foundational knowledge crucial for the creation of user-friendly, accessible, and secure digital interfaces.

Course Learning Outcomes

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

  • Apply principles of good design for people from the perspectives of age and disabilities
  • Analyze techniques for user centered design for a medium sized software.
  • Evaluate the usability of medium size software user interface.

Course Assessments and Grading

Item

Weight

Mid-term exam paper 

30%

Quizzes 

20%

Homework Assignments 

20%

Group Project 

30%

 

Course # COMP 4051E

6 Credits

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 and/or physical 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 

    26%

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

    2%

    Quizzes 

    13%

    Course project 

    19%

    Midterm exam 

    20%

    Final exam 

    20%