Course description

This course provides fundamental knowledge of object-oriented programming. Students are introduced with an overview of how to create computer software using OO concepts. The main thrust of the course is directed towards learning the fundamental tools in designing and implementing computer programs using the Java programming language. More generally this course is an introduction to algorithmic problem solving, imperative and object-oriented programming. The course is also designed to provide skills in Unified Modeling Language (UML).

Course Learning Outcomes

On successful completion of this module, the student will be able to :

  •  demonstrate an elementary background in object-oriented programming skills
  • Demonstrate an understanding of the software design using Unified Modeling Language (UML).
  • demonstrate an understanding of performing several calculations and conversions of the different number systems,
  • Demonstrate an understanding of the basic data structures and algorithms which recur time and again in programming, appreciation for the way in which object-oriented programming, in this case, Java facilitates reusable code, and awareness of computational complexity issues of running time and memory as they arise in programming.
  • ability to write java codes for various applications
  • Ability to apply UML for software design

Course content

  • Introduction to software engineering, algorithms, and programming, (software development activities-analysis, design, implementation, testing, and maintenance.
  • Object-oriented concepts (Object, Methods, Classes, Inheritance, Polymorphism, encapsulations, Modularity, Abstraction, etc.)
  •  Java Compilers (Commercially available and Open Source Java compilers)
  •  Introduction to UML (Use Case diagrams, Class diagrams, Sequence diagrams, Activity diagrams, State diagrams, etc)
  • Java class libraries (inbuilt classes) and user-defined java classes,
  • Java packages, interfaces and Java APIs,

Course Materials

  • John Lewis, William Loftus Java Software Solutions, Foundations of Program Design Addison-Wesley, 4th Bk&CD edition, Published 2004, 910 pages, ISBN 032132203
  • Joshua Bloch   Effective Java Programming Language Guide Addison-Wesley, Published 2001,  ISBN 0201310058
  • Ken Arnold, James Gosling The Java Programming Language Addison-Wesley, 3rd edition, Published 2000,  ISBN 0201704331


Course Description

This course covers the basic mathematics that is required for subsequent courses in Computer Science.    The student applies mathematical ideas in understanding Computer concepts. The student is able to use the computer to address real-life problems that can be expressed mathematically. 

Course Learning Outcomes

On successful completion of this module, the student will be able to:

  • Understand the basic concepts of mathematics as they apply to computer science, and have developed an appreciation of the way that mathematics can assist their own problem solving and implementation of solutions.
  • The ability to determine the validity of a given argument and will be able to construct mathematical proofs independently.
  • The ability to solve mathematical problems numerically.
  • Students will demonstrate the ability to solve problems, including applications outside of mathematics.
  • Facility with mathematics is perhaps the ultimate transferable skill for a computer scientist or engineer, promoting a logical and analytical approach to problem-solving over a wide range of topics and domains, and providing a toolkit of general principles for understanding relationships between concepts and objects.

 

Course Content

  • Introduction to Discrete Structures
  • Extrapolation
  • Set Theory
  • Predicate Logic
  • Recursion
  • Functions

Compulsory reading materials

  • Set Theory and Related Topics, Seymour Lipschutz, Publisher: McGraw-Hill Companies (1998), ISBN: 0-07-038159-3

 

Optional reading materials

  • Sets Logic and Maths for Computing, 2nd Edition, David Makinson, Publisher:  Springer-Verlag London Limited (2012), ISBN 978-1-4471-2500-6
  • Open Course Ware on Critical Thinking, Logic, and Creativity, Joe Lau and Jonathan Chan,    2012, http://philosophy.hku.hk/think/

Course Description

This course will study basic principles of operating systems: addressing modes, indexing, relative addressing, indirect addressing, stack maintenance; implementation of multitask systems; control and coordination of tasks, deadlocks, synchronization, mutual exclusion; storage management, segmentation, paging, virtual memory; protection, sharing, access control; file systems; resource management; evaluation and prediction of performance. Introduction to operating systems.

Course Learning Outcomes

On successful completion of this module, the student will be able to :

  •  Demonstrate an understanding of the importance of Operating System
  •  Demonstrate an understanding of theoretical concepts and programming constructs used for the operation of modern operating systems
  • Demonstrate an understanding of the functions of operating System in managing the hardware and software resources of the system

Course Content

  •  Operating System (Overview and history)
  • What is operating system
  •  Memory Management
  •  Storage management
  •  File-System Interface,
  •  Protection and Security
  • Goal and Principles for Protection, Security Issues

Compulsory Reading Materials

·         Modern Operating Systems, by Andrew S. Tanenbaum, Publisher: Prentice Hall, Hardcover, 2nd edition, Published, 2001, ISBN 0130313580

  • Andrew Tanenbaum, Modern Operating Systems, Prentice Hall.
  • William Stallings, Operating Systems, Prentice Hall.
  • Harvey M. Deitel, An introduction to operating systems. Addison-Wesley.
  • Andrew Tanenbaum & Albert Woodhull, Operating Systems: Design and Implementation. Prentice-Hall.
  • A.M. Lister, Fundamentals of Operating Systems. Macmillan (1979).
  • Operating System Concepts with C & C++,  by Silberschatz, Publisher: Wiley, Hardcover, 7th edition, Published 2004, ISBN 0471694665

Optional Reading Materials

  • Operating Systems Concepts with Java, 6th Edition Abraham Silberschatz, Peter Bear Galvin, Greg Gagne, Publisher: Wiley, Hardcover, 6th edition, Published 2003, ISBN 0471489050
  • Douglas Comer, Operating System Design - The XINU Approach. Prentice-Hall

Course description

To enable students to understand the Art of Multimedia, Document architecture and content management, Multimedia over the network, To enable students to be able to Design and develop multimedia applications according to different themes using multimedia application tools.

Course Learning Outcomes

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

Understand and define multimedia and explain the elements of multimedia

  • Enumerate the different applications of multimedia
  •  Describe the different stages of multimedia software development
  •  Understand and be able to list the features of different font editing and designing tools
  • Understand and the specifications of different optical storage devices.
  • Enumerate the architecture of MHEG.

Course Content

  • Introduction to Multimedia and it’s Elements
  • Multimedia Hardware
  • Documents, Hypertext, Hypermedia
  •  Multimedia Communication Systems
  • Multimedia operating system
  •  Multimedia databases

Course Materials

  •  Multimedia: Computing, Communications, and Applications by Ralf Steinmetz, Klara Nahrstedt, Publisher: Prentice Hall; 1st edition (1995) ISBN: 0133244350
  • Perspectives on Multimedia - Communication, Media, and Information Technology, Robert Burnett, Anna Brunstrom, Anders Nilson, Publisher: Wiley, Hardcover, Published May 2004, ISBN 0470868635
  • Multimedia Technologies and Applications for the 21st Century: Visions of World Experts (The Kluwer International Series in Engineering and Computer Science), by Borko Furht (Editor) Publisher: Springer; ( 1997) ISBN: 0792380746