FIVEYEAR DEGREE PROGRAMME IN COMPUTER SCIENCE
FIRST SEMESTER 100 LEVEL
S/N  COURSE CODE (OLD) 
 COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS  
1  FSC101 
 FSC111  Introductory Biology  C  3  
2  FSC102 
 FSC112  Introductory Chemistry  C  3  
3  FSC103 
 FSC113  Introductory Computer Science  C  3  
4  FSC104 
 FSC114  Introductory Mathematics  C  3  
5  FSC105 
 FSC115  Introductory Physics  C  3  
6  GST 102 
 GST 102  Philosophy and Logic  C  2  
7  GST 105 
 GST 105  Use of English  C  2  


 Total Units of Compulsory Courses 
 19 
 


 Total Units of Elective Courses 
 0 

SECOND SEMESTER 100 LEVEL
S/N  COURSE CODE (OLD) 
 COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS  
1  CSC100 
 CSC120  Computer as a Problem Solving Tool  C  3  
2  CSC101 
 CSC121  Software Workshop I  C  3  
3  CSC102 
 CSC122  Introduction to Discrete Mathematics  C  2  
4  MAT101 
 MAT121  Algebra and Coordinate Geometry  C  3  
5  MAT102 
 MAT122  Calculus  C  3  
6  MAT103 
 MAT123  Mechanics  E  2  
7  PHS101 
 PHS121  Introductory Physics II  E  2  
8  PHS102 
 PHS122  Introductory Physics III  C  3  
9  PHS103 
 PHS123  Introductory Physics Practical  E  2  
10  GST103 
 GST103  Nigeria People and Culture  C  2  


 Total Units of Compulsory Courses 
 19 
 


 Total Units of Elective Courses 
 6 

FIRST SEMESTER 200 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC201  CSC211  Software Workshop II  C  3 
2  CSC202  CSC212  Introduction to Computer Programming  C  3 
3  CSC203  CSC213  Foundations of Sequential Programs  C  3 
4  MAT201  MAT211  Real Analysis I  C  3 
5  MAT206  MAT213  Mathematical Methods I  C  3 
6  MAT203  MAT212  Algebra I  E  3 
7  PHS206  PHS216  Electronics IA  C  2 
8  FRE187B  FRE135  An Ancillary French I  C  2 
9  GST201  GST201  General African Studies  C  2 


 Total Units of Compulsory Courses 
 21 


 Total Units of Elective Courses 
 3 
SECOND SEMESTER 200 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC204  CSC224  Introduction to Discrete and Data Structures  C  3 
2  CSC205  CSC225  Introduction to Computational Methods  C  3 
3  MAT207  MAT223  Mathematical Methods II  C  3 
4  PHS263  PHS223  Electronics IB  C  2 
5  FRE188B  FRE146  Ancillary French  C  2 
6  MAT202  MAT221  Real Analysis II  E  2 
7  PHS204  PHS224  Modern Physics II  E  2 


 Total Units of Compulsory Courses 
 13 


 Total Units of Elective Courses 
 4 
FIRST SEMESTER 300 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC302  CSC310  Concurrent Programming  C  3 
2  CSC303  CSC313  Analysis and Design of Digital Systems  C  3 
3  CSC304  CSC314  Operating System I  C  3 
4  CSC305  CSC315  Machine and Assembly Language  C  3 
5  CSC311  CSC311  Operations Research Techniques  E  3 
6  CSC321  CSC316  Introduction to Systems Analysis and Design  C  3 
7  FSC301  FSC311  History and Philosophy of Science  C  2 
8  GST307  GST307  Entrepreneurship and Corporate Governance  C  2 


 Total Units of Compulsory Courses 
 19 


 Total Units of Elective Courses 
 3 
SECOND SEMESTER 300 LEVEL
S/N  COURSE CODE OLD  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC301  CSC320  Algorithm and Complexity  C  3 
2  CSC306  CSC326  Introduction to Compiler Construction  C  3 
3  CSC307  CSC327  NetCentric Computing  C  3 
4  CSC308  CSC328  Introduction to Theory of Computing  C  3 
5  CSC312  CSC323  Statistical Processing System  E  3 
6  CSC322  CSC322  A Modern Programming Language  E  3 
7  CSC332  CSC324  Formal Methods in Software Development  E  3 


 Total Units of Compulsory Courses 
 12 


 Total Units of Elective Courses 
 9 
FIRST SEMESTER 400 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC401  CSC410  Introduction to Database Design and Management  C  3 
2  CSC405  CSC415  Web Design and Data Security  C  3 
3  CSC411  CSC411  Statistical Computing  E  3 
4  CSC413  CSC413  Discrete Mathematics II  C  3 
5  CSC421  CSC416  Software Project Management  C  3 
6  CSC422  CSC417  Data Communication  E  3 
7  CSC425  CSC418  Modelling and Simulation  E  3 
8  CSC431  CSC419  Software Design and Architecture  C  3 


 Total Units of Compulsory Courses 
 15 


 Total Units of Elective Courses 
 9 
SECOND SEMESTER 400 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  SIW400  SIW400  Industrial Training  C  6 


 Total Units of Compulsory Courses 
 6 


 Total Units of Elective Courses 
 0 
FIRST SEMESTER 500 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC504  CSC510  Operating System II  C  3 
2  CSC505  CSC511  Advanced Data Structure  C  3 
3  CSC524  CSC512  System Performance Evaluation  E  3 
4 
CSC532 
CSC518  Software Testing, Quality Assurance and Maintenance 
E 
3 
5  CSC533  CSC513  Compiler Construction  C  3 
6  CSC534  CSC519  Computer Graphics  E  3 


 Total Units of Compulsory Courses 
 9 


 Total Units of Elective Courses 
 9 
SECOND SEMESTER 500 LEVEL
S/N  COURSE CODE (OLD)  COURSE CODE (NEW)  COURSE TITLE  STATUS  UNITS 
1  CSC502  CSC522  Principles of Programming Language  C  3 
2 
CSC503 
CSC526  Social and Professional Issues in Information Technology 
E 
3 
3  CSC514  CSC528  Introduction to Artificial Intelligence  C  3 
4  CSC517  CSC527  Introduction to Optimization Techniques  E  3 
5  CSC523  CSC523  Computer Networks  C  3 
6  CSC525  CSC525  Computer Architecture  E  3 
7  CSC599  CSC529  Final Year Project  C  6 


 Total Units of Compulsory Courses 
 15 


 Total Units of Elective Courses 
 9 
Summary of number of units compulsory and elective courses to be taken/available at each Level for B.Sc. (Hons.) Computer Science
Level  First Semester  Second Semester  Total of Comp. Courses  Total of Elective Courses  
Units of Compulsory Courses  Units of Electives Courses  Units of Compulsory Courses  Units of Electives Courses  
100  19  0  19  6  38  6 
200  21  0  13  7  34  7 
300  19  3  12  9  31  12 
400  15  9  6  0  21  9 
500  9  9  15  9  24  18 
Total  148  52 
SYNOPSES OF COURSES 
100 LEVEL COURSES
CSC120: Computer as a ProblemSolving Tool  3 units 


Classes of problems and Design of Algorithms. Concept of Problemsolving. Effective Problemsolving using current computer environments. Problemsolving strategies. Therole of algorithms in the problemsolving process. Implementation strategies for algorithms. Debugging strategies. Theconcept and properties of algorithms. Tools and techniques using a modern language as a tool.
 
CSC121: Software Workshop 1 (Structured Programming)  3 units 


Basic syntax and semantics of a higher –level language. Variables, types, expressions, and assignment. Simple I/O. Conditional anditerative control structures. Function and parameter passing. Structured decomposition. Groupbased laboratory projects. Emphasis on design and implementation strategies. Use of two modern programming languages as tools for development.  
CSC122: Introduction to Discrete Mathematics  2 units 


Functions, Relations and sets. Basic Logic. Combinatorics; Introduction to MathematicalLogic: Equivalence Relation Partition, Ordered Sets. Boolean Algebra and Lattices. Matrices and Real Matrices,Boolean Matrices, Path Matrices. Adjacency Vectors/ Matrices: Application to counting. 
FSC113: Introductory Computer Science  3 units 


Computer Hardware: Functional components, modern input/output units. Computer Software: Operating System, Application Packages. Program Development: Flowcharts and Algorithms. Program Objects, BASIC Programming Language Fundamentals.

200 LEVEL Courses
GST214: Basic Computer Studies  3 units 
Introduction to using personal computer hardware and software. Using personal computers as effective problemsolving tools for the present and future. Introduce the use of common application software including word processing, spreadsheets, database management and electronic communications. 
CSC211: Software Workshop II (Objectoriented Programming)  3 units 
Introduction to objectoriented programming using an objectoriented language. Classes and objects; syntax of class definitions, methods and members; Simple data types – variables and expressions; Simple method declaration and definitions – Message passing and parameter passing; Subclassing and inheritance; Simple data structures – Arrays, strings, Collection classes and iteration protocols; Using APIs: Class libraries; packages for graphics and GUI application; Objectorientated design: Fundamental design concepts and principles; Introduction to design patterns; objectoriented analysis and design and testing; risks and liabilities of computerbased systems. Eventhandling methods. Event propagation. Exception handling. Individualbased laboratory projects. Emphasis on design and implementation strategies. Use of two modern programming languages as tools for development. 
CSC212: Introduction to Computer Programming  3 units 
Fundamental techniques of algorithm design and program development. Topics include structured programming, simple data elements, sequential operations, iterative statements, selection statements, data aggregation, functions and subroutines/procedure. Example. To demonstrate a variety of application for computer programming. Java and C programming languages are to be used for illustrating the examples. 
CSC213: Foundations of Sequential Programs  3 units 
The relationship between highlevel languages and the computer architecture that underlies their implementation including basic machine architecture, assemblers, specification and translation of programming language, linkers and loaders, blockstructured languages, parameterpassing mechanisms and comparison of programming languages.  
CSC224: Introduction to Data Structures  3 units 


Representation of numeric data, Range, precision, and rounding errors, Arrays, Representation of character data, Strings and string processing, Runtime storage management, Pointers and references, Linked structures, Implementation strategies for stacks, queues, and hash tables, Implementation strategies for graphs and trees, Strategies for choosing the right data structure 
CSC225: Introduction to Computational Methods  3 units 


Principles and practices of basic numerical computation as a key aspect of scientific computation. Visualization of data. Approximation by splines, fast Fourier transforms; Solution of linear and nonlinear equations, floatingpoint number systems, error convergence and stability.  
CSC227: Introduction to Information Processing  3 units 


Information Systems, Management Information Systems, Information Processing, Information Systems output and storage, principles of Data Communication, Data Security and Control, Sorting and Searching. 
300 Level Courses
CSC310: Concurrent Programming  3 units  
 Prerequisite: CSC213,CSC224  
An introduction to understanding concurrency and writing concurrent programs, with an emphasis on language constructs used to express and control concurrency, and different concurrent programming techniques and style. Major topics include: coroutines, mutual evolution, semaphores, highlevel concurrency, deadlock, interprocess communication and process structuring. Students will learn how to structure, implement and debug basic concurrent program. Advanced Java programming shall be used as a vehicle for teaching these concepts.  
CSC311: Operations Research Techniques  3 units  

 
Introduce students to the mathematical techniques used in Operations Research. These include, decision trees, forecasting models, investment appraisal, inventory control, linear programming, network analysis, Queuing theory, replacement Analysis and Simulation. Others are: Quadratic and goal Programming, dynamic programming.  
CSC313: Analysis and Design of Digital System  3 units 
 Prerequisite: CSC213 
Topics to include: Boolean algebra, design and analysis at both combinational and sequential circuits. Registers, counters, memory, programmable logic, CPU control logic, the ArithmeticLogic Unit. 
CSC314: Operating Systems I  3 units 
 Prerequisite:CSC213,CSC224 
An Introduction to modern operating system. Major topics include computer system structures, operating system structures, process management, and storage management – memory management, file systems and virtual memory; device management. 
CSC315: Machine and Assembly Language  3 units 


Hardware and Software Architecture; Machine Instructions; Assembly Language Fundamentals: Using the macro Assembler – Numeric operations and conversion, string processing, Disk storage and File Processing. A real Assembler must be used as a vehicle for learning. 
CSC316: Introduction to Systems Analysis and Design  3 units 
 Prerequisite: CSC224 
System concepts: examples of systems; systems Development Life Cycle (SDLC); Analysis – Fact gathering Techniques, Data delivery, Data flow diagrams, Process Description, Data Modeling; System Design – structure charts, form designs, security, automated tools for design; CASE; Implementation and Maintenance. Introduction to the requirements design definition phase of software development. Models, notations and processes for software requirement of identification, representation, validation and analysis. An important component of the course is the use of group projects with reallife case studies. 
CSC320: Algorithms and Complexity  3 units 
 Prerequisite: CSC224 
The study of efficient algorithms and effective algorithm design techniques, program design with emphasis on pragmatic and mathematical aspects of program efficiency. Topics include compression and text searching methods. NPcompleteness and approximating algorithms for NPcomplete problems, number theoretic algorithms and their implications. 
CSC322: A Modern Programming Language  3 units 


A contemporary programming language should be taught in as much detail as available. 
CSC323: Statistical Processing System  3 units 


Design and Analysis of Sampling Surveys; Statistical Data Compression; 2D, 3D frequency Tables, point and interval Estimation; Test of Significance, Test of Hypothesis; Analysis of Categorical Data: Model Validation; X^{2} – Test, Probability Plot. 
CSC324: Formal Methods in Software Development  3 units 
 Prerequisite: CSC211 
Systematic methods for designing, coding, testing and documenting medium–sized programs. Major topics include: formal specification, abstraction, modularity and reusability. Students will become strong apprentice programmers able to write a clear specification for a problem, read a specification and design the software to implement it, use appropriate data structures in a program, write reusable code when possible, debug a program and adequately test a program.  
CSC325: Real – Time Programming  3 units 
 Prerequisite: CSC313 
This course is intended to give student experience in using tools and techniques of realtime programming, Topics include not only issues of microcomputer architecture and a realtime programming language and operating system, but also handson experience programming a microcomputer for applications such as process control, data acquisition and communication (Web Programming). 
CSC326: Introduction to Compiler Construction  3 units 
Review of Compilers, Assemblers and Interpreters. Structure and functional aspects of a typical compiler. Syntax, semantics, functional relationship between lexical analysis, syntax analysis, expression analysis and code generation. Internal form of source program. Use of standard compiler as a working vehicle. Error detection and recovery. 
CSC327: Introduction to Net Centric Computing  3 units 
 Prerequisite: csc224 
Internet and the Web, Communication, networking, network security, clientserver computing, network management, compression techniques, multimedia technologies, wireless and mobile computing. 
CSC328: Introduction to Theory of Computing  3 units 
 Prerequisite:CSC213,CSC224 
Models of computers including finite automata and Turing machines. Basics of formal languages with applications to syntax of programming languages. Unsolvable problems and their relevance to the semantics of programming. Concepts of computational complexity including NP Completeness. 
400 Level Courses
CSC410: Introduction to Database Design and Management  3 Units 
 Prerequisite: CSC314 
The course introduces the student to thetechniques that have been developed to facilitate data sharing, data consistency, data independence and data privacy; Database components, data architecture, data models; Theory of the relational approach Functional dependencies, Normal Forms, Armstrong’s axioms, Distributed Relational Database Systems, Storage Structures for large database systems: Structured Query Language. 
CSC411: Statistical Computing  3 Units  

 
Problems associated with analysis of stochastic problems and statistical data analysis by Applied Linear Models; Computational aspects of multiple repression models; Programming for Statistical Problems and Statistical Packages.  
CSC412: Introduction to Numerical Analysis  3 Units  
 Prerequisite: CSC225  
Linear Algebra and Matrix computation. Interactive Solution of a system of linear equations.Numerical solution of ordinary differential equation. Stability and convergence analysis. Error analysis.  
CSC413: Discrete Mathematics  3 Units 
Trees and Graphs; analysis of Algorithms; Complexity Theory; NPCompleteness; Approximation Algorithms. Proof Techniques, Trees Big O notation and uses; Fundamental of Abstract Machines. 
CSC414: Software Requirement Specification and Analysis  3 Units  
 Prerequisite:CSC310,CSC316  
Introduction to requirements definition phase of software development, Models, notations and processes for software requirements of identification, representation, validation and analysis. An important component of the course is a group project, the software requirement specification of a large software system.  
CSC415: Web Design and Data Security  3 units  
 Prerequisite: CSC310  
Introduction to World Wide Web, HTMLdocument structures, images, links, maps, table, frames, forms. Protocol and server technologiesHTTP, TCP/IP, MIME, URLs, CGI, JavaScript syntax, DTDS, XSL, XHTML, Multimedia – audio, video, animation, Multimedia sever and protocol technology, Web Development tools – Editors Scripting Languages and Site management tools. Practical use of any of PHP, ASP, etc.  
CSC416: Software Project Management  3 Units  
The integration of business and technical consideration in the design, implementation and management of information systems. Topics include: Information system planning and development; business, management, executive and strategic information systems, Software project Evaluation, Cost and size estimation, planning and scheduling, risk management, configuration and quality management, performance tracking and monitoring, team management. Case studies and selected largescale systems.  
CSC417: Data Communication  3 Units  
Introduction to Waves, Waves Analysis, Fourier analysis (Fourier Series, Fourier transform), ztransform. Analog and Digital data. Analog and digital transmission. Synchronous and Asynchronous transmission. Transmission media, Modulation, Data Modems. Mathematical communication. Multiplexing (FDM, TDM, PCM,), Data link protocols, Interfaces, Codes. Error detection and correction. Party loop check.  
CSC418: Modelling and Simulation  3 Units 
Basic Modelling and Simulation concepts and definitions, Random numbers Pseudorandom number generation and testing, Monte Carlo methods, Introduction to distribution functions. Simulation and modelling – Discreteevent simulation, continuous simulation. Modelling methods – Visual models and conceptual models, Physicsbased models and finite element models, Databased models. Statistics for Modelling and Simulation – Importance of variability and uncertainty, Output data analysis, Input data modelling. Discrete event simulation Queuing theory models, Discrete event simulation executive, Discrete event simulation tools and application. System Dynamics. Handson discrete event simulation tool. 
CSC419: Software Design and Architecture  3 Units 
 Prerequisite: CSC414 
Software design processes and models, representation of design/architecture, software architectures and design plans, objectoriented design methods, design state assessment, design quality assurance, design verification. Students should participate in group projects. 
SIW400: Industrial Training  6 Units 
Each student is expected to spend at least twentyfour weeks in a computing environment/ organization. The student would submit a report to the Department for grading at the end of the training. 
500 Level Courses
CSC510: Operating Systems II  3 Units  
 Prerequisite: CSC314  
Advanced concepts in process synchronization; Distributed systems – Distributed systems architectures, Theoretical foundations, Distributed file systems and Distributed coordination of processes – mutual exclusion, deadlock detection and agreement protocols; Distributed Resource management – file systems, shared memory, scheduling and mass storage; Fault tolerant and Recovery; Protection and Security.  
CSC511: Advanced Data Structures  3 Units  
 Prerequisite: CSC224  
Linked List, Hashing, Heaps, Binary Search Trees, AVL Trees, Red Black Trees, BTrees; Graphs; Traversal Algorithms. Programming exercises involving development of Classes and library for each Data Structures and application of the libraries to practical problem using modern language.  
CSC512: System Performance Evaluation  3 Units 
 Prerequisite:CSC204,CSC301 
Basic techniques of system performance evaluation. Specific topics include: performance modelling, discrete event simulation, verification and validation of simulation models, analysis of simulation output data; analysis of singleserver queue and queuing networks, modelling of computer systems networks and other queuing or nonqueuing systems. 
CSC513: Compiler Construction  3 Units 
 Prerequisite:CSC326,CSC328 
Phase of compilation, Lexical Analysis and a review of parsing. Compilercompilers and translator writing systems. LEX and YACC. Scoperules, block structure and symbol tables. Runtime stack management. Parameter passing mechanism. Stack storage organization and templates. Heap storage management. Intermediate code. Code generation. Macros. 
CSC5I5: Further Statistical Processing  3 Units 
 Prerequisite: CSC323 
Topic to include: Multiple Regression Analysis; Oneway analysis of Variance; Twoway Analysis of variance; Generalized inverse and application; Statistical Control; use of Package to Solve Statistical problems. 
CSC516: Further Numerical Analysis  3 Units  
 Prerequisite: CSC412  
Solution of partial differential equation by analytical and numerical methods; Eigen value problems; applications to transmission by cables, finite element methods.  
CSC518: Software Testing, Quality Assurance and Maintenance  3 Units  
 Prerequisite:CSC419  
Systematic testing of software systems, software verification, symbolic execution software debugging, quality assurance, measurement and prediction of software reliability, project management, software maintenance, software reuse, revere engineering  
CSC519: Computer Graphics  3 Units 
Survey of computer graphics, Overview of graphics systems – Video display devices, Raster scan systems, Random scan systems, Graphics monitors and Workstations, Input devices, Hard copy Devices, Graphics Software; Output primitives – points and lines, line drawing algorithms, loading the frame buffer, line function; circle and ellipse generating algorithms; Pixel addressing and object geometry, filled area primitives. Two dimensional geometric transformations, windowtoviewport coordinate transformation and viewing functions; clipping operations – point, line, and polygon clipping algorithms. Three dimensional concepts and object representations. Intuitive colour concepts – RGB colour model – YIQ colour model – CMY colour model – HSV colour model – HLS colour model; Colour selection, Design of Animation sequences. 
CSC522: Principles of Programming Language  3 Units  
 Prerequisite: CSC212,CSC213,CSC224,CSC310  
An exposure to important concepts and issues in contemporary programming languages. Data types, abstraction and polymorphism. Program structure. Lambda calculus andfunctional programming, logic programming, objectoriented programming. Semantics programming languages. Critical comparison of language feature and programming methodologies using example drawn from a variety of programming languages including LISP, Prolog, ML, Ada, Smalltalk, Icon, APL, JAVA and LUCID, Programming assignmentto involve the use of some of these languages.  
CSC523: Computer Networks  3 Units 
 Prerequisites: CSC313, CSC327 
Networks concepts and protocols. Open system Interconnection (OSI) and Transmission Control Protocol/Internet Protocol (TCP/IP) Network Topologies – LANSs WANs, Terminal \Networks, Broadcast and Routed transmission. LANContention and permission based Media Access protocols, CSMA/CD, token Ring, token bus Slotted ring, Client/Server model, RPC, FDDI, WANCircuit, message and packet switching, PSDN and ISDN, X.25. Routing algorithms. Internetworking – resolution of protocol variations. Repeaters, Hubs, Bridges, Routers, Gateways, Protocol converters, TCP/IP. 
CSC525: Computer Architecture  3 Units 
 Prerequisite: CSC313 
The course is intended to provide the student with an appreciation of modern computer design and its relation to system architecture, compile technology and operation system functionality. This course places an emphasis on design based on the measurement of performance in relation to data dependence, parallelism, efficiency, latency and resource utilization. 
CSC526: Social and Professional Issues in Information Technology  3 Units 


Social context of computing. Professional and ethical responsibilities. Risk liabilities ofcomputerbased systems; Intellectual property; Privacy and civil liberties; computer crime; Economic issues in computing; philosophical frame work. Computer law, examining current legal issues and problem relating to the use of computer based information systems, the issue and problem relating to the issue of computerbased information systems, the protection of computer software and databases, and the acquisition and sale of computer systems. 
CSC527: Introduction to Optimization Techniques  3 Units 


Problem definition; Optimization in one dimension; Optimization in ndimensions. Single Variable Optimization; Fibonacci Search, Golden Search, Algorithms of Davies, Swan and Campey. Multivariate Optimization: Search Methods, Gradient Methods. Constrained Optimization: Lagrangian Methods, Kuhn Tucker Conditions. 
CSC528: Introduction to Artificial Intelligence  3 Units 
Goals and methods of artificial intelligence. Method of general problemsolving. Introduction to mathematical logic. Mechanical theorem proving. Game playing. Natural Language processing; Techniques and tools of Computational Intelligence. 
CSC529: Final Year Project  3 Units 


Each student is expected to undertake a project. Arrangements for supervising student vary from supervisors but will take the form of a weekly meeting. A supervisor will be assigned to each finalyear student as early as possible on their final year. A formal report must be submitted before the second semester examination begin and must contain at least one large, optimallydesigned and fully documented computer program or a properly simulated design. 