Level 01
BECS 11212 - Foundations in Computer Science

Course Code

: BECS 11212

Title

: Foundations in Computer Science

Pre-Requisites

: G.C.E. (A/L)

Co-Requisites 

: BECS 11223

Learning Outcomes:

At the completion of this course student will be able to:

  • explain how data are represented, stored, and manipulated by computer hardware
  • use abstraction and decomposition when reasoning about complex systems and problems
  • describe how data can be transmitted over networks and the security concerns that arise
  • apply computing tools and techniques to solve problems at multiple levels of abstraction
  • discuss the impact of computing within economic, social, and cultural contexts
  • recognize problem solving techniques and algorithm development using computers.

Course Content:
Main components of a Computer; Organization of a Computer; Classification of Computers; Software: Systems Software and Application Software; Operating Systems, functions and types of operating systems; Utility Programs, Translators (compilers, interpreters, assemblers); Application Programs: Algorithms, Computer programs, Computer programming Languages; Generations of programming languages; Number Systems; Conversions between number systems; Use of number systems; Binary addition and subtraction; Representation of Numbers; Representation of Characters: ASCII, EBCDIC, Unicode; Representation of Images and Video; Introduction to logic gates; Introduction to Computer Networks; Network topologies; Advantages and disadvantages of computer networks, Introduction to the Internet; Services available on the Internet; Information Systems; Systems Development Life Cycle (SDLC); Social, Ethical, Legal and Economic impacts of the use of computers; Computer crime.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group Projects, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Norton, P. (2006). Introduction to Computers. 6th Tata McGraw-Hill Publishing Company limited, India.
  2. Parsons, J. J., Oja, D. (2003). New Perspective on Computer Concepts. 6th Course Technology a division of Thomson learning Inc.
  3. Ram, B. (2005). Computer Fundamentals: Architecture and organization. 3rd New Age Publications, India.
  4. Forouzan, B. A., Firouz, M. (2008). Foundations of Computer Science. 2nd Cengage Learning EMEA.
  5. Gaddis, T. (2017). Starting out with Python. 4th Edition. Pearson.
BECS 11223 - Fundamentals of Programming

Course Code

: BECS 11223

Title

: Fundamentals of Programming

Pre-Requisites

G.C.E. A/L

Co-Requisites 

: BECS 11212

Learning Outcomes:
At the completion of this course student will be able to:

  • define the basic concepts of the structured programming
  • identify suitable data types and data structures for the real-world problems
  • explain main control structures of procedural programming languages
  • develop structured programs using a procedural language
  • describe functional hierarchical code organization
  • demonstrate knowledge on textual information, characters and strings
  • use language specific features on program development and error handling.

Course Content:
Introduction to Programming: A brief history and types of programming languages; Program Design: Modular programming concepts, Elegance in program design Implementing an algorithm using a programming language Program testing and program; The High Level programming language: First program, compilation, syntax errors, Data types and variable scopes, Constants, Identifiers, Expressions and assignment, Input and output, Arrays, Program selections (if, if-else, switch), Repetition (for, do-while), Control structures; Introduction to Functions; Storage classes; Scope of a variable; Pointers; Structured data types (arrays, structures, unions), Programmer defined data types; Recursion; Inheritance; Virtual Functions, and Dynamic Binding; File processing; Multi-file programming; Bit manipulation and enumerations; Static and Dynamic memory handling; error handling (debugging).

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Project Works, Student-centred discussions

Assessment:
End-of-course written examination  and practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Gottfried, B.S. (2001). Schaum’s Outline of Theory and Problems of Programming in C. 2nd McGraw Hill Professional Publishing.
  2. Gaddis, T. (2017). Starting out with Python. 4th Pearson.
  3. Kelly, A. and Pohl, I. (1999). A Book on C: Programming in C. 4th Addison Wesley Longman Inc.
  4. Rajaraman, V. (2004). Computer Programming in C. 6th Prentice Hall.
  5. Zelle, J. M. (2016). Python programming: an introduction to computer science. 3rd Franklin, Beedle & Associates, Inc.
  6. Guttag, J. (2016). Introduction to Computation and Programming Using Python: With Application to Understanding Data. 2nd Edition. MIT Press.
BECS 12233 - Data Communication and Networks

Course Code

: BECS 12233

Title

: Data Communication and Networks

Pre-Requisites

: BECS 11212

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:

  • examine the use of computer networks to identify the forces behind their development
  • explain the principles of a layered protocol architecture
  • identify and describe the system functions in the protocol layers
  • discuss different coding schemes
  • design various network topologies, architectures, protocols and algorithms.

Course Content:

Introduction: Data communication, network structures, types of networks, the Internet, protocols and standards, layers of the OSI model; The physical layer: Transmission media (guided and unguided), analog and digital transmission, transmission impairment, encoding techniques, modulation techniques and modems, multiplexing, circuit switching and packet switching; Telephone Networks and DSL technology; The medium access sub-layer: Ethernet (CSMA/CD), token bus, token ring and FDDI; The data link layer: Framing, error detection and correction, error control and flow control, data link protocols; The network layer: Addressing, routing algorithms, internetworking and network layer protocols; The transport layer: Transport layer protocols (UDP and TCP) and connection management; The session layer: Token management and synchronization; The presentation layer: Data compression, data security and encryption; The application layer: Client-Server model, application level protocols for file transfer, electronic mail, network management, Hypertext transfer and World Wide Web; Advanced telecommunication services and developments: ISDN, Frame Relay Networks, ATM Networks, packet switching and X.25 Networks; LAN, MAN, WAN and Networking software; Networking and Internetworking Devices.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Stallings, W. (2013). Data and computer communications. 10th Pearson.
  2. Forouzan B. A. (2012). Data Communications and Networking. 5th McGraw Hill.
  3. Tanenbaum A.S., Wetheral David J. (2010). Computer Networks. 5th Prentice-Hall International.
  4. Kurose, J. F., Ross, K. W. (2016). Computer networking: a top-down approach. 7th Pearson.
  5. Stallings, W., Case, T. (2012). Business Data Communications- Infrastructure, Networking and Security. 7th Edition. Pearson.
BECS 12243 - Object Oriented Programming

Course Code

: BECS 12243

Title

: Object Oriented Programming

Pre-Requisites

: BECS 11223

Co-Requisites 

None

Learning Outcomes:

At the completion of this course student will be able to:

  • apply design and development principles in the construction of software systems of varying complexity
  • develop the structures to represent objects and the algorithms to perform operations
  • explain and utilize object-oriented concepts
  • use an industry-leading Integrated Development Environment (IDE) to develop and manage software projects.

Course Content:

Background and motivation of Object Oriented Methods; Concepts of Object Oriented project management issues; Principles and features of an industry standard Object Oriented Programming Language (OOPL) (e.g.: Java/C++); Basic OOPL features: Class and object models, object declaration and creation, instantiable classes, visibility modifiers, arrays of objects, self-referencing pointers, reuse of code, static methods, arithmetic expressions, variables, scope, Event Driven input and output, file objects and looping statements, primitive and reference types, strings, use of string buffer, passing objects as parameters, exceptions; Advanced OOPL features: Overloading, data abstraction, encapsulation, inheritance, polymorphism, file processing, templates, exceptions and container classes.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects, Student-centred discussions

Assessment:
End-of-course written examination and practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Wu, T. (2009). An Introduction to Object-Oriented Programming with Java. 5th McGraw Hill.
  2. Savitch, W. (2017). Problem Solving with C++. 10th Pearson.
  3. Liang, Y. D. (2017). Introduction to Java Programming and Data Structures, Comprehensive Version. 11th Pearson.
  4. Dale, N. B., Weems, C. (2004). Programming in C++. 3rd Jones & Bartlett Learning.
  5. Gamma, E. (1995). Design patterns: elements of reusable object-oriented software. Pearson Education, India.

Level 02
BECS 21213 - Software Engineering

Course Code

: BECS 21213

Title

: Software Engineering

Pre-Requisites

: BECS 12243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:

  • understand the principles behind software engineering processes and the strengths and weaknesses of various software processes
  • produce simple analyses, designs, implementations and test suites for small systems

Course Content:

Software and Software Engineering: Software processes, requirement engineering, system modeling, software prototyping, formal specification, architectural design, object-oriented design, user interface design, software testing, project management, managing people, software cost estimation, quality management, configuration management; Introduction to Ethics: Variety of ethical views, justice and social contract theory; professional conduct followed in the IT industry.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Sommerville, I. (2015). Software engineering. 10th Pearson.
  2. Pressman, R. S. (2014). Software engineering: a practitioner's approach. 8th McGraw-Hill Education.
  3. Wiegers, K., Beatty, J. (2013). Software requirements. 3rd Microsoft Press.
  4. Cohn, M. (2010). Succeeding with agile: software development using Scrum. 1st Addison-Wesley Professional.
  5. Baase, S., Henry, T. M. (2017). A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology. 5th Edition. Pearson.
BECS 21223 - Data Structures and Algorithms

Course Code

: BECS 21223

Title

: Data Structures and Algorithms

Pre-Requisites

: BECS 12243

Co-Requisites 

None

Learning Outcomes:

At the completion of this course student will be able to:

  • apply object‐oriented programming, as a modern tool to solve practical computing problems
  • identify basic data structures and algorithms
  • demonstrate the ability to analyze, design, apply and use data structures and algorithms to solve practical problems and evaluate their solutions
  • use complexity analysis to compare algorithm performances.

Course Content:
Data structure concepts; Arrays; Simple linked lists; Different implementations of lists; Stacks and queues; Sets; Binary-trees; Balanced trees; Heaps; Priority queues; Dictionaries/maps; Graphs; Introduction to complexity: Big or little O-notation; Algorithms: Recursion and backtracking, Sorting and searching, hashing.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects, Student-centred discussions

Assessment:
End-of-course written examination ,practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Lewis, J., DePasquale, P., Chase, J. (2016). Java Foundations: Introduction to Program Design and Data Structures. 4th Pearson.
  2. Shaffer, C. A. (2011). Data Structures and Algorithm Analysis in Java. 3rd Dover Publications.
  3. Weiss, M. A. (2013). Data structures & algorithm analysis in C++. 4th Pearson Education.
  4. Lee, K. D., Hubbard, S. (2015). Data Structures and Algorithms with Python. Springer Publications.
  5. Weiss, M. A. (2011). Data structures and algorithm analysis in Java. 3rd Pearson.
  6. Carrano, F. M., Henry T. M. (2015). Data Structures and Abstractions with Java. 4th edition. Pearson
BECS 22233 - Computer Architecture and Operating Systems

Course Code

: BECS 22233

Title

: Computer Architecture and Operating Systems 

Pre-Requisites

: BECS 11212, BECS 12443

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:

  • explain how data and programs are represented in computers
  • compare and contrast different computer architectures
  • describe the functionality and working of the building blocks of computer systems
  • demonstrate an understanding of assemblers and programming in assembly language
  • explain the key roles played by an operating system
  • identify the major components of operating systems
  • describe the concepts, models and approaches involved in design of operating systems.

Course Content:
Computer Architecture: Data and program representation, different computer architectures, processor architectures, instruction set architecture, fetch-execute cycle, energy and cost, instruction pipelining, branch prediction, operand addressing, microcode, parallelism, hardware and software integration, assemblers, programming in assembly language, memory and storage, bus architectures, I/O architectures.

Operating Systems: roles of an operating system, different operating systems, multi-programming, time sharing, concurrency control, deadlocks and starvation, memory management, process management (processes models, processor scheduling), synchronization.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Comer, D. E. (2004). Essentials of Computer Architecture. Pearson.
  2. Stallings, W. (2011). Computer Organization and Architecture: Designing for Performance. 10th Pearson.
  3. Hennessy, J. L., Patterson, D. A. (2011). Computer architecture: a quantitative approach. 5th Morgan Kaufmann.
  4. Stallings, W. (2014). Operating Systems: Internals and Design Principles. 8th Pearson.
  5. Silberschatz, A., Gagne, G., Galvin, P. B. (2018). Operating System Concepts. 10th Edition. Wiley.
BECS 22243 - Database Management Systems

Course Code

: BECS 22243

Title

:  Database Management Systems 

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:

  • describe various logical database architectures
  • design & develop databases using relational model and manipulate data
  • use databases in software solutions
  • apply theories behind various database models and query languages in practical scenarios
  • discuss security and integrity policies relating to databases.

Course Content:
Introduction to database systems: Database system concepts and architecture, Three tire architecture and mapping; Data Modelling: Entity-Relationship (ER) model and Enhanced Entity-Relationship (EER) model; Relational model: Introduction to the relational model, Relational constraints, Normalization approach for relational database design (first, second, third and BCNF normal forms), Advantages and disadvantages of the normalization approach; Logical database design: ER to relational mapping and EER to relational mapping, Data manipulation: Relational algebra and relational calculus, Data manipulation using SQL, Security and integrity in databases; Physical database design: Storing data and primary file organization, File organization and indexes (primary, secondary, clustering and multilevel indexes etc.).

 

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination, Practical Examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Ricardo, C. M., Urban, S. D. (2015). Databases Illuminated. 3rd Jones & Bartlett Publishers.
  2. Elmasri, R., Navathe S.B. (2017). Fundamentals of database systems. 7th Pearson Education India.
  3. Hoffer, J. A., Venkataraman, R., H., (2019), Modern Database Management, 13th Edition Pearson.
  4. Ramakrishnan, R., Gehrke, J. (2002). Database management systems. 3rd McGraw Hill.
  5. Molinaro, A. (2005). SQL Cookbook: Query Solutions and Techniques for Database Developers. O'Reilly Media, Inc.
BECS 22243 - Database Management Systems

Course Code

: BECS 22243

Title

:  Database Management Systems 

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:

  • describe various logical database architectures
  • design & develop databases using relational model and manipulate data
  • use databases in software solutions
  • apply theories behind various database models and query languages in practical scenarios
  • discuss security and integrity policies relating to databases.

Course Content:
Introduction to database systems: Database system concepts and architecture, Three tire architecture and mapping; Data Modelling: Entity-Relationship (ER) model and Enhanced Entity-Relationship (EER) model; Relational model: Introduction to the relational model, Relational constraints, Normalization approach for relational database design (first, second, third and BCNF normal forms), Advantages and disadvantages of the normalization approach; Logical database design: ER to relational mapping and EER to relational mapping, Data manipulation: Relational algebra and relational calculus, Data manipulation using SQL, Security and integrity in databases; Physical database design: Storing data and primary file organization, File organization and indexes (primary, secondary, clustering and multilevel indexes etc.).

 

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination, Practical Examination and other assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Ricardo, C. M., Urban, S. D. (2015). Databases Illuminated. 3rd Jones & Bartlett Publishers.
  2. Elmasri, R., Navathe S.B. (2017). Fundamentals of database systems. 7th Pearson Education India.
  3. Hoffer, J. A., Venkataraman, R., H., (2019), Modern Database Management, 13th Edition Pearson.
  4. Ramakrishnan, R., Gehrke, J. (2002). Database management systems. 3rd McGraw Hill.
  5. Molinaro, A. (2005). SQL Cookbook: Query Solutions and Techniques for Database Developers. O'Reilly Media, Inc.

Level 03
BECS 31213 - Enterprise Software Design and Architecture

Course Code

: BECS 31213

Title

: Enterprise Software Design and Architecture

Pre-Requisites

: BECS 21223, BECS 22243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain the concept of Enterprise Software Architecture
  • apply different architectural styles to solve different business models
  • analyze and design appropriate enterprise applications
  • identify how design patterns will resolve subtle coding issues.
Course Content:
Introduction to Enterprise Applications: web, standalone and cloud applications; Software System Architecture; Architecture Views and Decomposition; Architecture Styles; Middleware, strategies for data Processing; Service-Oriented-Architecture; Resource-Oriented Architecture; Domain-Driven Architecture; Event-Driven Architecture; Design Patterns; Micro services; RESTful Architecture; Best practices in application development; Web Services: Web Services Frameworks and their Performance, Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), Web Services Security.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and group projects, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Taylor, R. N., Medvidovic N., Dashofy, E. (2009).  Software Architecture: Foundations, Theory, and Practice. 1st Edition. Wiley.
  2. Gorton, I. (2006). Essential software architecture. Springer Science & Business Media.
  3. Brooks Jr, F. P. (2010). The design of design: Essays from a computer scientist. Pearson Education.
  4. Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. 1st Edition. Addison-Wesley.
  5. Freeman, E., Robson, E., Bates, B., Sierra, K. (2004). Head First Design Patterns. O'Reilly Media Inc.
BECS 34223 - Cyber Security and Forensics

Course Code

: BECS 34223

Title

: Cyber Security and Forensics

Pre-Requisites

: BECS 12233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • appreciate the need for good security management, and identify information security threats and counter measures
  •  demonstrate understanding of fundamentals of cryptography
  • acquire background for providing security for slandered network, web and e-commerce applications
  • gain hands-on experience with tools and programming techniques for security
  • explain the principles of computer forensics, ethical, legal issues and forensic standards
  • investigate and analyse cybercrime
Course Content:
Introduction to general issues in IT security, Understanding the threats, Formalisms, Policies, Introduction to cryptography and concepts, Security systems, Wired and wireless network security, File security, Software security, Web security, Virus/malware guards and their concepts, security threats and countermeasures, email security, firewalls, intrusion detection techniques, legal and ethical issues
Forensics: computer forensics principles, relationship between network forensic analysis and network security technologies, computer forensics tools, network security incidents and responses, cybercrime investigation and analysis, ethics and legal issues, forensics standards, requirement analysis

Method of Teaching and Learning:
Lectures, Tutorials and Assignments 

Assessment:
End-of-course  written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Stallings, W. (2018). Effective Cybersecurity: A Guide to Using Best Practices and Standards. 1st Addison-Wesley Professional.
  2. Nelson, B., Philips, A., Enfinger, F., & Steuart, C., (2015), Guide to Computer Forensics and Investigations, 5th Edition, Course Technology
  3. Singer, P. W., Friedman, A. (2014). Cybersecurity: What everyone needs to know. 1st OUP USA.
  4. Moschovitis, C. (2018). Cybersecurity Program Development for Business: The Essential Planning Guide. 1st John Wiley & Sons.
  5. Pfleeger, C. P., Pfleeger, S. L., Margulies, J. (2015). 5th Security in computing. Prentice Hall.
  6. Schneier, B. (2015). Applied cryptography: protocols, algorithms, and source code in C. 20th Anniversary Edition. John Wiley & Sons.
  7. Casey, E., (2011), Digital evidence and computer crime: Forensic science, computers, and the internet, 3rd Edition, Academic press
BECS 31233 - Web and Internet Technologies

Course Code

: BECS 31233

Title

Web & Internet Technologies

Pre-Requisites

: BECS 12233, BECS 12243, BECS 22243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe basic concepts of web and the internet technologies
  • use client-side technologies for building, usable, accessible, standard compliant web pages
  • use server-side technologies for building secure database driven web applications
  • describe and critically discuss the design, engineering, legal, social, ethical and professional issues and considerations involved in web application development.
Course Content:
Overview of the Internet; Web technologies: Standard client side technologies including HTML/ XHTML, CSS, JavaScript and related libraries, DOM, cookies. Web servers and server-side technologies including Apache, PHP, session state and database connectivity using MySQL; Issues and considerations in web application development: standards, maintenance, efficiency, stability, usability, accessibility, law, security and privacy, emerging trends and best practices.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and Practical Examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Connolly, R., Hoar, R. (2015). Fundamentals of Web Development. 2nd Pearson.
  2. Deitel, P. J., Deitel, H. M., Deitel, A. (2011). Internet & World Wide Web How to Program. 5th Pearson.
  3. Welling, L., Thomson, L. (2016). PHP and MySQL Web Development. 5th Addison-Wesley.
  4. Jackson, J. C. (2006). Web Technologies: A Computer Science Perspective. Prentice Hall.
  5. Scobet P., Lingras, P. (2016). Web Programming and Internet Technologies: An E-Commerce Approach. 2nd Edition. Jones & Bartlett Learning.
BECS 31242 - Visual Programming

Course Code

BECS 31242

Title

: Visual Programming

Pre-Requisites

: BECS 21213, BECS 22243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • apply the concepts of visual programming and algorithm design
  • use appropriate controls and events to develop user-friendly graphical interfaces
  • use available classes and technologies to access database through graphical user interfaces
  • design and develop stand-alone and web-based software applications for real-world problems.
Course Content:
Introduction to Visual Programming: A brief history and types of programming languages, use of an Integrated Development Environment, basic language facilities; events, errors and exceptions; Facilities for building GUI interfaces: Form design, Uses of forms, Controls and control properties, Design of forms; Event driven programming: Introduction to basic control objects, Branching, Control loops, Procedures and functions, interacting with the user, stream-based file I/O, Arrays, Database connectivity, connecting through ODBC, Introduction to Threads, Debugging and Testing; Querying the Database: Query by example, Query by form, Use of SQL commands; Reports: Development of a variety of reports including tabular, group totals, sub totals and other standard reports; Introduction to web application development.


Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Hoisington, C. (2017). Microsoft Visual Basic 2017 for Windows, Web, and Database Applications: Comprehensive. 1st Course Technology.
  2. Gaddis, T., Irvine, K. (2016). Starting out with Visual Basic. 7th Pearson.
  3. Deitel, P. J., Deitel, H. (2016). Visual C# How to Program. 6th Pearson.
  4. Sharp, J. (2018). Microsoft Visual C# Step by Step. 9th Microsoft Press.
  5. Gaddis, T (2016). Starting out with Visual C#. 4th Edition. Pearson.
BECS 32253 - Intelligent Systems

Course Code

: BECS 32253

Title

: Intelligent Systems

Pre-Requisites

: BECS 11212, BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • understand various definitions of Artificial Intelligence
  • apply search techniques for problem solving
  • identify and use different knowledge representation techniques
  • analyze and select the most efficient and appropriate mechanism applicable to a given problem that can be solved using artificial intelligence.
Course Content:
The history of artificial intelligence and foundations of artificial intelligence; Intelligent agents: Agents and Environments, The Nature of Environments, Structure of agents, Classes of intelligent agents, Hierarchies of agents, Problem-Solving Agents; Intelligent search techniques: Uninformed search, Informed (Heuristic) search, Adversarial Search, Games as search problems; Learning and Knowledge Representation: Forms of Learning, Logic-based representation, Procedural representations, Structured representations; Languages and programming techniques for Artificial Intelligence; Overview of major areas and Future trends in Artificial Intelligence.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and Practical Examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Russell, S. J., Norvig, P. (2009). Artificial Intelligence: A Modern Approach. 3rd Prentice Hall.
  2. Luger, G. F. (2008). Artificial Intelligence: Structures and Strategies for Complex Problem Solving. 6th The Benjamin/Cummings Publishing Company, Inc.
  3. Yao, M., Zhou, A., Jia, M. (2018). Applied Artificial Intelligence: A Handbook for Business Leaders. 1st TOPBOTS.
  4. Neapolitan, R., Jiang, X. (2012). Contemporary Artificial Intelligence. Chapman & Hall.
  5. Stone, J. V. (2019). Artificial Intelligence Engines: A Tutorial Introduction to the Mathematics of Deep Learning. Sebtel Press.
BECS 32263 - Full-stack Software Development

Course Code

: BECS 32263

Title

: Full-Stack Software Development

Pre-Requisites

: BECS 31233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • apply the software development process
  • use front-end, back-end and middle-tier application frameworks, libraries, and tools
  • develop problem solving and logic building aptitude by gaining expertise in data structures and algorithms
  • demonstrate professional skills needed in application development
  • evaluate developed software using appropriate tools
  • discuss threats to privacy posed by modern technology.
Course Content:
Engage in software development process: use HTML (latest version), JavaScript libraries or framework, server can be built-in or separate, write services and work with Object Relational Mappers; Determine how to modularize components: models, controllers, data and interfaces; Single Page Application; Dependency Injection; Services; Containerization; Scalability; Testing tools; Version controlling; Introduction to the current practices and technologies. Privacy and Intellectual property: Perspective on privacy, public information intellectual property rights, trade secrets, patents and copyright; Networked Communications: email and spam, censorship, social media censorship, internet addition.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End semester project and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Northwood, Chris. (2018).   The Full Stack Developer: Your Essential Guide to the Everyday Skills Expected of a Modern Full Stack Web Developer.
  2. Zammetti, F. W. (2020).  Modern Full-Stack Development: Using TypeScript, React, Node.js, Webpack, and Docker
  3. Hinkula, Juha. (2018).  Hands‑On Full Stack Development with Spring Boot 2.0 and React: Build.
  4. Hoque , Shama (2018).  Full‑Stack React Projects: Modern Web Development Using React 16, Node.
  5. Baase, S., Henry, T. M. (2017). A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology. 5th Edition. Pearson.
BECS 32272 - Mobile Application Development

Course Code

: BECS 32272

Title

Mobile Application Development

Pre-Requisites

: BECS 12243, BECS 22243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe various mobile computing applications, technologies and wireless communication
  • explain common paradigms in mobile computing
  • develop mobile application using a selected development environment
  • construct different user interfaces and review user experiences
  • discuss current trends in mobile development.
Course Content:
Overview: Mobile Technologies, anatomy of a mobile device, survey of mobile devices, applications of mobile computing; Application Design: Context, information architecture, design elements, mobile web vs native Applications; Development Environments: Introduction to Android Studio and Xcode, The Model-View-Controller model, The Delegate Pattern, The iPhone and Android SDKs; The User Experience: The small screen problem, the unified look and feel paradigm, common user interface guidelines; The current trends and future of mobile development.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and group projects, Student-centred discussions

Assessment:
End-of-course written examination and practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Pattanaik, P. K., Mall, R. (2015). Fundamentals of Mobile Computing. 2nd PHI Learning.
  2. Sinha, K., Ghosh S. C., Sinha, B. P. (2016). Wireless Networks and Mobile Computing. 1st Chapman and Hall/CRC.
  3. Huang, D., Wu, H. (2017). Mobile Cloud Computing: Foundations and Service Models. 1st Morgan Kaufmann.
  4. Horton, J. (2018). Android Programming for Beginners: 2nd Packt Publishing.
  5. Clayton, C. (2018). iOS 12 Programming for Beginners. 3rd Edition. Packt Publishing.
Level 04
BECS 44213 - Wireless Communication and Networks

Course Code

: BECS 44213

Title

: Wireless Communication and Networks

Pre-Requisites

: BECS 12233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain the concepts of wireless communication systems
  • discuss generations of mobile networks
  • assess different wireless networks and communication infrastructures
  • review basic cellular system, frequency reuse, channel assignment strategies, handoff strategies and interference
  • explain the multiple access technique for wireless communications
  • design a simple wireless communication network.

Course Content:
Introduction to wireless communication systems:  Evaluation of mobile radio communications, examples of wireless communication systems, paging systems, cordless telephone systems, compression of various wireless systems; Mobile wireless communication systems: second generation cellular networks, third generation wireless networks, wireless in local loop, wireless local area networks, Bluetooth and personal area networks; Cellular system design fundamentals: spectrum allocation, basic cellular system, frequency reuse, channel assignment strategies, handoff strategies, interference and system capacity, trucking and grade off service, improving coverage and capacity, cell splitting; Multiple access technique for wireless communications:  introduction to multiple accesses, FDMA, TDMA, spread spectrum multiple access, SDMA, packet radio, capacity of cellular systems; Wireless Networking: Difference between wireless and fixed telephone networks, development of wireless networks, fixed network transmission hierarchy, traffic routing in warless networks, wireless data services, common channel signaling, Wireless LAN technology and Standards, Bluetooth, GPRS and 3G wireless systems, Wireless WAN communication in the infrastructure.

Method of Teaching and Learning:
Lectures, Tutorials, Assignments, Student Centred Discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Stallings, W. (2004). Wireless Communications and Networking. 2nd Prentice-Hall of India.
  2. Garg, V. (2010). Wireless communications & networking. Elsevier.
  3. Faludi, R. (2010). Building wireless sensor networks: with ZigBee, XBee, arduino, and processing. O'Reilly Media, Inc..
  4. Osseiran, A., Monserrat, J. F., Marsch, P. (Eds.). (2016). 5G mobile and wireless communications technology. Cambridge University Press.
BECS 44223 - Blockchain and Cryptocurrency

Course Code

: BECS 44223

Title

: Blockchain and Cryptocurrency

Pre-Requisites

: BECS 12233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain the essential features of blockchain
  • identify scenarios and implementation of appropriate design considerations for a distributed ledger
  • use smart contracts in terms of their design and communication between the different entities
  • acquire a good understanding of different protocols and technologies used in cryptography
  • demonstrate an understanding of the process involved within mining and trading of cryptocurrencies
  • use of different interfaces to interact with cryptocurrencies
  • describe the proper use of wallets and hardware wallets
Course Content:
Introduction to Blockchain: Transactions, Blocks, Hashes; Public and Private blockchain; Distributed ledger;
Consensus verification: Byzantine generals problem, Proof Of Work (POW), Proof Of Stake (POS), Delegated
POS (DPOS); Smart Contracts; Future and the application of the blockchain; Introduction to Cryptocurrencies; Bitcoin History; Bitcoin; Ethereum; Initial Coin Offerings (ICOs); Bitcoin Mechanics and Optimizations: A Technical Overview; Bitcoin in real life: Wallets, mining; Game Theory and Network Attacks: How to Destroy Bitcoin; Future of the cryptocurrencies.

Method of Teaching and Learning:
Lectures, Tutorials, Assignments. Student Centred Discussions

Assessment:
End-of-course written examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Narayanan, A., Bonneau, J., Felten, E., Miller, A., Goldfeder, S. (2016). Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press.
  2. Antonopoulos, A. (2017). Mastering Bitcoin. 2nd Edition. O’Reilly Media.
  3. Werbach, K. (2018). The Blockchain and the New Architecture of Trust. The MIT Press.
  4. Bashir, I. (2020). Mastering Blockchain: A deep dive into distributed ledger, consensus protocols, smart contracts, DApps, cryptocurrencies, Ethereum, and more. 3rd Edition. Packt Publishing.
  5. Lewis, A. (2018). The Basics of Bitcoins and Blockchains: An Introduction to Cryptocurrencies and the Technology that Powers Them. Mango Media.
BECS 44233 - Computer Graphics and Visualization

Course Code

: BECS 44233

Title

: Computer Graphics and Visualization

Pre-Requisites

: BECS 11223, BECS 11613

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain fundamental concepts within computer graphics such as geometrical transformations, illumination models, removal of hidden surfaces and rendering
  • identify the features in fundamental algorithms of computer graphics to compare and evaluate them
  • apply fundamental principles within interaction programming
  • demonstrate fundamental concepts within information visualization and scientific visualization.
Course Content:
Introduction: History of computer graphics, applications, graphics pipeline, physical and synthetic images, synthetic camera, modeling, animation, rendering, relation to computer vision and image processing, review of basic mathematical objects (points, vectors, matrix methods); Introduction to OpenGL: OpenGL architecture, primitives and attributes, simple modeling and rendering of two- and three-dimensional geometric objects, indexed and RGB color models, frame buffer, double buffering, GLUT, interaction, events and callbacks, picking; Geometric transformations: Homogeneous coordinates, affine transformations (translation, rotation, scaling, shear), concatenation, matrix stacks and use of model view matrix in OpenGL for these operations; Viewing: Classical three dimensional viewing, computer viewing, specifying views, parallel and perspective projective transformations, Visibility- z-Buffer, BSP trees, Open-GL culling, hidden-surface algorithms; Shading: Light sources, illumination model, Gouraud and Phong shading for polygons. Rasterization- Line segment and polygon clipping, 3D clipping, scan conversion, polygonal fill, Bresenham's algorithm; Discrete Techniques: Texture mapping, compositing, textures in OpenGL; Ray Tracing- Recursive ray tracer, ray-sphere intersection; Representation and Visualization: Bezier curves and surfaces, B-splines, visualization, interpolation, marching squares algorithm.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects Student-centred discussions

Assessment:
End-of-course written examination and practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Angel, E., Shreiner, D. (2014). Interactive Computer Graphics with WebGL. 7th Pearson.
  2. Gordon, V. S., Clevenger, J. L. (2018). Computer Graphics Programming in OpenGL with JAVA 2nd Mercury Learning & Information.
  3. Gortler, S. J. (2012). Foundations of 3D computer graphics. MIT Press.
  4. Marschner, S., Shirley, P. (2015). Fundamentals of computer graphics. 4th Edition. CRC Press.
BECS 44243 - High Performance Computing

Course Code

: BECS 44243

Title

: High Performance Computing

Pre-Requisites

: BECS 12233, BECS 22233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • develop and apply knowledge of high performance computing techniques and methodologies
  • apply design, development, and performance analysis of high performance applications
  • use the application of fundamental Computer Science methods and algorithms in the development of parallel applications
  • explain the design, testing, and performance analysis of a software system.
Course Content:
Introduction to High Performance Computing; Parallel and Distributed Architectures; Socket programming; Parallel Performance; Shared Memory and Threads; Parallel Algorithms; OpenMP; Scalable Algorithms; Message Passing; MPI and Teragrid; Distributed Systems; MapReduce; Clusters; Distributed Coordination and Security; Distributed File Systems and Security.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects Student-centred discussions

Assessment:
End-of-course written examination and practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  • Grama, A., Kumar, V., Gupta, A., Karypis, G. (2003). Introduction to parallel computing. 2nd Pearson Education.
  • Tanenbaum, A. S., Van Steen, M. (2016). Distributed systems: principles and paradigms. 2nd CreateSpace Independent Publishing Platform.
  • Quinn, M. J. (2004). Parallel Programming in C with MPI and OpenMP. McGraw Hill. 4) Kirk, D. B., Wen-Mei, W. H. (2016). Programming massively parallel processors: a hands-on approach. Morgan Kaufmann.
BECS 44253 - Emerging Technologies in Computer Science

Course Code

: BECS 44253

Title

: Emerging Technologies in Computer Science

Pre-Requisites

: All compulsory COSC course units of level 3

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • demonstrate the theoretical and practical knowledge on concepts learned on the selected emerging technologies.

Course Content:
Depends on the selected emerging technologies.

Method of Teaching and Learning:
ombination of Lectures, Tutorial discussions, Group Projects, Student-centred discussions.

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :
Reading list and material relevant for each selected topic to be provided at the beginning of the academic year by the lecturer.

BECS 44263 - Machine Learning

Course Code

: BECS 44263

Title

: Machine Learning

Pre-Requisites

: BECS 44223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain necessity of machine learning
  • describe wide variety of learning algorithms
  • compare and contrast different learning models
  • solve real world problems using machine learning techniques
  • demonstrate programming skills that will necessary to build intelligent, adaptive artifacts.

Course Content:
Introduction to machine learning; Types of Learning (Supervised, Unsupervised and Reinforcement); Inductive Classification; Decision Tree Learning; Ensemble Learning; Experimental Evaluation of Learning Algorithms; Computational Learning Theory; Rule Learning: Propositional and First-Order; Artificial Neural Networks; Support Vector Machines; Bayesian Learning; Instance-Based Learning; Clustering; Dimensionality Reduction; Association Rule Discovery;  Language Learning; Text Classification; Introduction to Reinforcement Learning models.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Mitchell, T. M. (1997). Machine Learning, McGraw-Hill.
  2. Bishop, C. M. (2011). Pattern recognition and machine learning. Springer.
  3. Alpaydin, E. (2016). Machine learning: the new AI. MIT press.
  4. Shalev-Shwartz, S., Ben-David, S. (2014). Understanding machine learning: From theory to algorithms. Cambridge university press.
  5. Hastie, T., Tibshirani, R., Friedman, J. (2016). The elements of statistical learning: data mining, inference, and prediction. 2nd Springer Series in Statistics.
  6. Goodfellow, I., Bengio, Y., Courville, A. (2016). Deep learning. MIT press.
  7. Géron, A. (2017). Hands-on machine learning with Scikit-Learn and TensorFlow: concepts, tools, and techniques to build intelligent systems. O'Reilly Media, Inc..
BECS 44273 - Game Development

Course Code

: BECS 44273

Title

: Game Development

Pre-Requisites

: BECS 32232

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe theoretical foundation of game design
  • explain and practice the stages of game design process
  • describe and apply the agile production methods and prototyping in game designing
  • explain the importance of a game design framework: mechanics, dynamics and aesthetics (MDA)
  • recognize the players and player types in game design
  • formulate a theoretical game design to a specific brief, implementing effective game narrative, playtesting and balancing
  • analysis game designs constructively based on understanding of good game design principles
  • synthesize various game design concepts into a game design project.

Course Content:
Overview of a game; Atomic elements of games; Stages of game design process; Game design frameworks:MDA (mechanics, dynamics and aesthetics); Iteration and rapid prototyping for game design; Decision makingand flow theory in game design; Kinds of fun, Kinds of players; Game narrative and Storytelling;Games designing tools; Playable prototype design; Game criticism; Playtesting; Game designs evaluation interms of game balance; Game designs analysis in terms of user interface design; Development and Production.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects Student-centred discussions

Assessment:
End-of-course written examination, practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Fullerton, T. (2018). Game Design Workshop: A Playcentric Approach to Creating Innovative
  2. Games. 4th Edition. A K Peters/CRC Press.
  3. Schell, J. (2014). The Art of Game Design: A book of lenses. 2nd Edition. AK Peters/CRC Press.
  4. Zubek, R. (2020). Elements of Game Design. The MIT Press. 5) Koster, R. (2013). Theory of Fun for Game Design. 2nd Edition. O’Reilly Media.
BECS 44283 - Advanced Databases

Course Code

: BECS 44283

Title

: Advanced Databases

Pre-Requisites

: BECS 22243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • apply the principles of query optimization to a database schema
  • identify transaction processing
  • apply concurrency control techniques
  • describe different types of database failures
  • apply appropriate recovery techniques
  • formulate complex queries
  • develop stored procedures, functions and triggers
  • design queries against a distributed database management system
  • design queries against database designed with object-relational extensions
  • develop and query No-SQL databases.
Course Content:

Advanced Features of SQL: Relational algebra review and join commands, additional join operations, SELF join, FULL joins, Set-Theoretic operators, the HAVING clause, views; Stored Procedures and Triggers: Stored Procedures and their usage in relational database management systems, stored functions, constraints and triggers; Query Optimization: Stages in query processing, query processing algorithms, query plan execution, cost-based query optimization; Concurrency and Recovery: Transactions and the ACID property of transactions, serializability and the serializability theorem, two-phase locking, time ordering techniques, recovery techniques; Database System Architectures: Centralized and Client-Server systems, parallel databases, distributed databases, heterogeneous and homogeneous databases, distributed query processing;

No-SQL Databases: Motivations for Not Just/No SQL (NoSQL) databases, variety of NoSQL databases, introduction to Key-Value databases, Key-Value database.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Individual and Group Projects Student-centred discussions

Assessment:
End-of-course written examination and practical examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Elmasri, R., Navathe S.B. (2017). Fundamentals of database systems. 7th Pearson Education India.
  2. Silberschatz, A., Korth, H. F., Sudarshan, S. (2019). Database system concepts. 7th McGraw-Hill.
  3. Molinaro, A. (2005). SQL Cookbook: Query Solutions and Techniques for Database Developers. O'Reilly Media, Inc.
  4. Perkins, L., Redmond, E., Wilson, J. (2018). Seven databases in seven weeks: a guide to modern databases and the NoSQL movement. 2nd Pragmatic Bookshelf.
  5. Harrison, G. (2015). Next Generation Databases: NoSQL and Big Data. Apress.
  6. McLaughlin, M., Harper, J. (2014). Oracle Database 12c PL/SQL advanced programming techniques. McGraw-Hill Education Group.
BECS 44292 - Human Computer Interaction

Course Code

BECS 44292

Title

: Human Computer Interaction

Pre-Requisites

: BECS 21213, BECS 22253

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe how interface design practices and methods can be integrated with user centered principles and methods now being employed
  • identify current trends in HCI research
  • discuss the nature of the HCI design process
  • apply an integrated perspective to the design process
  • recognize the difficulties and pitfalls of translating theory and principles derived from research findings into practical advice on user-centered design
  • apply metaphorical reasoning and conceptual models to user interface design
  • express strategies for improving web site usability
  • describe the major aspects of usability engineering
  • apply usability and design principles to the evaluation of current interfaces.
Course Content:
Fundamentals of HCI (theories, models, paradigms, usability studies and controlled experimentation); Interaction design basics; HCI in the software process: Design and implementation, Evaluation of user interfaces, universal design and user support; Current trends in HCI research; Ubiquitous and pervasive computing; Human factors that affect the development of software, and design of user interfaces for interactive systems.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions.

Assessment:
End-of-course written examination  and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Sharp, H., Preece, J., Rogers, Y. (2019). Interaction Design: Beyond Human-Computer Interaction. 5th Wiley.
  2. Shneiderman, B., Plaisant, C., Cohen, M., Jacobs, S., Elmqvist, N. (2016). Designing the user interface: strategies for effective human-computer interaction. 6th Pearson.
  3. Dix, A., Finlay, J. E., Abowd, G. D., Beale, R. (2003). Human-Computer Interaction. 3rd Pearson.
  4. Platt, D. (2016). The Joy of UX: User Experience and interactive design for developers. 1st Edition. Addison-Wesley Professional.
BECS 44303 - Information Assurance and Security

Course Code

: BECS 44303

Title

: Information Assurance and Security

Pre-Requisites

: BECS 12233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain basic security concepts such as identity management and access control, as well as the basic cryptographic operations
  • demonstrate knowledge in SAML, XACML and Web services security
  • practice Multilevel and multilateral security
  • formulate forensics analysis after a security attack
  • describe the enterprise security relating to the business process modeling.

Course Content:
Introduction: Enterprise security and risk analysis; Identity management: Passwords and two-factor authentication, authentication protocols, single sign-on: SAML and OpenID; Access control: Access control matrix, ACLs, capabilities and PKI, attacks and sandboxing; Safety analysis; HRU and Take-grant; Federated access control: XACML; Web service security; Enterprise web service security and SAML; REST security and OAuth; Private key security: Stream ciphers, Birthday theorem, Block ciphers, Hash functions; Public key security: Diffie-Helman, El Gamal, RSA, Public key protocols, Advanced cryptosystems; Cryptography APIs: Java Cryptography Extension (JCE), Bouncy Castle, PKI and certificate management; Multilevel security: Bell-Lapadula, noninterference, non-deducibility, Role-based access control; Multilevel integrity: Biba, Multilateral security: Compartmentation, Chinese Wall, Clark-Wilson, BMA; Secondary uses and privacy.

Method of Teaching and Learning:
Lectures, Tutorials and Assignments

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Anderson, R. (2008). Security engineering. 2nd John Wiley & Sons.
  2. Saydjari, S. O. (2018). Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time. 1st McGraw-Hill Education.
  3. Shimeall, T., Spring, J. (2013). Introduction to information security: a strategic-based approach. Syngress.
  4. Hook, D. (2005). Beginning cryptography with Java. John Wiley & Sons.
  5. Vacca, J. R. (2017). Computer and information security handbook. 3rd Edition. Morgan Kaufmann.
BECS 43816 - Research Project (Group)

Course Code

: BECS 43816

Title

: Research Project

Pre-Requisites

: All the compulsory BECS courses

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • planning and carrying out a research project in Electronics
  • identifying, defining and investigating a research problem in electronics to provide a solution
  • writing a research project plan, documenting progress in detail, and conducting progress reviews
  • using suitable electronics principles to solve a research/design problem
  • writing a dissertation on the research findings and presenting the results to convince others via effective communication, both in writing and orally
  • ethical research practices, and improvement of technical abilities
Course Content:

A group of students will be assigned a research project in Computer Science or Electronics. The project must include identifiable individual components and group components. Initially students have to submit a project proposal and select suitable project supervisor(s). The students’ progress will be evaluated regularly by the supervisor and the examination panel. A project report in the form of a dissertation will be submitted at the end of the project.

Method of Teaching and Learning:
PODBL (Project Oriented Design Based Learning) method will be utilized.

Assessment:
Based on Progress Reports / Presentations, Thesis and  Viva

Recommended Reading :
Reading list and material relevant for the selected research topic.

BECS 44826 - Industrial Training

Course Code

: BECS 44826

Title

: Industrial Training

Pre-Requisites

: All compulsory COSC course units of level 1, 2 and 3

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • apply theoretical knowledge in an industrial & professional setting
  • develop professional competencies and relationships
  • develop exposure to a professional field and an understanding of professional etiquette
  • evaluate the professional organizational culture
  • evaluate critically the internship experience as an exemplar for the field
  • prepare a professional report on the training
Course Content:

Apply theoretical knowledge in an industrial & professional setting, Development of professional competencies and interpersonal relationships, Develop exposure to a professional field and an understanding of professional etiquette. The student should learn from observing the professional behaviour of the supervisor and other employees at the site, as well as through interaction with customers or clients. The student also practices proper business etiquette while fulfilling his or her training responsibilities, and evaluates the professional organizational culture. The student should be able to understand the dynamics of an organization’s culture through observing and reflecting on how decisions are made, how work is structured, how power is shared, how colleagues interact, how an organization’s mission/vision are implemented, find to what degree accountability and feedback are present in the organization, evaluate critically the internship experience as an exemplar for the field, compose a professional report on the training, and learn the basic structure and ingredients of a technical report on an industrial experience.
 
Method of Teaching and Learning:
Supervisor of the industrial organization will assign a project to be completed at the end of the training period

Assessment:
Basd on  Presentations/ Viva, Diary, Report and Industry Evaluation

Recommended Reading :
Reading and reference material recommended by the relevant industry.

*The following level 4 course modules will only be offered for the students who follow the BSc Honours Degree Programme in Electronics and Computer Science, Specialized in Computer Science.
Level 04
BECS 44613 - Data Science

Course Code

: BECS 44613

Title

: Data Science

Pre-Requisites

: BECS 44263

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe what is data science and the skill sets needed to be a data scientist
  • explain the basic concepts of statistical inference
  • identify probability distributions commonly used as foundations for statistical modeling
  • use an appropriate language to carry out basic statistical modeling and analysis
  • explain the significance of Exploratory Data Analysis (EDA) in data science
  • describe the data science process and how its components interact
  • use APIs and other tools to scrap the Web and collect data
  • apply basic machine learning algorithms for predictive modeling
  • identify common approaches used for feature generation
  • identify basic dimensionality reduction algorithms.

Course Content:
Data Wrangling: Static Files, SQL, Web Scraping, APIs and Messy Data; Statistical Inference: Event Space, Probability, Distributions and Hypothesis Testing; Summarizing and Visualizing Data: Descriptive Statistics, Univariate and Multivariate Exploratory Data Analysis; Predictive Modeling: Regression, Classification, Data Preprocessing, Model Evaluation and Ensembles; Data Mining: Dimensionality Reduction, Clustering, Association Rules, Anomaly Detection, Network Analysis and Recommender Systems; Specialty Topics: Data Engineering, Natural Language Processing, and Web Applications.

Method of Teaching and Learning:
Lectures, Tutorials and Assignments 

Assessment:
End-of-course written examination, practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. O'Neil, C., Schutt, R. (2013). Doing data science: Straight talk from the frontline. O'Reilly Media, Inc..
  2. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. O'Reilly Media, Inc..
  3. Kelleher, J. D., Tierney, B. (2018). Data science. MIT Press.
  4. EMC Education Services (Ed.). (2015). Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons.
BECS 44622 - Big Data Technologies

Course Code

: BECS 44622

Title

: Big Data Technologies

Pre-Requisites

: BECS 12243, BECS 44283

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe MapReduce as a computation model and an execution framework
  • use the big data application stack
  • compare different tools in the Hadoop stack fit in the big picture of big data analytics
  • design distributed machine learning algorithms
  • use cloud computing services (Amazon Web Services) to build your clusters and run large-scale data processing applications
  • identify and describe the data warehousing concepts and operations.

Course Content:

Big Data introduction: Big data: definition and taxonomy, Big data value for the enterprise, Setting up the demo environment, first steps with the Hadoop ecosystem; The Hadoop ecosystem: Introduction to Hadoop, Hadoop components: MapReduce/Pig/Hive/HBase, loading data into Hadoop, Handling files in Hadoop, Getting data from Hadoop; Querying big data with Hive: Introduction to the SQL Language, from SQL to HiveQL, using Hive to query Hadoop files; Big Data & Machine Learning: Machine learning tools: Spark & SparkML, H2O, Azure ML; Data Warehousing: Data Warehouse introduction, SQL OLAP Extensions, An Algebraic OLAP Operator; Object-Oriented and Object-Relational Databases: Object-Oriented Data Model, Object-Relational Database Systems.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination, practical  examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. White, T. (2015). Hadoop: The definitive guide. 4th O'Reilly Media, Inc..
  2. Mayer-Schönberger, V., Cukier, K. (2013). Big data: A revolution that will transform how we live, work, and think. Houghton Mifflin Harcourt.
  3. Marz, N., Warren, J. (2015). Big Data: Principles and best practices of scalable real-time data systems. New York; Manning Publications Co.
  4. Jukic, N., Vrbsky, S., Nestorov, S. (2020). Database systems: Introduction to databases and data warehouses. 2nd Prospect press.

 

BECS 44633 - Object-Oriented Analysis and Design

Course Code

: BECS 44633

Title

: Object Oriented Analysis and Design

Pre-Requisites

: BECS 12243

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • design and implement projects using Object Oriented concepts
  • model real-world scenarios using UML diagrams
  • apply appropriate software design patterns effectively in large-scale software development
  • generate code from design using an appropriate software tool
  • compare and contrast various testing techniques.

Course Content:
UML Diagrams: Introduction to OOAD, Unified Process, UML diagrams, use case, class diagrams, interaction diagrams, state diagrams, sequence diagrams, activity diagrams, package diagrams, component and deployment diagrams, relationship between different diagrams, logical architecture and its refinements; General Responsibility Assignment Software Patterns (GRASP): Designing objects with responsibilities, creator, information expert, low coupling, high cohesion, controller, polymorphism; Coding and Testing.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions.
The use of O-O approach in industry will be discussed by suitable Industrial personnel.

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Larman, C. (2004). Applying UML and patterns: an introduction to object oriented analysis and design and iterative development. 3rd Prentice Hall.
  2. Bennett, S., Farmer, R. (2010). Object-oriented systems analysis and design using UML. 4th McGraw-Hill.
  3. Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. 1st Addison-Wesley.
  4. Fowler, M. (2004). UML distilled: a brief guide to the standard object modeling language. 3rd Addison-Wesley Professional.
  5. Jorgensen, P. C. (2013). Software testing: a craftsman's approach. 4th Edition. Auerbach Publications.
BECS 44643 - Logic Programming

Course Code

: BECS 44643

Title

: Logic Programming

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • demonstrate a deeper understanding of the basic logical concepts
  • implement logic programs for real world problems using an appropriate language
  • explain the notion of formal proof, and construct simple proofs in a natural deduction proof system for predicate logic
  • explain how logic programming differs from other programming paradigms.

Course Content:
Propositional Logic: syntax and semantics, natural deduction proofs, decision procedures; Predicate Calculus: syntax and semantics, natural deduction proofs, undesirability and incompleteness; Logic Programming: Horn fragment of predicate logic, unification and top-down operational semantics, use of a logic programming language, Datalog and bottom up operational semantics; Reasoning about sequential programs: partial correctness assertions, computing weakest preconditions, loop invariants, reasoning about termination.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination,practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Huth, M., Ryan, M. (2004). Logic in Computer Science: Modelling and reasoning about systems. 2nd Cambridge university press.
  2. Sterling, L., Shapiro, E. (1994). The Art of Prolog: Advanced Programming Techniques. 2nd The MIT Press.
  3. Shinghal, R. (1992). Formal Concepts in Artificial Intelligence. 1st Chapman & Hall.
  4. Bramer, M. (2013). Logic programming with Prolog. 2nd Edition. Springer.
BECS 44653 - Digital Image Processing and Computer Vision

Course Code

: BECS 44653

Title

: Digital Image Processing and Computer Vision

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • demonstrate the steps for solving of image processing/vision problems
  • apply knowledge and understanding of pre-processing, segmentation, description, and recognition
  • choose appropriate methods and implement solutions to small-scale image processing and vision problems.

Course Content:
Overview of Applications of Image Processing and Vision; Digital Image Formats; Colour Models; Data Types; Operators; Manipulating Matrices; File I/O; The Image Processing Toolbox; Thresholding; Histogram Equalization; Linear Filtering (convolution); Noise Reduction; Nonlinear Filtering; Gradients; Edge Magnitude and Direction; Finite Difference Filters; Laplacian of Gaussian Filter; Canny Edge Detector; Colour Transformations; Colour Histogram Equalization; Colour Median Filtering; Colour Gradient and Edge Detection; Thresholding as a form of Segmentation; Basic Global Thresholding; Optimal Global Thresholding; Techniques to improve global thresholding; Region Labeling; Boundary Tracing; Edge Based Segmentation; Region-based Segmentation; Hybrid Methods; Boundary-based measures of accuracy; Region-based measures of accuracy; Measuring Reproducibility; Boundary Descriptors; Region and Shape Descriptors; Texture Description; SIFT Features and Bags of Words; Supervised and Unsupervised Clustering; Nearest Neighbor Classifiers; Bayesian Classification; Training and Testing Methodologies; Morphological Image Processing; Frequency Domain Filtering.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group and individual projects, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Davies, E. R. (2017). Computer vision: principles, algorithms, applications, learning. 5th Academic Press.
  2. Solem, J. E. (2012). Programming Computer Vision with Python: Tools and algorithms for analyzing images. O'Reilly Media, Inc..
  3. Hartley, R., Zisserman, A. (2003). Multiple view geometry in computer vision. Cambridge university press.
  4. Petrou, M. & Petrou, C., (2010), Image Processing: The Fundamentals, 2nd Edition, Wiley
BECS 44663 - Theory of Computing

Course Code

: BECS 44663

Title

: Theory of Computing

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • demonstrate the knowledge of advanced concepts of the theory of computing
  • distinguish computing models
  • simulate computing models.

Course Content:

Finite Automata: Deterministic and nondeterministic finite automata, Recursively Enumerable (RE) languages; Regular Expressions and Languages: Criteria for regular languages and expressions, pumping lemma, closure properties of regular languages; Context-Free Grammars and Languages: Context Free Grammars (CFGs), Context Free languages (CFLs), parse trees, and ambiguity in grammars and languages; Pushdown Automata: Pushdown Automata (PDA) and Context-Free Languages (CFLs) and nondeterministic CFLs; Turing Machine (TM): Basic Turing machine, variations of TMs, restricted TMs, TMs and computers; Undecidability: Codes for TMs, diagonalization language, recursive languages, complements of recursive languages and RE languages, universal language, reductions, post correspondence problem; Intractable Problems: Class P, NP and NP complete problems.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Sipser, M. (2007). Introduction to the Theory of Computation. 2nd Thomson Course Technology.
  2. Hopcroft, H. J., Motwani, R., Ullman, D. J. (2007). Introduction to Automata Theory Languages and Computation. 3rd Pearson Education.
  3. Sudkamp, A. T. (2005). Languages and Machines: An Introduction to the Theory of Computer Science. 3rd Pearson.
  4. Martin, C. J. (2014). Introduction to Languages and the Theory of Computation. 2007th Edition. McGraw Hill Educatio
BECS 44673 - Theory of Compilers

Course Code

: BECS 44673

Title

: Theory of Compilers

Pre-Requisites

: BECS 21223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • express the grammar of a programming language
  • develop lexical and syntax analyzers and use them in the construction of scanners and parsers
  • employ the operations of semantic analysis
  • develop a code generator
  • use different compiler optimization schemes in addition to efficient register allocation and garbage collection
  • design and program a complete working compiler for a given language.

Course Content:
Introduction to the structure of a compiler; Lexical Analysis: The role of the lexical analysis, input buffering, specification of tokens, recognition of tokens, finite automata; Syntax Analysis: Context –Free grammars, writing a grammar, top down parsing, bottom up parsing,  LR Parsers, parser generators; Syntax Directed Translations: Definitions, applications,  syntax directed translation schemes; Intermediate Code Generation: Variants of syntax trees, three-address code, types of declarations,  translation of expressions,  type checking, control flow, backpatching; Run Time Environments: Storage organization,  stack allocation space, heap management, garbage collection; Code Generation: Issues in the design of code generator, The target language, address in the target code, basic blocks and flow graphs, code generation Algorithm,   developing a simple compiler.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Cooper, K., Torczon, L. (2011). Engineering a compiler. 2nd Morgan Kaufmann.
  2. Aho, A. V., Lam, M.S., Sethi, R., Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools. 2nd Addison-Wesley.
  3. Grune, D., Van Reeuwijk, K., Bal, H. E., Jacobs, C. J., Langendoen, K. (2012). Modern compiler design. 2nd Edition. Springer
BECS 44682 - Research Methodologies

Course Code

: BECS 44682

Title

: Research Methodologies

Pre-Requisites

: BECS 11212

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • demonstrate knowledge of qualitative and quantitative research methods
  • explain the ethical considerations in research projects
  • formulate a scientific problem and evaluate relevant information for a scientific problem
  • analyse results with appropriate statistical methods and present results in a scientific manner
  • demonstrate understanding of the opportunities and limitations of science and its role in society and the responsibility for how it is used.

Course Content:
Information gathering; Formulation of aims for a research project; Formulation of scientific problems and hypotheses; Selection of methods for solving a scientific problem; Qualitative and quantitative research methods; Statistical analysis; Research Ethics.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Mini Research project, Student-centred discussions.

Assessment:
Final report/viva and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Oates, B. J. (2005). Researching information systems and computing. Sage.
  2. Zobel, J. (2015). Writing for computer science. 3rd Edition. Springer.
  3. Kumar, R., (2010), Research Methodology: A Step-by-Step Guide for Beginners, SAGE Publications, Singapore
  4. Kothari, C. R., (2004), Research Methodology: Methods and Techniques, New Age International
BECS 44693 - Multimedia Systems Development

Course Code

: BECS 44693

Title

: Multimedia Systems Development

Pre-Requisites

: None

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • use appropriate multimedia capturing, authoring and production tools
  • illustrate graphic media file format characteristics
  • discuss concepts of graphic file formats
  • discuss streaming media file format characteristics
  • develop a multimedia product including all multimedia elements.
Course Content:
Introduction to Multimedia: Multimedia and Hyper media, Components of multimedia, Multimedia authoringand tools, Stages of a multimedia project, requirements for multimedia projects; Graphics and ImageRepresentation: Text, Images, Audio and Video representation, Image data types, Colour lookup tables, Fileformats; Animation: principles of animation, animation techniques, animation file formats; Drawing: 3-Ddrawing, vector drawing and rendering; Colour in Image and Video: Colour science, Colour models in images,Colour models in video; Lighting: natural light, shading, illumination; Concepts in Video: Types of video signals, Analog video, Digital video, shooting and editing video, non-linear editing; Digital Audio:Digitization of sounds, Quantization and Transmission of audio, Musical Instrument Digital Interface (MIDI);Multimedia Data Compression: Lossless compression algorithms, Lossy compression algorithms, Text andImage compression, Image compression standards, Video compression techniques, Audio compressiontechniques, MPEG audio and video compression; Practical applications using a suitable multimedia authoring tool, copyright issues; Testing and evaluation of multimedia applications.


Method of Teaching and Learning:
Lectures, Tutorials, Practical, Assignments, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Li, Z. , Drew, M. S., (2005), Fundamentals of Multimedia, Pearson Education
  2. Halsall, F., (2001), Multimedia Communications, Addison-Wesley
  3. Andleigh, P. K. & Thakrar, K., Multimedia Systems Design, (1998), Prentice-Hall
  4. Vaughan, T. (2011). Multimedia Making it Work. McGraw Hill.
  5. Timings, R., Wilkinson, S., Cope, N., Folley, D., Thomson, S. (2005). Multimedia Technology. Longman Pub Group.
BECS 44703 - Natural Language Processing

Course Code

: BECS 44703

Title

: Natural Language Processing

Pre-Requisites

: BECS 44223

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • describe characteristics of language and its use and understand their implications for Natural Language Processing (NLP) and NLP applications
  • explain a broad selection of NLP applications, and describe problems or tasks addressed, materials and methods used, how the applications are evaluated, and opportunities for future developments for each application
  • analyze basic NLP tools, and use them to analyze small text corpora
  • use benchmark corpora, commercial and open-source text analysis and visualization tools to explore interesting patterns.

Course Content:
NLP: Introduction, Human languages, models, ambiguity, processing paradigms; Phases in NLP; NLP applications; Text representation in computers, encoding schemes; Linguistics resources: Introduction to corpus, elements in balanced corpus, TreeBank, PropBank, WordNet, VerbNet etc, resource management with XML, management of linguistic data with the help of GATE, NLTK; Regular expressions; Finite State Automata; Word recognition; Lexicon; Morphology; Acquisition models; Finite State Transducer; N-grams; Smoothing; Entropy; Hidden Markov Models (HMM); Support Vector Machines (SVM); Conditional Random Fields (CRF); Part of Speech (POS) tagging: Stochastic POS tagging, transformation based tagging in TBL, handling of unknown words, named entities, multi word expressions; Introduction text analytics; Information Extraction; Machine Translation.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group and individual projects, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Jurafsky, D., Martin, J. H. (2009). Speech and Language Processing. 2nd Pearson Education.
  2. James, A. (1994). Natural language Understanding. 2nd Pearson Education.
  3. Weiss, S. M., Indurkhya, N., Zhang, T. (2010). Fundamentals of Predictive Text Mining. Springer: New York.
  4. Manning, C. D., Manning, C. D., Schütze, H. (1999). Foundations of statistical natural language processing. MIT press.
  5. Deng, L., Liu, Y. (Eds.). (2018). Deep Learning in Natural Language Processing. Springer.
BECS 44712 - Systems Administration

Course Code

: BECS 44712

Title

: System Administration

Pre-Requisites

: BECS 31223, BECS 22233

Co-Requisites 

: None

Learning Outcomes:
At the completion of this course student will be able to:

  • describe the structural components of the Unix/Linux and Windows environments
  • carryout installation and configuration of workstations, servers, software and network devices
  • prepare system backup and apply recovery techniques as necessarily
  • create and manage user accounts and groups
  • assess and optimize system/network performance and security.

Course Content:
An overview of the Unix/Linux and Windows OS/servers; Virtual Machine Environment; System startup and shutdown; Server deployments; Installation and configuration network devices and operating systems; Package managers and software installation; Bash Shell/vim editor;  Administrator responsibilities and getting help; User/group authentication management; System configuration and management; Period tasks automation; Network file systems and data/system backup techniques; Emergency Recovery; System/Network Monitoring and performance analysis techniques; System/Network security.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group project, Student-centred discussions

Assessment:
Based on the  assessments announced at the beginning of the course unit.

Recommended Reading:

  1. Limoncelli, T., Hogan, C. J., Chalup, S. R. (2007). The practice of system and network administration. 2nd Pearson Education.
  2. Nemeth, E., Snyder, G., Hein, T. R., Adelstein, T., Lubanovic, B., Limoncelli, T. (2018). UNIX and Linux system administration handbook. USENIX Open Access Policy, 59.
  3. Soyinka, W. (2016). Linux Administration: A Beginner’s Guide. 7th McGraw-Hill.
  4. Mark, B. (2004). Principles of Network and System Administration/Mark Burgess. 2nd Edition. John Wiley & Sons, Ltd.
BECS 44723 - Semantic Web and Ontological Modelling

Course Code

: BECS 44723

Title

: Semantic Web and Ontological Modelling

Pre-Requisites

: BECS 22253

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • discuss fundamental concepts, advantages and limits of the semantic web
  • use ontologies in the context of Computer Science and the semantic web
  • use the RDF framework and associated technologies such as RDF
  • discuss the relationship between Semantic Web and Web 2.0
Course Content:
Introduction to the semantic web, Semantic web technologies, Layered approach; Introduction to ontologies, Ontology languages for the semantic web – resource description framework (RDF) – Lightweight ontologies: RDF schema – web ontology language (OWL) – A query language for RDF: SPARQL, Logic and inference: Rules, Ontology engineering, On-to-knowledge semantic web architecture, Semantic web and Web 2.0, Applications of semantic web.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group and individual projects, Student-centred discussions

Assessment:
End-of-course written examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Antoniou, G., Harmelen, F. V., (2008), A Semantic Web Primer, MIT Press
  2. Hitzler, P., Krotzsch, M., Rudolph, S., (2009), Foundations of Semantic Web Technologies, CRC Press
  3. Allemang, D., Hendler, J., (2008), Semantic Web for the Working Ontologist: Effective Modelling in RDFS and OWL, 1st Edition, Morgan Kauffmann
  4. Daconta, M. C., Obrst, L. J., Smith, K. T., (2003), The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management, John Wiley & Sons
  5. Powers, S., (2003), Practical RDF, OReilly
  6. Passin, T. B., (2004), Explorer’s Guide to the Semantic Web, Manning Publications

 

BECS 44733 - Cloud Computing

Course Code

: BECS 44733

Title

: Cloud Computing

Pre-Requisites

: BECS 12233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • explain and use cloud computing environments
  • apply knowledge of standards in distributed computing, and the impact of standardisation on application programs
  • practice the deployment of cloud computing applications
  • explain the cloudlet architecture.

Course Content:
Fundamentals of Cloud Computing; Concepts and Models; Cloud-enabling Technology; Cloud Security; Cloud Infrastructure Mechanisms; Cloud Management; Cloud deployment; Cloud Computing Architecture; Cloudlet architecture; Parallel programming in the cloud; Virtualization; Distributed storage systems; Cost Metrics and Pricing; Service Quality Metrics and Software License Agreements.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Practical sessions, Group project, Student-centred discussions

Assessment:
End-of-course written examination, practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Erl, T., Puttini, R., Mahmood, Z. (2013). Cloud Computing: Concepts, Technology & Architecture. Prentice Hall
  2. Rosenberg, J., Mateos, A. (2010). The Cloud at Your Service: The When, How, and Why of Enterprise Cloud Computing. Manning Publications Co.
  3. Rafaels, R. J. (2018). Cloud Computing: From Beginning to End. 2nd Edition. CreateSpace Independent Publishing Platform.
BECS 44743 - System Level Programming

Course Code

: BECS 44743

Title

: System Level Programming

Pre-Requisites

: BECS 22233

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • understand the history, attributes and architecture of UNIX Operating System.
  • identify the usage of various commands and utilities in UNIX environment.
  • interact with UNIX system and UNIX editors for various tasks.
  • write Shell scripts using essentials in Shell programming.
  • design and Implement Shell functions to solve various problems.
  • use a low-level language ( C ) to interface with an operating system (UNIX).

Course Content:
Introduction to the UNIX Operating System, UNIX Environment and Architecture, Attributes and Varieties of UNIX, Basic UNIX Commands and Utilities.
Files: UNIX file system, Creating, listing, editing, and deleting Files, Directory Management, File system calls and File permissions: File and Directory Access modes, chmod, Changing Permission.
Processes: Basic concepts, daemon processes, process creation and termination, process diagnostics (ps, kill, top), Filters: head, tail, sort, Filters using regular expressions – grep, egrep, sed and awk.
Scripting Shell Scripting, Shell Types: Bourne, Korn and Bash, Shell Programming: Variables, Arrays, Decision Making, Loops and Functions, use a low-level language ( C ) to interface with an operating system (UNIX) and UNIX editors.

Method of Teaching and Learning:
Combination of Lectures, Tutorial discussions, Group and individual projects, Student-centred discussions

Assessment:
End-of-course written examination, practical examination and other assessments announced at the beginning of the course unit.

Recommended Reading :

  1. Glass, G., & Ables, K. (2003). UNIX for Programmers and Users. Pearson Education India.
  2. Das, S. (2006). UNIX, Concepts and Applications. Tata McGraw-Hill.
  3. Forouzan, B. A., & Gilberg, R. F. (2003). UNIX and Shell Programming: A Textbook. Cengage Learning.
  4. Venkateshmurthy, M. G. (2009). Introduction to Unix and Shell Programming. Pearson Education India.
BECS 43838 - Research Project (Individual)

Course Code

: BECS 43838

Title

: Research Project

Pre-Requisites

: All the compulsory BECS  courses

Co-Requisites 

None

Learning Outcomes:
At the completion of this course student will be able to:
  • planning and carrying out a research project in Electronics
  • identifying, defining and investigating a research problem in electronics to provide a solution
  • writing a research project plan, documenting progress in detail, and conducting progress reviews
  • using suitable electronics principles to solve a research/design problem
  • writing a dissertation on the research findings and presenting the results to convince others via effective communication, both in writing and orally
  • ethical research practices, and improvement of technical abilities
Course Content:

A group of students will be assigned a research project in Computer Science or Electronics. The project must include identifiable individual components and group components. Initially students have to submit a project proposal and select suitable project supervisor(s). The students’ progress will be evaluated regularly by the supervisor and the examination panel. A project report in the form of a dissertation will be submitted at the end of the project.

Method of Teaching and Learning:
PODBL (Project Oriented Design Based Learning) method will be utilized.

Assessment:
Research proposal (after one month of Level 4) 10, Research progress presentation (at the beginning of Semester 2) 10, Project Demonstration 10, Final oral presentation 20, Dissertation 40, Presentation at symposium 10 (Mini symposium will be organised by the Departments and evaluated by external field experts)

Recommended Reading :
Students must find related references themselves

© 2019 Department of Statistics & Computer Science, Faculty of Science, University of Kelaniya, Sri Lanka. All Rights Reserved.