COURSE CONTENTS AND DESCRIPTION
- CSC101 - Introduction to Computer Science ( 2 units)
History of Computer Science and their generations. Computer Hardware; functional components Modern I/0 units Software: Operating Systems, Application Packages Program: Flow charts and algorithms, Number system and Representation. Introduction to problem solving methods and algorithm development, designing, coding, debugging and documenting programmes using techniques of a good programming language style, programming language and programming algorithm development. Programming Fundamentals with BASIC (History of Programming), Programme Structure, Statement, Syntax and Semantics of programming.
- CSC102 - Introduction to Computer Applications ( 2 units)
Operating Systems Fundamentals (Definition, Functions, Features, Examples,) Microsoft Windows Operating Environment, and Windows Accessories. Booting (Types) and Shutting Down the Computer, Using the Mouse and Keyboard, Files and Folders/Directories, Computer System Protection (Virus, Trojans, and Worms, Application Software (Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Access, and Microsoft Publisher).
- CSC202 - Object-Oriented FORTRAN Programming (3 units)
Fortran Basics, Variables, declarations and types. Expressions and Assignments.Logic Expressions, IF-then statements. Loops, Arrays, Sub-programs, Random numbers and Monte Carlo simulations, Simple Input and Output, Format Statements, File I/O, Common Blocks, Data and Block Data. ‘Debugging, Running Fortran programs, Sample Fortran Program for LABS.
- CSC203 – Discrete Structure (3 units)
Basic Set Theory: Basic definitions, Relations, Equivalence Relations Partition, Ordered Sets. Boolean Algebra & Lattices, Logic, Graph theory: Directed and Undirected graphs, Graph Isomorphism, Basic Graph Theorems, Matrices; Integer and Real matrices, Boolean Matrices, Matrices med m, Path matrices. Adjacency Vectors/Matrices: Path adjacency matrix, Numerical & Boolean Adjacency matrices. Applications to counting, Discrete Probability Generating Functions.
- CSC204 - Computer Organization and Assembly Language ( 3 units)
Introduction to Data representation, and number bases, Fixed and Floating point systems.Boolean algebra and switching theory. Manipulation and minimization of completely and incompletely specified Boolean functions. Physical properties of gates: fan-in, fan-out, propagation delay, timing diagrams and tri-state drivers. Combinational circuit analysis and design, basic, flip-flop, clocking and timing diagrams Registers, counters, RAMs, ROMs, PLAs, PLDs, and FPGAs. The relationships between H/L languages and the Computer Architecture that underlies their implementation: basic machine architecture assembles specification and translation of P/L Block Structured Languages, parameter passing mechanisms. Assembly Language Programs
-
- CSC205 - Digital Logic Design ( 3 units)
History and Introductions to Computing Systems (Mechanical Computers, Digital versus Analog Systems).Organization of a Stored Program Digital Computer.Information Representation and Number systems.Boolean algebra and Switching Theory (Fundamentals on Boolean algebra; Basic Postulates, Diagrams and theorems of Boolean algebra, Boolean operators). Switching functions; Switching circuits, Physical Properties of gates. Combinational Circuits, Analysis of Sequential Circuits, Introduction to Sequential MSIs and Programmable Logic Devices
- CSC206 - Human Computer Interaction ( 2 units)
Fundamental methods, principles and tools for designing, programming and testing interactive systems. Usability and affordances, user-centered design, human cognitive and physical ergonomics, information and interactivity structures, interaction styles, interaction techniques, and user interface software tools with a special focus on mobile user interfaces. Emerging interaction styles (e.g. mobile interaction, augmented-reality, tangible user interfaces, and ubiquitous computing), a variety of interaction techniques (e.g. use of voice, gesture, and eye movements).
- CSC208 – Introduction to Artificial Intelligence ( 3 units)
Introduction to artificial intelligence, understanding natural languages, knowledge representation, expert systems, Neural Networks, pattern recognition, the language LISP.
- CSC211 - Computer Programming I (Visual Basic) ( 2 Units)
Introduction to problem solving methods and algorithm development, designing, coding, debugging and documenting programmes using techniques of a good programming language style, programming language and programming algorithm development. Principles of good programming, structured programming concepts, Debugging and testing, string processing, internal searching and sorting, recursion. A widely used programming language should be used in teaching the above.
- CSC212 - Computer Programming II (C++/Java) - ( 2 units)
Basic OOP Concepts: Classes, Objects, inheritance, polymorphism, Data Abstraction, Tools for developing, Compiling, interpreting and debugging, Java Programs, Java Syntax and data objects, operators. Central flow constructs, objects and classes programming, Arrays, methods. Exceptions, Applets and the Abstract, OLE, Persistence, Window Toolkit, Laboratory exercises in an OOP Language.
- CSC222 - Computer Electronics - ( 3 units)
Introduction to programmable chips; Programming microcontrollers; Assembly Language for ATMEL 8051 series with MIDE; Introduction to Proteus ISSS simulation; Working with Light Emitting Diodes (LEDs); Interfacing with input devices and output devices, sensors and analogue-to-digital converters (ADC); Practical projects with 7-segment display, Dot-matrix display, etc.
- CSC301 – Structured Programming ( 3 units)
Structured Programming elements, structured design principles, abstraction modularity, stepwise refinement, structured design techniques. Teaching of a structured programming language etc.
- CSC303 – Fundamentals of Data Structures ( 3 units)
Primitive types, Arrays, Records Strings and String processing, Data representation in memory, Stack and Heap allocation, Queues, TREES.Implementation Strategies for stack, queues, trees. Run time Storage management; Pointers and References, linked structures.
- CSC305 – Compiler Construction I ( 3 units)
Review of compilers assemblers and interpreters, structure and functional aspects of a typical compiler, syntax, semantics and pragmatics, functional relationship between lexical analysis, expression analysis and code generation.Internal form of course programme.Use of a standard compiler as a working vehicle.Error detection and recovery. Grammars and Languages: the parsing problem. The scanner.
- CSC307 – Data Management I ( 3 units)
Information storage & retrieval, Information management applications, Information capture and representation, analysis & indexing, search, retrieval, information privacy, integrity, security; scalability, efficiency and effectiveness. Introduction to database systems: Components of database systems DBMS functions, Database architecture and data independence use of database query language.
- CSC311 – Algorithm and Complexity Analysis ( 3 units)
Basic algorithmic analysis: Asymptotic analysis of Upper and average complexity bounds; standard Complexity Classes Time and space trade-offs in algorithms analysis recursive algorithms. Algorithmic Strategies: Fundamental computing algorithms: Numerical algorithms, sequential and binary search algorithms; sorting algorithms, Binary Search trees, Hash tables, graphs & its representation.
CSC313 – Operations Research (3 units)
- Introduction to Operations research (OR), Introduction to Foundation mathematics and statistics, Linear programming (LP), LP definition, LP and allocation of resources, linearity requirement, Maximization, Maximization problems. Graphical LP Maximization solution, Introduction, Simplex method definition, formulating the simplex model. Linear Programming – Simplex Method for Maximizing. Simplex maximizing example for similar limitations. sensitivity Analysis: Changes in Objective function, Changes in RHS, the Transportation Model Basic Assumptions.
- CSC315 – Computer Architecture and Sequential Programme (3 units)
Memory system, general characteristics of memory operation. (Technology-magnetic recording semi-conductor memory, coupled devices, magnetic bubble). Memory addressing, memory hierarchy, virtual memory control systems. Hardware control, micro programmed control, Asynchronous control, i/c control. Introduction to the methodology of faulty tolerant computing.Computer Circuits; Diode Arrays, PiasEtc, Integrated Circuits Fabrication Process. Use Of Msi, LsiAndVlsiIc’ Hardware Design. Primary And Secondary Memories; Core Memory, Etc. Magnetic Devices; Disks, Tapes, Video Disks Etc. Peripheral Devices; Printers, Crt’s, Keyboards, Character Recognition. Operational Amplifiers; Analog-To- Digital And Digital-To-Analog Converter. Analog Computers.
- CSC321 – System Analysis and Design (3 units)
System Concept; System Development Life Cycle Analysis: Fact gathering Techniques, data flow diagrams, Process description data modelling. System Design: Structure Charts, form designs, security, automated Tools for design
- CSC319 – Information Technology Law (3 units)
Intellectual Property Laws, Computer Law and Cybercrimes, Development of Patent, Copyright, Trademark, Privacy Protection, Terms of Use, Computer Contracts basics, Software development contracts, Piracy, IT Policy legislation and management, Professional ethics
- CSC398 – Industrial Training (6 units)
Candidates to Undergo Six (6) months Industrial Training with Institutions or Organization relative to their course of study and approved by the Departmental IT Coordinator.
- CSC401 – Software Development and Engineering (3 units)
Software Design: Software architecture, Design Patterns, O. O. analysis & Design, Design for re-use. Using APIS: API programming Class browsers and related tools, Component based computing. Software tools and Environment: Requirements analysis and design modelling Tools, Testing tools, Tool integration mechanism. Software process improvement; software re-engineering configuration management; Formal specification, software cost – estimation, Open source development.
- CSC402 – Data Communications (3 units)
Introduction, wares, Fourier analysis, measure of communication, channel characteristics, transmission media, noise and distortion, modulation and demodulation, multiplexing, TDM FDM and FCM Parallel and serial transmission (synchronous Vsanalynchronous). Bus structures and loop systems, computer network Examples and design consideration, data switching principles broadcast techniques, network structure for packet switching, protocols, description of network e.g. ARPANET, etc. Types Of Network-LAN, MAN, WAN, Transmission Media, Cabling System, Wireless Transmission, Microwave, Radio Waves And Their Respective Connectors, IEEE Standards. Protocols And Architecture: OSI Reference Models, TCP/IP Protocol Suit. Data Link Control And Protocol: Flow Control - Stop And Wait, Sliding Window, Error Detection, By Parity & CRC, Error Connection, Humming Code, HDLC. Local Area Network. Networking Devices, Network Layer, Nat And Pat, Workings Of The Internet. N/W Security – Cryptography, Transport Protocols. Introduction To Windows 2000, Professional And Windows 2003 Server And Unix (Linux), Installation & Configuration Of Windows 2000 Professional & 2003/2005/2008 Servers And Unix (Linux), General Network Administration With Windows And Unix Platforms.
- CSC403 – Survey and Organization of Programming Languages (4 units)
Overview of programming languages: History of programming languages, Brief survey of programming paradigms (Procedural languages, Object-oriented languages, Functional languages, Declarative – non-algorithmic languages, Scripting languages), the effects of scale on programming methodology; Language Description: Syntactic Structure (Expression notations, abstract Syntax Tree, Lexical Syntax, Grammars for Expressions, Variants of Grammars), Language Semantics (Informal semantics, Overview of formal semantics, Denotation semantics, Axiomatic semantics, Operational semantics); Declarations and types: The concept of types, Declaration models (binding, visibility, scope, and lifetime), Overview of type-checking, Garbage collection; Abstraction mechanisms: Procedures, function, and iterations as abstraction mechanisms, Parameterization mechanisms (reference vs. value), Activation records and storage management, Type parameters and parameterized types, Modules in programming languages; Object oriented language paradigm; Functional and logic language paradigms. Language definition structure. Data types and structures, Review of basic data types, including lists and tress, control structure and data flow, Run-time consideration, interpretative languages, lexical analysis and parsing
- CSC405 - Operating System 1 (3 units)
Overview of O/S: Role & Purpose, Functionality Mechanisms to Support Client- server models, hand-held devices, Design Issues influences of Security, networking, multimedia, Windows. O/S Principles: Structuring methods Abstraction, processes and of recourses, Concept of APIS Device organization interrupts.
- CSC407 – Data Management II (3 units)
Relational Databases: Mapping conceptual schema to relational Schema; Database Query Languages (SQL) Concept of Functional dependencies & Multi-valued dependencies. Transaction processing; Distributed databases
- CSC409 – Net-Centric Computing (3 units)
Background and history of networking and the Internet Network architectures, Client/server and Peer to Peer paradigms, The OSI 7-layer reference model in general, Network protocols, Physical and Data Link layer concepts (framing, error control, flow control, protocols), Internetworking and routing (routing algorithms, internetworking, congestion control), Transport layer services (connection establishment, performance issues, flow and error control). Overview of Distributed Computing, Overview of Mobile and wireless computing.Fundamentals of cryptography Authentication protocols, Public-key algorithms.Types of attack, e.g., denial of service, flooding, sniffing and traffic redirection. Basic network defense tools and strategies Intrusion Detection, Firewalls, Detection of malware Kerberos, IPSec, Virtual Private Networks, Network Address Translation, Web technologies, Basic server-side programs (php, MySQL), Basic client-side scripts (XHTML, XML, JavaScript, CSS), Nature of the client-server relationship, Web protocols with particular emphasis on HTTP, Support tools for web site creation and web management, Building Web Applications.
- CSC404 – Operating System II (3 units)
Concurrency: States & State diagrams Structures, Dispatching and Context Switching; interrupts; Concurrent execution; Mutual exclusion problem and some solutions Deadlock; Models and mechanisms (Semaphones, monitors etc.) Producer – Consumer Problems & Synchronization.Multiprocessor issues. Scheduling & Despatching Memory Management: Overlays, Swapping and Partitions, Paging & Segmentations Placement & replacement policies, working sets and Trashing, Caching.
- CSC411 – Introduction to Cryptography (2 units)
Modular Arithmetic, Groups, Finite Fields and Probability, Elliptic curves, Symmetric Encryption: The Enigma Machine, Information Theoretic Security, Modern Stream, Block Ciphers, Symmetric Key Distribution, Hash Functions and Message Authentication, Public Key Encryption and Signatures: Basic Public Key Encryption Algorithm, Primality Testing and Factoring, Discrete Logarithms, Key Exchange and Signature Schemes, Implementation Issues, Obtaining Authentic Public Keys, Security Issues: . Attacks on Public Key Security, Definitions of Security, . Complexity Theoretic Approaches, . Provable Security: With Random Oracles, Provable Security without Random, advanced Protocols: Secret Sharing Scheme, Commitments and Oblivious Transfer, Zero-Knowledge Proofs, Secure Multi-Party Computation
- CSC406 – Special topics in Computer Science (3 units)
Special topics from any area of computer science considered relevant at given time. Topics are expected to change from year to year. Apart from seminars to be given by lecturers and guests, students are expected to do substantial readings on their own.
- CSC412 - Compiler Construction II (3 units)
Grammars and languages, recognizers, Top-down and bottom-up language Run-time storage Organization, The use of display in run-time storage Organization.The use of display in run time storage allocation.LR grammars and analysers.Construction of LR table.Organisation of symbol tablets.Allocation of storage to run-time variables.Code generation.Optimisation/Translator with systems.
- CSC422 – Computer System Performance Evaluation (2 units)
Measurement techniques, simulation techniques; techniques, workload characterization, performance evaluation in selection problems, performance evaluation in design problems, evaluation of programme performance.
- CSC433 – Computer Graphics and Visualization (2 units)
Hardware aspect, plotters microfilm, plotters display, graphic tablets, light pens, other graphical input aids Facsimile and its problems Refresh display refresh huggers, changing images, light pen interaction. Two and three dimensional transformation, perspective Clipping algorithms. Hidden line removal bolded surface removal.Warmock’s method, shading, data reduction for graphical input. Introduction to had writing and character recognition. Curve synthesis and fitting. Contouring. Ring structures versus doubly linked lists. Hierarchical structures. Data structure: Organization for intersotive graphics.
- CSC424 – Modelling and Simulation (3 units)
Basic Definitions and Uses, Simulation Process, Some basic statistic Distributions Theory, Model and Simulation. Queues; Basic components, Kendal notation, Queuing rules, Little’s Law, Queuing networks, Special/types of queues. Stochastic Processes; Discrete state and continuous state processes, Markov processes, Birth-Death Processes, Poisson Processes. Random Numbers; types of Random Number Exercises.
- CSC400 – Research Project (6 units)
Students should embark on Project works leading to substantial computer science project under the supervision of a departmental