Computer science Prospectus

FIVE-YEAR 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

Net-Centric 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 Problem-Solving Tool

3 units

 

 

Classes of problems and Design of Algorithms. Concept of Problem-solving. Effective Problem-solving using current computer environments. Problem-solving strategies. Therole of algorithms in the problem-solving 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. Group-based 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 problem-solving 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 (Object-oriented Programming)

3 units

Introduction to object-oriented programming using an object-oriented 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; Sub-classing and inheritance; Simple data structures – Arrays, strings, Collection classes and iteration protocols; Using APIs: Class libraries; packages for graphics and GUI application; Object-orientated design: Fundamental design concepts and principles; Introduction to design patterns; object-oriented analysis and design and testing; risks and liabilities of computer-based systems. Event-handling methods. Event propagation. Exception handling. Individual-based 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 high-level languages and the computer architecture that underlies their implementation including basic machine architecture, assemblers, specification and translation of programming language, linkers and loaders, block-structured languages, parameter-passing 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 non-linear equations, floating-point 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: co-routines, mutual evolution, semaphores, high-level concurrency, deadlock, inter-process 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 Arithmetic-Logic 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 real-life 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. NP-completeness and approximating algorithms for NP-complete 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; X2 – 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 real-time programming, Topics include not only issues of microcomputer architecture and a real-time programming language and operating system, but also hands-on 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, client-server 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; NP-Completeness; 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, HTML-document structures, images, links, maps, table, frames, forms. Protocol and server technologies-HTTP, 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 large-scale systems.

CSC417: Data Communication

3 Units

Introduction to Waves, Waves Analysis, Fourier analysis (Fourier Series, Fourier transform), z-transform. 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 – Discrete-event simulation, continuous simulation. Modelling methods – Visual models and conceptual models, Physics-based models and finite element models, Data-based 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. Hands-on 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, object-oriented 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 twenty-four 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, B-Trees; 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 single-server queue and queuing networks, modelling of computer systems networks and other queuing or non-queuing systems.

 

 

CSC513: Compiler Construction

3 Units

 

Prerequisite:CSC326,CSC328

Phase of compilation, Lexical Analysis and a review of parsing. Compiler-compilers 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; One-way analysis of Variance; Two-way 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, window-to-viewport 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, object-oriented 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. LAN-Contention and permission based Media Access protocols, CSMA/CD, token Ring, token bus Slotted ring, Client/Server model, RPC, FDDI, WAN-Circuit, 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 ofcomputer-based 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 computer-based 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 n-dimensions. 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 problem-solving. 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 final-year 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, optimally-designed and fully documented computer program or a properly simulated design.