Fundamentals of Computer Engineering

Course info:

Semester: 1

General Foundation

ECTS: 6

Hours per week: 2

Professors: T.B.D.

Teaching style: Face to face

Grading:

I. Written exams (accounts 50% of the total course mark) which consist of:

  1. Short answer questions
  2. Problem solving

– Multiple choice questions

ΙΙ. Essays / Projects (accounts 50% of the total course mark)

For the successful qualification of the course, a minimum grade of 5 marks (of 10 in total) is mandatory in both written exams and project evaluation.

Activity Workload
Lectures 26
Essays/Project 79
Independent Study 45
Course total 150

Learning Results

The course covers fundamental concepts of Computer Science to provide an overview of software, hardware and programming. It includes the study of algorithms, data structures, networks, data modeling, information processing, software engineering, artificial intelligence, computational theory, and computer security.

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

  • recognize and describe IT terminology,
  • comprehend fundamental concepts in other courses,
  • describe how information is represented and stored in computing machines,
  • describe the process of data processing,
  • describe the role and operation of operating systems,
  • describe the role of computer networks and list their elementary functions,
  • describe the role and operation of communications and communication systems,
  • separate different programming paradigms and corresponding elements (e.g. iteration statements, if statements) from different programming languages to proceed to new programming languages,
  • list the general principles of Software Engineering for application development with the use of procedural or object-oriented programming,
  • list the basic principles of computational theory, Turing machines, and problem complexity.

Skills acquired

  • Examine, retrieve, analyze and synthesize data and information by utilizing necessary technologies
  • Work independently / Teamwork
  • Promoting free, creative and inductive thinking
  • Analyze, design, implement, and evaluate computer-based systems, processes, components, or programs to meet desired needs.
  • Identify problems and formulate solutions for systems and organizations while reconciling conflicting objectives and finding compromises.
  • Communicate effectively with a range of audiences.
  • Work effectively as part of a team to develop and deliver quality software artifacts.
  • Design solutions using approaches that integrate ethical, social, legal, and economic responsibilities.
  • Recognize the applicability of computing and evaluate its impact on individuals, organizations, and global society.
  • Evaluate and use appropriate methods and professional standards in computing practice.
  • Explore historical, current, and emerging techniques and technologies, founded on a commitment to lifelong learning and professional development.
  • Apply knowledge of computing and mathematics within technical domains.
  • Apply computing theory and programming principles to practical software design and development.

The course includes the following topics:

  • Algorithms and their role
  • Origin and evolution of computing machines
  • Data Storage
    • Logical operations
    • Logical Circuits
    • Binary system
    • Bits Storage
    • Main Memory
    • Mass Storage
    • Represent information as bit patterns
    • integer and fraction number storage
    • Data compression
    • Communication errors
  • Data Manipulation
    • Computer Architecture
    • Machine Language
    • Program Execution
    • Arithmetic/Logic Instructions
    • Communicating with Other Devices
    • Other Architectures (parallel systems, etc.)
  • Operating Systems and Networks
    • Operating System Architecture
    • Process Competition Management
    • Networks
    • The Internet
    • Network Protocols
  • Programming Languages
    • Traditional Programming Concepts
    • Procedural Units
    • Object-Oriented Programming
    • Declarative Programming
  • Software Engineering
    • The software life cycle
    • Software Engineering Methodologies
    • Software organization in modules
    • Design methodologies
  • Database Systems
    • Database Fundamentals
    • Relational Model
    • Object-Oriented Databases
    • Data Mining
  • Computer Graphics
    • Overview of 3D Graphics
    • Modeling, Rendering and Animation
  • Artificial Intelligence
    • Intelligence and Machines
    • Perception and Reasoning
    • Artificial Neural Networks
    • Robotics
  • Theory of Computation
    • Functions and Computation
    • Turing Machines
    • Non-computable Functions
    • Complexity of Problems
    • Public Key Encryption
  1. Behrouz Forouzan, Foundations of Computer Science, 4th Edition, 2018, CENGAGE.
  2. Glenn Brookshear J. and Dennis Brylow, Computer Science: An Overview, 13th Edition, 2019, Pearson.
  3. Giuseppe Primiero, On the Foundations of Computing, 2020, Oxford University Press.
  4. Penelope Maynard, Principles of Computer Science, 2021, Larsen and Keller Education.

Related journals:

  1. Computer Science, PeerJ.

Web sources:

Chris Bourke, Computer Science, 2018, https://cse.unl.edu/~cbourke/ComputerScienceOne.pdf

Learning Results - Skills acquired

Learning Results

The course covers fundamental concepts of Computer Science to provide an overview of software, hardware and programming. It includes the study of algorithms, data structures, networks, data modeling, information processing, software engineering, artificial intelligence, computational theory, and computer security.

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

  • recognize and describe IT terminology,
  • comprehend fundamental concepts in other courses,
  • describe how information is represented and stored in computing machines,
  • describe the process of data processing,
  • describe the role and operation of operating systems,
  • describe the role of computer networks and list their elementary functions,
  • describe the role and operation of communications and communication systems,
  • separate different programming paradigms and corresponding elements (e.g. iteration statements, if statements) from different programming languages to proceed to new programming languages,
  • list the general principles of Software Engineering for application development with the use of procedural or object-oriented programming,
  • list the basic principles of computational theory, Turing machines, and problem complexity.

Skills acquired

  • Examine, retrieve, analyze and synthesize data and information by utilizing necessary technologies
  • Work independently / Teamwork
  • Promoting free, creative and inductive thinking
  • Analyze, design, implement, and evaluate computer-based systems, processes, components, or programs to meet desired needs.
  • Identify problems and formulate solutions for systems and organizations while reconciling conflicting objectives and finding compromises.
  • Communicate effectively with a range of audiences.
  • Work effectively as part of a team to develop and deliver quality software artifacts.
  • Design solutions using approaches that integrate ethical, social, legal, and economic responsibilities.
  • Recognize the applicability of computing and evaluate its impact on individuals, organizations, and global society.
  • Evaluate and use appropriate methods and professional standards in computing practice.
  • Explore historical, current, and emerging techniques and technologies, founded on a commitment to lifelong learning and professional development.
  • Apply knowledge of computing and mathematics within technical domains.
  • Apply computing theory and programming principles to practical software design and development.
Course content

The course includes the following topics:

  • Algorithms and their role
  • Origin and evolution of computing machines
  • Data Storage
    • Logical operations
    • Logical Circuits
    • Binary system
    • Bits Storage
    • Main Memory
    • Mass Storage
    • Represent information as bit patterns
    • integer and fraction number storage
    • Data compression
    • Communication errors
  • Data Manipulation
    • Computer Architecture
    • Machine Language
    • Program Execution
    • Arithmetic/Logic Instructions
    • Communicating with Other Devices
    • Other Architectures (parallel systems, etc.)
  • Operating Systems and Networks
    • Operating System Architecture
    • Process Competition Management
    • Networks
    • The Internet
    • Network Protocols
  • Programming Languages
    • Traditional Programming Concepts
    • Procedural Units
    • Object-Oriented Programming
    • Declarative Programming
  • Software Engineering
    • The software life cycle
    • Software Engineering Methodologies
    • Software organization in modules
    • Design methodologies
  • Database Systems
    • Database Fundamentals
    • Relational Model
    • Object-Oriented Databases
    • Data Mining
  • Computer Graphics
    • Overview of 3D Graphics
    • Modeling, Rendering and Animation
  • Artificial Intelligence
    • Intelligence and Machines
    • Perception and Reasoning
    • Artificial Neural Networks
    • Robotics
  • Theory of Computation
    • Functions and Computation
    • Turing Machines
    • Non-computable Functions
    • Complexity of Problems
    • Public Key Encryption
Recommended bibliography
  1. Behrouz Forouzan, Foundations of Computer Science, 4th Edition, 2018, CENGAGE.
  2. Glenn Brookshear J. and Dennis Brylow, Computer Science: An Overview, 13th Edition, 2019, Pearson.
  3. Giuseppe Primiero, On the Foundations of Computing, 2020, Oxford University Press.
  4. Penelope Maynard, Principles of Computer Science, 2021, Larsen and Keller Education.

Related journals:

  1. Computer Science, PeerJ.

Web sources:

Chris Bourke, Computer Science, 2018, https://cse.unl.edu/~cbourke/ComputerScienceOne.pdf