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 computer science. 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 real-world 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 with owners and users, 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 |
|
Proposal Presentation |
10% |
|
Project Proposal |
20% |
|
Project Presentation 1 Project Presentation 2 Project Presentation 3 |
30% |
|
Prototype Demo |
15% |
|
Project Report |
25% |
Course # COMP 4021
Credits 6
Prerequisites and/or Corequisites: Computer Architecture.
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 |
35% |
|
Quizzes |
28% |
|
Midterm exam |
17% |
|
Final exam |
20% |
Course # COMP 4071
Credits 6
Prerequisites and/or Corequisites: Programming
Course Description
This course covers key theoretical principles and practical algorithms through a weekly schedule of lectures and practical tutorials. Students begin by exploring core coordinate systems, 2D/3D transformations, and geometric primitive rasterization for rendering basic shapes. The curriculum then advances through rendering pipelines, light scattering, numerical integration, ray tracing, texture mapping, and scene graph organization, while addressing sampling and anti-aliasing techniques. Concluding with geometric modelling focused on intersection calculations, polynomial curves, Bezier curves, and splines, the course evaluates student learning through continuous practical exercises, quizzes, midterm, and a comprehensive final exam.
Course Learning Outcomes
Upon the completion of this course, you will be able to:
- Explain fundamental concepts, principles, and terminology of computer graphics, including graphics systems, display technologies, and graphics pipelines.
- Apply fundamental computer graphics algorithms for drawing and manipulating 2D graphical objects, including lines, circles, curves, and polygons.
- Perform geometric transformations such as translation, rotation, scaling, reflection, and shearing using appropriate mathematical representations.
- Implement algorithms for viewing, window-to-viewport transformations, clipping, and rasterization of graphical objects.
- Describe and apply concepts of 3D computer graphics, including 3D transformations, projections, coordinate systems, and geometric modeling.
- Explain fundamental illumination, texture, and rendering techniques used to generate realistic graphical scenes.
- Develop interactive 2D and 3D graphics applications using OpenGL/WebGL.
- Analyze and evaluate computer graphics algorithms in terms of visual quality, computational efficiency, and suitability for different applications.
Course Assessments and Grading
|
Item |
Weight |
|
Assignment (4 assignments) |
20% |
|
Quizzes (5 quizzes) |
20% |
| Project |
10% |
|
Midterm exam |
20% |
| Final exam |
30% |
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 |
35% |
|
Quizzes |
28% |
|
Midterm exam |
17% |
|
Final exam |
20% |
Course # COMP 4072
Credits 6
Prerequisites and/or Corequisites: Programming
Course Description
This course provides a comprehensive introduction to the fundamentals of 3D modelling, scene composition, and animation, equipping students with the essential theoretical knowledge and practical skills to navigate the full digital production pipeline. Structured around a dual-session weekly format consisting of lectures and hands-on tutorials, participants progressively build proficiency in Blender, exploring polygonal and curve-based modelling, modifier workflows, digital sculpting, UV unwrapping, material texturing, and three-point scene lighting. As the curriculum advances from static geometry to motion, students master keyframing principles, non-linear animation adjustments using the Graph Editor, camera path animation. Through continuous practical exercises, quizzes, and project-based assignments, learners develop a robust portfolio-ready foundation applicable to fields such as game design, film production, and product visualization.
Course Learning Outcomes
Upon the completion of the course, students will be able to:
- Explain the basic concepts and principles of 3D modelling and animation.
- Create and modify basic 3D models using fundamental modelling techniques.
- Apply materials, colors, textures, lighting, and cameras to create realistic or visually appealing 3D scenes.
- Use basic animation techniques such as keyframing, transformation, timing, and interpolation to animate 3D objects.
- Create simple 3D animations using Blender.
- Develop and present a small 3D modelling and animation project using appropriate modelling, animation, and rendering techniques.
Course Assessments and Grading
|
Item |
Weight |
|
Assignment (4 assignments) |
20% |
|
Quizzes (5 quizzes) |
20% |
|
Project |
10% |
|
Midterm exam |
20% |
|
Final exam |
30% |