CENG599 TERM PROJECT

Course Code:5710599
METU Credit (Theoretical-Laboratory hours/week):0 (0.00 - 4.00)
ECTS Credit:20.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Masters
Course Coordinator:Prof.Dr. AHMET COŞAR
Offered Semester:Fall and Spring Semesters.

Course Objectives

At the end of this course, students will be able to:

  • Follow a well-defined project development and management methodology such as Scrum, with all of its aspects.
  • Plan ahead to identify and mitigate possible project risks.
  • Prepare a decent project proposal that contains detailed considerations of a problem from various viewpoints.
  • Bring together software libraries, development tools and possibly hardware to design and implement sophisticated systems.
  • Produce and refine high-quality project documentations that conform to international standards such as the ones published by IEEE.
  • Present ideas and project progress, and demonstrate project results, professionally.
  • Design and implement software/hardware solutions to realistic problems.
  • Publish results (encouraged by bonus points but not mandated) in scientific conferences and/or journals.

Course Content

For course details, see https://catalog2.metu.edu.tr.

Course Learning Outcomes

Students that pass the course satisfactorily will be able to (some items below may not be applicable to all project topics that a student might choose for herself/himself) :

  • Analyze the power and limitations of abstract models of computation.
  • Design test procedures for finding defects in software and hardware.
  • Design test procedures to assess the performance and other quality attributes of software.
  • Design computer-based systems with realistic requirements.
  • Design and implement algorithms, heuristics and supporting data structures as packaged components.
  • Design and implement components and systems to process, i.e. acquire, store, organize, manipulate, access and present, varied amounts of data.
  • Interpret the needs of stakeholders in terms of system requirements.
  • Construct mathematical or logical models of computational problems.
  • Derive system properties from models.
  • Integrate a set of available hardware and software components into a working system.
  • Understand legal issues related with engineering practice, including intellectual property rights, safety, security and privacy.
  • Self-assess one’s knowledge in a topic of interest.
  • Use a widely accepted high-level programming language (e.g. Java, C# and C++).
  • Use a widely accepted modeling language, such as UML.
  • Use an integrated software development environment.
  • Assess the life cycle processes for systems and software.
  • Evaluate the quality attributes (such as reliability, availability, efficiency, usability, safety and security) of computer-based systems.
  • Apply engineering standards.
  • Evaluate alternative paradigms, languages, methods, techniques and tools for the solution of a computer engineering problem.