Department of Computer Science

Ahmadu Bello University, Zaria

 

PGD. Computer Science Programme

First Semester

Second Semester


Courses Outline

    Detailed catalog descriptions of the courses are provided in this section. Pre-requisite information and reference textbooks are also provided for each course.

  • 1.PGCS700: Project (3CU)

    Students will be expected to carry out a study in a relevant area of Computer Science and submit a report which involves the extensive use of programming and Computers. The project should lay emphasis on the application part of Computers in the society.

  • 2.PGCS711: Introduction to Computing (2CU)

    Information Concepts and Processing. Elements of a Computer System. Operating Systems. Computers and Communication. Programming Languages. Classification. Principles of Data Security. Maintenance and Trouble Shooting. Information Technology Applications.

  • 3.PGCS712: Discrete Structure (3CU)

    Functions and relations. Basics of counting: inclusion-exclusion principle, pigeon-hole principle, permutations, recurrence relations, generating functions. Graphs and trees: definitions, properties and applications. Discrete probability: computing probabilities, dependent and independent events, applications.

  • 4.PGCS714: Data Structure and Algorithm Analysis (3CU)

    Review of object-oriented concepts; Basic algorithm analysis - the big-O notation; Fundamental data structures – implementation strategies for stacks, queues and lists; Time and space analysis; Recursion; Time and space analysis; Implementation strategies for tree and graph algorithms; Hash tables; Time and space analysis;

  • 5.PGCS721: Computer Organization (3CU)

    Introduction to computer organization. Number system, Signed and unsigned number representation, character representation, ASCII code and UNICODE. Von Newman and bus model. Instruction format and types, memory and I/O instructions, Addressing Modes, Stack operations and interrupts. Datapath design and control unit design. Register Transfer Language, Microprogramming and Hardwire control. Reduced Instruction set and Complex instruction set computers.

  • 6.PGCS722: Computer Architecture (3CU)

    Number system, Symbolic logic and truth functional calculus. Boolean Algebra and logic Gates ; minimization of completely and incompletely specified Boolean function; Combination circuits design; Combination logic with MSI and LSI; basic flip flops ; SR, JK, D & T Sequential circuits analysis and design. Sequential machine minimization. Registers. Counters and the memory units. Memory hierarchy and cache memory. Instruction pipelining, superscalar architecture. Parallel architectures and interconnection networks.

  • 7.PGCS733: Systems Analysis and Design (2CU)

    The software development life cycle: conception, business case, business context, system requirements, requirements analysis, systems analysis, design, implementation, testing, deployment, maintenance. The Unified Modeling Language (UML): models, use case diagrams, activity diagrams and state chart diagrams, sequence and collaboration diagrams, class diagrams, component diagrams. Managing the process: customers, organization types, project management, teams and team dynamics, computer assisted software engineering (CASE) tools, documentation.

  • 8.PGCS734: Software Engineering (3CU)

    Fundamental design concepts, design notations, and architectural design methods for large-scale software systems. Several designs: examples of their use, comparisons among them. Concepts of information hiding, data abstraction, concurrency, and object-oriented software construction.

  • 9.PGCS741: Data Communication and Networks (3CU)

    Introduction to computer networks and layered architectures: connectivity, topology, circuit and packet switching, TCP/IP and ISO models; Application layer: C/S model, DNS, SMTP, FTP, WWW, socket programming and network security; Transport layer: TCP and UDP, congestion control; Network layer: internetworking, addressing and routing algorithms and protocols; Data link layer: framing, flow and error control protocols, PPP, MAC and LANs; Physical layer: principles of data communications, circuit switching, coding, multiplexing and transmission media. Network security: fundamentals of cryptography, secret and public key algorithms, authentication protocols.

    Suggested Lab work :
    The lab involves several projects to gain hands-on experience with network devices, programming and tools. More specifically, it provides students with the opportunity to: Setup various servers such as DNS, DHCP, Web Servers on Windows/Linux platforms; Develop simple client/server network applications using sockets; Create simple web pages; Simulate network; Analyze various protocols by capturing packets; Measure network utilization under varied situations; Use various network-related commands; Configure switches and routers.

  • 10.PGCS743: Web Application Engineering I (3CU)

    The Internet (network layers, TCP/IP, HTTP, Internet services) ; The Web architecture (Client-server architecture, multi-tier architecture, URL) ; XHTML; DHTML (Cascaded Style Sheet, JavaScript, DOM) ; Web interface and interactivity design principles and practice. Incorporating multimedia content into Web pages (using Photoshop, Flash or similar tools).

  • 11.PGCS744: Web Application Engineering II 2CU:

    Server-side programming. Tools for dynamic Web Applications development. Integrating databases into Web applications. Developing Web applications with multiple users and multiple privileges. Cookies. Security issues in Web applications.

  • 12.PGCS751: Database Management (3CU)

    Basic database concepts. Conceptual modeling. Relational data model. Relational theory and languages. Database Design. Database security and integrity. Introduction to query processing and optimization. Introduction to concurrency and recovery.

    Suggested Lab work:
    Programming assignments to learn database design using CASE tools. Introduction to back-end/Server-based Relational Database Management System (RDBMS). Learning Standard SQL (interactive/embedded). Introduction and programming assignments on Front-End tools. Programming team projects to design and develop real life database systems using the learned tools.

  • 13.PGCS761: Object Oriented Programming I (3CU)

    Overview of computers and computing; Introduction to object-orientation as a technique for modeling computation. Introduction of a typical object-oriented language, such as Java; Basic object-oriented concepts; Basic program building blocks; Arrays; Simple recursive algorithms; inheritance; polymorphism.

    Suggested Lab work :
    Programming assignments leading to extensive practice in problem solving and program development involving the use of the various data structures implemented in the course.

  • 14.PGCS762: Object Oriented Programming II 3CU:

    Advanced object-oriented programming - polymorphism, abstract classes and interfaces; Program organization using packages/namespaces; Use of API – use of iterators/enumerators, List, Stack, Queue from API; Recursion; Event-driven programming.

  • 15.PGCS772: Operating System (3CU)

    Fundamentals of operating systems design and implementation. History and evolution of operating systems; Types of operating systems; Operating system structures; Process management: processes, threads, CPU scheduling, process synchronization; Memory management and virtual memory; File systems; I/O systems; Security and protection; Case-study.

    Suggested Lab work :
    Implementation of user-defined utilities/commands for UNIX by writing systems programs using different types of system calls including those for file/directory management, process management, signal management, and client/server management. Also involve practice on various aspects of shell environment and shell programming.

  • 16.PGCS791: Introduction to Artificial Intelligence (2CU)

    Introduction to the types of problems and techniques in Artificial Intelligence. Problem-Solving methods. Major structures used in Artificial Intelligence programs. Study of knowledge representation techniques such as predicate logic, non-monotonic logic, and probabilistic reasoning. Examples of expert systems. Introduction to natural language understanding and various syntactic and semantic structures. Expert systems. Introduction to computer image recognition.

  • 17.PGCS792: Introduction to Human Computer Interaction (2CU)

    What is HCI and why is it needed? Human information processing and human error Models of the user and interaction, Principles and application of user-oriented design, User-centered design methodologies, Interface technology, devices, styles and applications. Upstream usability engineering, task, user and situation analysis, Downstream usability engineering, experimental, interpretive and predictive evaluation. Visual and interface design guidelines, standards and metrics, Usability issues and the World Wide Web, Groupware and computer supported cooperative work.

  • 18.PGCS793: Simulation Methodology (2CU)

    Introduction to Simulation: terminology, types, models, classification, application areas, steps, merits/demerits. Discrete-event simulation, examples. Statistical models. Queuing models. Random numbers. Random variants. Input modeling.

  • 19.PGCS794: Professional and Social Aspects of Computing (2CU)

    Professional aspects; professions and the professional; professional institutions; professional ethics and responsibilities; the computer professional as expert witness. Standards, best practice. Legal background, sources of law; civil and criminal law. Intellectual property rights, software copyright, patents, designs, trademarks and passing off; copyright and webpages, Internet domain names, protection of computer imagers and icons, jurisdiction; confidentiality. Data protection law; freedom of movement of personal data; privacy in telecommunications. Computer crime; fraud; computer misuse; viruses; threatening emails; pornography; grooming in chat rooms. Social aspects of the workplace/society at large. The impact of IT on society.

Entry Requirements

  • For a student to be given admission for the PGDCS programme, he/she must satisfy the requirement of BSc. Computer Science and also must have:
    I. A bachelor’s degree or its equivalent, with at least a third class, from a recognized institution in physical sciences, engineering and related areas.
    II. HND in relevant area (Physical Sciences, Engineering, Accountancy, Business Administration and Economics with proven adequate background).


Duration of the programme

  • The duration for PGDCS programmes are two years and one year respectively with each year consisting of two semesters.