Está en la página 1de 35

University of Nairobi

School of Computing and Informatics

REGULATIONS AND SYLLABUS


FOR

Revised

BACHELOR OF SCIENCE IN COMPUTER SCIENCE

Approved by SCI Board: 27 July 2010 Approved by CBPS CAB: 31 August 2010 Approved by Deans Committee 12 November 2010

1. BACKGROUND 1.1 SCI PROGRAMS The School of Computing & Informatics (formerly Institute of Computer Science) launched the Bachelor of Science (Computer Science) programme in 1992. The programme was aimed at meeting perceived development needs in Kenya, which it has done very well. Indeed, most of the computer science professionals in industry today have been developed through this programme. The programme was comprehensively reviewed in the year 2000 and again in the year 2004. With experience in offering this programme and given changes in national development needs as well as developments in the fast changing area of computing and information technology, it was determined that the programme is due for another comprehensive review. 1.2 INPUTS INTO THE REVIEW PROCESS The review has benefited from, and the resulting programme is determined by: a) IEEE/ACM guidelines for curriculum development, b) the output of a self-assessment of the current curriculum that was undertaken using IUCEA-DAAD Quality Assurance model during 2009, c) the Commission for Higher Education guidelines for curriculum development, and d) stakeholder feedback that was solicited and received by the School during the review process. 1.3 STAKEHOLDER REQUIREMENTS The curriculum is developed taking into account the following stakeholder needs: Employers: the need for professionals that can conceive, design, implement innovative computing problem solutions and applications. Government: The need for Kenya to harness computing and IT for increased productivity and effectiveness in all sectors of the economy for national prosperity. The need for widespread socio-economic awareness in Kenya of the purpose and capabilities of information systems. The need for Kenya to participate effectively in and reap maximum benefits from the global information economy. Students: The need to address the increasing demand for quality computer science education that prepares the learner to fit into the job market and be capable of life-long learning. Academia/professionals: the need for professionals with a firm and broad grounding in computer science, and that are able to pursue research and teaching in the discipline. Society: the need for skilled professionals who will effectively participate in the development of computing knowledge and systems that benefit society at large and promote the social, economical and technological advancement 1.4 PROGRAM OBJECTIVES The objectives of the programme are to:
a.

Facilitate the acquisition, adoption and adaptation of computer science knowledge, techniques and tools. Develop graduates with the ability to apply computer science knowledge, skills, techniques and tools to create best-possible solutions to practical problems of varying complexity, in a wide range of contexts. Develop graduates who are innovative and creative, who possess good problemsolving skills and are capable of life-long learning.
2

b.

c.

d.

Develop all-rounded graduates with demonstrable ethical and professional behaviour, and who possess effective communication, management, entrepreneurial and interpersonal skills.

2. ENTRY REQUIREMENTS 2.1 2.2 Candidates must satisfy the University's general admission criteria for undergraduate programmes. Eligibility for consideration for admission into the degree of Bachelor of Science in Computer Science at the School of Computing & Informatics shall be governed by the following minimum admission requirements or an equivalent qualification recognized by Senate: KCSE: A holder of Kenya Certificate of Secondary Education (KCSE) with a minimum aggregate performance of C+. In addition candidates must have obtained a minimum grade of C+ in four subjects as shown below: a. Alternative A: Mathematics, Physics, A 2nd Group II subject or Any from Group III, Any Group II or Group III or Group IV or Group V. b. Alternative B: Mathematics, Physical Sciences, A 2nd Group III subject or Any from Group III, Any Group II or Group III or Group IV or Group V. A-Level: A holder of Kenya Advanced Certificate of Education (KACE) with 2 principal passes, one of which must be in Mathematics or Physics, and a subsidiary pass with a Credit pass in Physics at O level. Diploma in Computer Studies: A holder of an ordinary diploma in computer studies or equivalent with, a minimum pass at credit level, from an institution recognized by Senate. Higher Diploma in Computer Studies: A holder of a Higher Diploma in Computer Studies or equivalent, from an institution recognized by Senate. Bachelors Degree: A holder of a Bachelors degree from an institution recognized by senate. 3. CREDIT TRANSFER AND EXEMPTIONS The point of entry into the programme for candidates other than direct KCSE shall be approved by Senate on recommendations of Board of the School of Computing & Informatics and shall be based on the qualification of the candidate. 3.1 Exemptions 3.1.1 Where a candidate wishes to be exempted from any course unit(s), the candidate shall send an application to the Academic Registrar justifying the request and provide evidence of the credentials which support such a request. Such a candidate may be required to sit and pass an ordinary university examination in that course unit. 3.1.2 Regulation 3.1.1 above notwithstanding, all course units, which contribute towards the final award of the degree, will be examined. 3.1.3 The examination undertaken under Regulation 3.1.2 shall be graded out of 100% and the pass marks shall be 40%. 3.1.4 Application for exemption shall be considered only after the applicant has paid an exemption fee. 3.2 Credit Transfer
3

3.2.1. A candidate who has been admitted into this programme and has taken and passed a course unit offered within another degree programme, may apply for transfer of credit earned within the former programme to this programme. 3.2.2 3.2.3 Transfer will only be approved from institutions and degree programmes recognized by Senate. Where a candidate wishes to transfer credit from a degree programme of another institution to this programme, the candidate shall send an application to the Academic Registrar justifying the request and provide evidence of the credentials which support such a request. Credit may not be transferred for course units in the third and fourth year of study Application for exemption shall be considered only after the applicant has paid an exemption fee. Maximum Exemption and Credit Transfer

3.2.4 3.2.5

3.3

The total number of units that may be transfer plus those exempted may not exceed one third of the total number of units prescribed in this programme. 4. COURSE STRUCTURE AND DURATION 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 The course shall extend over a minimum period of 8 semesters and a maximum period of 16 semesters. Each academic year shall have at least two semesters. A course unit shall be defined as 45 contact hours of lectures, tutorials and practicals; including common undergraduate courses. Taught courses, lab-based courses and projects shall be evaluated in terms of course units. The Second Year Projects shall be equivalent to two course units. The Industrial Attachment shall be equivalent to two course units. The Fourth Year Project shall be equivalent to four course units. The course is organised into Knowledge Areas as outlined in Appendix A.

5 Examination Regulations 5.1 Written Examinations 5.1.1 All course units taken in a given semester shall be examined at the end of that semester, except where a course is not examinable. 5.1.2 A candidate for the degree shall satisfactorily complete such coursework and practical assignments as may be required for the scheme of study. Satisfactory completion of any
4

such requirements shall be a condition of admission to the examination at the end of that semester of study. 5.1.3 5.1.4 A written examination for a course unit shall have a minimum duration of two hours. Each course unit or its equivalent shall be graded independently out of a maximum of 100 marks and the pass mark shall be 40 subject to the candidate acquiring 40% in both the course work and written examination. The complete assessment of a taught unit shall consist of course work (i.e. assignments, laboratories and continuous assessment tests) and a compulsory written examination. The contribution towards the unit aggregate shall be 50% for course work and 50% for written examination. A candidate who fails to take any prescribed examination without good cause will be considered to have scored 0 (zero) marks in that examination. A candidate who fails to satisfy the examiners in not more than one third of the units prescribed for a year of study, shall on the recommendation of the Board of Examiners and approval by Senate, be allowed to take supplementary examinations in the failed units before the start of the next academic year. A candidate who fails to satisfy the examiners in more than one third of the units prescribed for a year of study, shall on the recommendation of the Board of Examiners and approval by Senate, not proceed to the next year of study but be allowed to retake the failed units when those units are next offered. A candidate who fails to satisfy the Board of Examiners after any supplementary examination, shall on the recommendation of the Board of Examiners and approval by Senate, be allowed to retake the failed units when those units are next offered.

5.1.5

5.1.6 5.1.7

5.1.8

5.1.9

5.1.10 A candidate who fails to take any prescribed examination with good cause may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to take a special examination for the unit before the start of the following academic year. Examinations taken under this clause shall be treated in accordance with Clause 5.1.7. 5.1.11 Regulations 5.1.7, 5.1.8, 5.1.9 and 5.1.10 not withstanding, a candidate who i) has failed any course unit or its equivalent after four attempts or

ii) has failed the Second Year Project after four attempts or iii) fails to successfully complete Industrial attachment after two attempts or iv) has failed the Fourth Year Project after four attempts or v) fails to complete the course within sixteen semesters shall, on the recommendation of the Board of Examiners and approval of Senate, be discontinued from the programme.

5.1.12

A pass obtained in any supplementary Examination shall be recorded as 40% in the candidates academic record.

5.1.13 In the event that this syllabus is revised, a candidate who is required to take any examination shall be required to take the examination in the equivalent course unit(s) in the revised syllabus. 5.1.14 The final award of the degree shall be based on the assessment of the candidates performance in the third and fourth years of study, including the industrial attachment and Fourth year project, based on the average mark scored over all course units. 5.1.15 For a candidate to qualify for the award the degree of Bachelor of Science in Computer Science, he/she must pass the ALL the course units in the first, second and third years of study, Industrial attachment undertaken between the third and fourth years of study, four (4) compulsory course units in the fourth year of study, four (4) elective units in the fourth year of study and a project in the fourth year of study. 5.1.16 A candidate who passes the equivalent of one third or more course units through supplementary examinations or retake in the third and fourth year of study shall not be eligible for an Honours degree. 5.1.17 A candidate who successfully completes the first and second year of study shall be awarded a Diploma in Computer Science according to stipulated regulations for the diploma. 5.1.18 In the final year of study, a mark between 35% and 39% inclusive will qualify for application of the rule of compensation (see 5.1.19 below). 5.1.19 Compensation may be allowed in a maximum of the equivalent of two course units only and shall be made by taking two marks in one passed unit for each unit with a mark above 40% to make up for every failed mark. 5.2 Year II Project 5.2.1 A project in this context shall mean computer systems development work undertaken by a candidate or a group of candidates, in accordance to the Schools guidelines on Undergraduate Projects. 5.2.2 5.2.3 5.2.4 5.2.5 The project shall be equivalent to one (1) course unit. The project shall be graded independently out of a maximum of 100 marks and the pass mark shall be 40%. A pass obtained in any resubmitted project will be recorded as 40%. A candidate who fails to satisfy the examiners in the project may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to resubmit the project within a period of 3 months. A candidate who fails to satisfy the examiners in the first re-submission of the project may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to
6

5.2.6

redo the same or do another project during a subsequent academic year. 5.2.7 A candidate who fails on the fourth attempt shall, on the recommendation of the Board of Examiners and approval by Senate, be discontinued from the programme.

5.3 Year IV Project 5.3.1 A project in this context shall mean computer systems development work undertaken by a candidate or a group of candidates, in accordance to the Schools guidelines on Undergraduate Projects. 5.3.2 5.3.3 5.3.4 5.3.5 The project shall be equivalent to four (4) course units. The project shall be graded independently out of a maximum of 100 marks and the pass mark shall be 40%. A pass obtained in any resubmitted project will be recorded as 40%. A candidate who fails to satisfy the examiners in the project may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to resubmit the project within a period of 3 months. A candidate who fails to satisfy the examiners in the first re-submission of the project may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to redo the same or do another project during a subsequent academic year. A candidate who fails on the fourth attempt shall, on the recommendation of the Board of Examiners and approval by Senate, be discontinued from the programme.

5.3.6

5.3.7

5.4 Industrial Attachment 5.4.1 The Student will undertake Industrial Attachment for a period of 8 weeks between semester 2 of year three and semester 1 of year four, in accordance to the Schools guidelines on Industrial Attachment. 5.4.2 5.4.3 5.4.4 5.4.5 The Industrial Attachment shall be equivalent to 2 course units. The Industrial Attachment report shall be graded independently out of a maximum of 100 marks and the pass mark shall be 40%. A pass obtained in any resubmitted Industrial Attachment report will be recorded as 40%. A candidate who fails to satisfy the examiners in the Industrial Attachment may, on the recommendation of the Board of Examiners and approval by Senate, be allowed to repeat the Industrial Attachment not more than once . A candidate who fails in a repeated Industrial Attachment shall, on the recommendation of the Board of Examiners and approval by Senate, be discontinued from the programme.

5.4.6

6 Classification and Degree Award 6.1 The degree to be awarded shall be Bachelor of Science in Computer Science.
7

6.2 6.3

A candidate who qualifies for the award of the degree shall be classified as First, Second (Upper Division or Lower Division) or Pass. Honours degrees shall only apply to the First Class and Second Class (Upper Division or Lower Division) degrees. The classification of the final award, based on the aggregate computed, shall be as follows: First Class Honours 70% - 100% Second Class Honours (Upper Division) 60% - 69% Second Class Honours (Lower Division) 50% - 59% Pass 40% - 49%

7 Course Outline Year I (Compulsory Units) Semester I


Course Code Course Title Hours

CSC111 CSC112 CSC113 CSC114 CCS001 CCS009 Semester II


Course Code

Introduction to Computer Systems Introduction to Programming Discrete Mathematics Differential and Integral Calculus Communication Skills Economics

45 45 45 45 45 45

Course Title

Hours

CSC121 CSC122 CSC123 CSC124 CSC125 CSC126 CCS010

Programming and Problem-solving Database Systems Data Communications Probability and Statistics Linear Algebra Physics for Computing Systems HIV/AIDS

45 45 45 45 45 45 45

Year II (Compulsory Units) Semester I


Course Code Course Title Hours

CSC211 CSC212 CSC213 CSC214 CSC215 CSC216 CSC217 Semester II

Data Structures and Algorithms Systems Analysis and Design Computer Architecture Digital Electronics Introduction to Artificial Intelligence Assembly Language Programming Web Programming and Applications

45 45 45 45 45 45 45

Course Code

Course Title

Hours

CSC221 CSC222 CSC223 CSC224 CSC225 CSC226 CSC227

Object-oriented Analysis Design and Programming Automata Theory Operating Systems Software Engineering Computer Networks Computer Systems and Networking Lab Programming Project

45 45 45 45 45 45 45

Year III (Compulsory Units) Semester I


Course Code Course Title Hours

CSC311 CSC312 CSC313 CSC314 CSC315 CSC316 Semester II


Course Code

Analysis and Design of Algorithms Artificial Intelligence Programming Foundations of Human Computer Interaction Computer Graphics Distributed Systems Introduction to Organizations and Management

45 45 45 45 45 45

Course Title

Hours

CSC321 CSC322 CSC323 CSC324 CSC325 CSC326 Year IV Semester I


Course Code

ICT Project Management Network and Distributed Programming Machine Learning User-centred Development and Evaluation Management Information Systems Compiler Construction

45 45 45 45 45 45

Course Title

Hours

CSC411 CSC412 CSC413 CSC414 CSC416 Semester II


Course Code

Computer Network Security Knowledge-based Systems Principles of Business Management and Entrepreneurship ICTs and Society Computer Systems Project Elective 1 (from group I Electives)

45 45 45 45 45 45

Course Title

Hours

CSC416

Computer Systems Project Elective 2 (from group II Electives) Elective 3 (from group II Electives) Elective 4 (from group II Electives)

135 45 45 45

Electives

Group I Electives
Course Code Course Title Hours

CSC421 CSC422 CSC423 Group II Electives Net-centric Computing


Course Code

Introduction to Language Technologies Design Thinking Wireless Networks and Mobile Computing

45 45 45

Course Title

Hours

CSC431 CSC432 CSC433 Intelligent Systems


Course Code

Network Management Service-oriented Computing Multimedia Technologies

45 45 45

Course Title

Hours

CSC441 CSC442 CSC443 CSC444 Information Systems


Course Code

Knowledge Engineering and Society Knowledge Discovery and Data Mining Advanced Language Technologies Multi-agent Systems

45 45 45 45

Course Title

Hours

CSC451 CSC452 CSC453 CSC454 Computer Architecture


Course Code

Distributed Databases Information Systems Control and Audit Social Network Computing Strategic Information Systems

45 45 45 45

Course Title

Hours

CSC461 CSC462 CSC463

Performance Modelling Advanced Computer Architecture Embedded Systems

45 45 45

Human Computer Interaction


Course Code Course Title Hours

CSC471

Interaction Design for Collaboration and Communication

45

Graphics and Visual Computing


Course Code Course Title Hours

CSC481

Computer Games Programming

45

10

8 Course Units Descriptions CSC111 INTRODUCTION TO COMPUTER SYSTEMS Learning Outcomes Describe the structures and functional components of computer systems based on the classical von Neumann model. Describe external and internal representation of data Describe the diverse areas of application of computers and computer systems. Describe and use the physical components of contemporary personal computer systems Demonstrate proficiency in the use and application of a wide spectrum of productivity tools Content: Organization: Introduction to the computer and the notion of a programmable machine. The basic organization based on the Von Neumann model. Functional components (CPU, memory, I/O) and their logical organization. Number systems and internal data representation. Concept software and types of software. Components of contemporary personal computer systems from end-user perspective. Application: Classical and contemporary applications of computers. Proficiency in basic computer usage and productivity/office automation applications including wordprocessing, spreadsheets, e-mail, web, etc. Basic first level security and maintenance issues. Ethical and societal issues. Pre-requisites: None, Delivery: lectures, practicals CSC112 INTRODUCTION TO PROGRAMMING Learning Outcomes To describe basic programming concepts and constructs. To demonstrate proficiency in use of a selected high-level procedural programming language. To apply programming concepts and tools in developing simple programs. Content: Introduction to computer programming: High-level and Low-level Programming Languages; Program writing tools: Editors; Language translators: Assemblers, Compilers, Interpreters, Source code, Object code, Executable file and extensions of the different files; Running a Program; Programming concepts: Data types, Operators, arithmetic and logical expressions; Input/Output: unformatted and formatted input/output and program interfaces; Control structures: Sequencing, Selection and Repetition structures; Procedural abstractions: Functions and program structure, Parameter passing by value, command line arguments, scope rules, external definitions; Recursion; Practical Programming: Develop simple programs which utilize appropriately the programming constructs learned: variables, expressions, control statements, functions and recursion to solve simple problems. Pre-requisites: None, Delivery: Lectures, tutorials, and laboratory work. CSC113 DISCRETE MATHEMATICS Learning Outcomes To explain the basic principles and laws of Boolean algebra, Logic, Set theory, Permutations & combinations and Graph Theory. Be able to construct simple mathematical proofs Be able to understand logical arguments and logical constructs. Have a better understanding of sets, functions, and relations. Demonstrate ability to describe computer programs in a formal mathematical manner Content: Set theory: set algebra, Venn diagrams, complements, Cartesian products, power sets, recursive definition of sets, orderings, relations (reflexivity, symmetry, transitivity, equivalence relations); Functions: Domain, range, Surjections, Injections, Inverses, Composition, Sequences and series; Counting arguments Pigeonhole principle, Cardinality and countability, Sum and
11

product rule, Inclusion-exclusion principle, Permutations and combinations, Pascals rule; Boolean algebra: axiomatic definitions of Boolean algebra, duality, truth values and truth tables.; Logic: propositional logic, predicate logic, logical reasoning: The structure of mathematical proofs: Direct proofs, Proof by counter example, Proof by contradiction, Mathematical induction; Graph Theory: directed and undirected graphs, sub-graphs, circuits, paths, cycles, connectivity, adjacency and incidence matrices, elements of transport network. Pre-requisites: None, Delivery: Lectures and Tutorials. CSC114 DIFFERENTIAL AND INTEGRAL CALCULUS Learning Outcomes: Distinguish between various types of numbers. Apply basic geometric concepts such as Pythagoras theorem. Differentiate standard functions. Integrate standard functions. Content: Basic Mathematics: Numbers and simple functions, Trigonometry, Complex numbers, Analytic Geometry; Differentiation: Derivatives of functions including inverse trigonometric, hyperbolic, inverse hyperbolic, and logarithmic functions; Methods of differentiation; Rules of differentiation: Maximum Points and Minimum Points , Newton-Raphson method for solving equations; Integral calculus: Integration as the inverse of differentiation, Definite integrals, Standard forms, Application of integration to length, area and volume; Techniques for Integration: Integration by Parts reduction formulae, substitution, Partial fractions, Average value of a function, Elements of numerical integration. Pre-requisites: None, Delivery: Lectures and Tutorials. CCS001 COMMUNICATION SKILLS The learning outcomes and content of this course are as defined in the standard curriculum from BCUC. CCS009 ECONOMICS The learning outcomes and content of this course are as defined in the standard curriculum from BCUC. CSC121 PROGRAMMING AND PROBLEM-SOLVING Learning Outcomes: Describe and explain advanced programming concepts and constructs. Demonstrate good programming practices. Demonstrate an appreciation of problem solving as an intellectual activity that requires thinking carefully and precisely about a problem. To apply programming and problem solving skills to solve large and interesting problems in a wide variety of domains. Content: Advanced Programming concepts: Review of basic data types, expressions, control structures and functions; Arrays and pointers: one dimensional arrays, multidimensional arrays, pointer variables and operators, call by reference, arrays of pointers; Structures: Arrays of structures, Pointers to structures; Characters and strings: Fundamentals of non numeric data (characters and strings), character handling library, string handling libraries; File processing; Secure programming; Problem solving and implementation: Introduction to program development life cycle. Problem Solving: Notion of an algorithm, Formulating algorithms with stepwise refinement; Pseudo-code and flowcharts as algorithm development tools; Structured program design; Verification of algorithms; Implementation: Translating an algorithm into a language dependent code; testing, and debugging code; Readability of programs; Practical problem solving: Develop programs which utilize a suitable combination of programming constructs and problem

12

solving techniques to solve substantially complex problems. Pre-requisites: CSC112, Delivery: Lectures, Tutorials and Labs. CSC122 DATABASE SYSTEMS Learning Outcomes: Describe the goals, roles, applications, of database systems. Demonstrate a detailed understanding of the principles and techniques of database systems design. Demonstrate a detailed understanding of Relational Database Management Systems (RDMS). Exhibit competence in SQL and other selected database tools. Specify, design and develop databases for a variety of applications.. Content: An Overview of Database Systems. Database Architecture and its Environment. EntityRelationship Modeling. Normalization. Relational Database Systems. Introduction to SQL. File Organization for Physical Database De-sign. Database security. Transaction processing. Query processing. Pre-requisites: None: Delivery: Lectures and Practical Exercises. CSC123 DATA COMMUNICATIONS Learning Outcomes: Describe the generic components of a data communications system. Describe the various transmission media their characteristics and applications. Describe and critique standard data encoding techniques for transmission. Describe multiplexing, error control and flow control concepts, schemes and techniques. Describe contemporary data communication standards. Content: Introduction to data communication; Data transmission system components - DTEs, DCEs and Channels; Data transmission media; The OSI reference model; Data encoding; Basic serial communications interfacing standards; Analysis and synthesis of wave forms; Channel characteristics, Band-width, data rates, capacity; Transmission modes, Modulation and Multiplexing; Synchronization; Error control: detection and correction; Data encryption and compression; Introduction to Network topologies; Data link layer: Line configurations, flow control, error control, bit oriented link control, simplex and sliding window protocols. Data communication standards. Pre-requisites: CSC214, Delivery: Lectures and tutorials. CSC124 PROBABILITY AND STATISTICS Learning Outcomes: Explain the importance and application of probability and statistics in computing and research Demonstrate skills in presenting quantitative data using appropriate diagrams, tabulations and summaries Be able to use and apply appropriate statistical methods in the analysis of simple datasets Be able to interpret and clearly present output from statistical analyses in a clear concise and understandable manner. Content: Importance of probability and statistics in computing; Types of data: Qualitative, Discrete and continuous data; Summary diagrams and charts: Types of charts, frequency tables, histograms, Time series; Descriptive and inferential statistics and statistical models; Data analysis and interpretation using spreadsheet software. Elementary Statistics: Population and Sample, raw data, classification. Principles of data tabulation and graphical representation. Fundamental statistical measures: Average, median, mode, mean absolute deviation, variance, standard deviation. Probability: Basic Concepts: Permutation, Combination, Sample spaces and events, Conditional probability, Probability trees. Random variables and their distributions: binomial,
13

Poisson, exponential, normal; Hypothesis testing : Null and Alternate, test procedure, hypothesis tests, Type I and Type II errors, Regression and correlation; Markov and Chebychev inequalities. Pre-requisites: CSC113, Delivery: Lectures and Tutorials. CSC125 LINEAR ALGEBRA Learning Outcomes To appreciate and apply the basic principles of vector analysis, matrices and linear equations. To equip students with knowledge of topics that will be useful in other disciplines, such as systems of equations, vector spaces, determinants, eigen values, similarity, and positive definite matrices. Content: Boolean algebra: axiomatic definitions of Boolean algebra, duality, proposition and proposition functions, truth values and truth tables. Logic: predicate logic, propositional logic, logical reasoning. Set theory: set algebra, recursive definition of sets, orderings, relations, Partially ordered sets. Latices. Permutations and combinations. Graph Theory: directed and undirected graphs, sub graphs, circuits, paths, cycles, connectivity, adjacency and incidence matrices, elements of transport network. Pre-requisites: None, Delivery: Lectures and Tutorials. CSC 126: Physics for Computing Systems Learning outcomes: Appreciate the basic concepts, definitions and elements in magnetism, electric circuits, electronic circuits and waves Describe applications of magnetism, electronics and waves in computing systems Explain the impact of advances in semiconductor electronic technology on computing systems Contents: Magnetism: basic concepts of magnetism and electromagnetism. Basic laws Applications in computing systems, e.g. magnetic storage media. Electric circuits: review of Ohms law. Elements of RLC circuits and their characteristics. RLC electric circuit analysis and synthesis. Electronics: The P-N junction and its V-I characteristics; diode resistance. Conventional, photo and light emitting diodes. The bipolar junction transistor; common base, common emitter, common collector configurations and their characteristics. The transistor as a switch. Field effect transistors and their characteristics. Applications in basic logic circuits and in computer storage devices. Waves: general definitions, attributes and characteristics of waves. Sound waves. Electromagnetic waves. Sinusoidal components. The electromagnetic spectrum. Interference, reflection and refraction of waves. Applications in computer communications. Pre-requisites: CSC113, Delivery: Lectures, tutorials, and laboratory exercises CCS010 HIV/AIDS The learning outcomes and content of this course are as per the standard curriculum from BCUC. CSC211 DATA STRUCTURES AND ALGORITHMS Learning Outcomes: Demonstrate understanding of the relevance of abstraction to problem solving. Understand the fundamental data structures and algorithms. Demonstrate understanding of the description, design and implementation of fundamental data structures and their algorithms. Be able to apply different data structures and their algorithms to implement solutions to various computational problems. Content: Introduction: Definitions: Data type, Data Structure, Algorithms, Abstraction, Objects and Abstract data types (ADTs). Mathematical models of data as an abstract concept such as set, list
14

or graph. Discuss the distinction between an abstract data type and an implementation of that data type. The role of data structures in programming. Data structures and algorithms: Arrays, Linked lists, Lists, Stacks, Queues, Priority Queues, Hash tables, Heaps, Trees: Binary search trees; Graphs; Searching and sorting techniques: Sequential Searches, Binary Search; application areas for data structures and algorithms. Pre-requisites: CSC121, Delivery: Lectures, tutorials, and Labs. CSC212 SYSTEM ANALYSIS AND DESIGN Learning Outcomes: Demonstrate understanding of the types of business needs that can be addressed using information technology-based solutions. Demonstrate ability to Initiate, specify, and prioritize information systems projects and determine various aspects of feasibility of these projects. Be able to effectively collect and analyse data using appropriate techniques and instruments. Apply specific modeling methodology to analyse, design and specify requirements for a business situation using a formal technique. Exhibit competence in applying contemporary analysis and design techniques in business process improvement. Design high-level logical system characteristics. Articulate and compare various systems acquisition alternatives. Content: Identification and Structuring of IT-based opportunities into projects; Project conceptualization and feasibility; Fundamentals of IS project management; Business process management and improvement; Analysis of business requirements; Analysis and specification of system requirements (Data collection methods, Methods for structuring and communicating requirements: Modeling, Data and Process Specification, presentation); Feasibility analysis of technical alternatives; System Design: Factors affecting user experience, User interface design, System data requirements, Factors affecting security, Ethical considerations; Different approaches to systems analysis & design; Organizational implementation of a new information system. Prerequisites: none. Delivery: Lectures, Discussions, Cases, and Group Assignments. CSC213 COMPUTER ARCHITECTURE Learning Outcomes: Describe the computer architecture and aspects of architecture ie, external and internal architecture. Describe the concepts and components of programming model, instruction sets, computer arithmetic. Describe the relationships between instruction set architecture, micro-architecture, complexity and performance. Describe and compare the various system interconnection structures and systems. Describe the organization of secondary storage and input-output subsystems. Content: Computer architecture definitions. External vs internal architecture. System architecture: CPU, memory, I/O and interconnection structures. Instruction Set Architecture (ISA): instruction types and formats; CISC and RISC systems. Hardware Systems Architecture from ISA: The processor unit classical organization: components, ALU, processor registers and internal bus; instruction cycle and its realization in micro-code and RTL; control unit design, e.g. hardwired and micro-programmed control. Memory logical organization and addressing; introduction to the hierarchical memory system. Input/output subsystem organization. Secondary storage subsystem organization. Realization of the logical components in contemporary systems, e.g. motherboards, memory cards, processor chips.; Installation and maintenance. Pre-requisites: CSC111, Delivery: Lectures, tutorials and demonstrations.

15

CSC214 DIGITAL ELECTRONICS Learning Outcomes: Explain concepts and terminology of digital electronics. Application of logic to design and creation, using gates, to solutions to a problem. Use DeMorgans Theorem to simplify a negated expression. Formulate and employ a Karnaugh Map to reduce Boolean expressions and logic circuits to their simplest forms. Create circuits to solve problems using gates to replicate all logic functions. Design and evaluate a solution to a digital design problem. Design and implement combinational logic circuits using reprogrammable logic devices. Content: Binary Arithmetic; Boolean Algebra; Algebraic Representation of Logic Circuits,; DeMorgans Theorems; Karnaugh Maps; complex circuits from Primitive Logic Elements; Programmable Logic, Sequential Circuits: Latches, Clock Signals and Clocked Flip-Flops, FlipFlop; Analyzing Sequential Circuits; State Diagrams, Tables, and Machines; Interfacing with the Analog World: Digital-to-Analog Conversion, Analog-to-Digital Conversion; Sample-and-Hold Circuits, Multiplexing, Digital Storage; Integrated Circuits; Memory: Memory Technology, General Memory Operations; Circuit Board Technology: Subtractive Process, Additive Process; Technologies of the Future; Nano-technology. Pre-requisites: CSC126, Delivery: Lectures, tutorials and practicals. CSC215 INTRODUCTION TO ARTIFICIAL INTELLIGENCE Learning Outcomes: Describe the main sub-disciplines of Artificial Intelligence. Describe and apply the search technique as a way of solving problems in AI. Construct applications using knowledge based techniques. Describe the key ideas and concepts of each sub-discipline of Artificial Intelligence. Content: The meaning of the term Artificial Intelligence; Problems, problem spaces and search. Knowledge representation concepts and issues. Introduction to knowledge-based and case-based systems. Introduction to expert systems. Introduction to learning and adaptive systems. Intelligent Agents and Distributed Artificial Intelligence. Introduction to natural language understanding and speech recognition. Introduction to planning. Introduction to robotics. Introduction to game playing. Introduction to machine vision. Pre-requisites: CSC113, CSC124, Delivery: Lectures, demonstrations and tutorials. CSC216 ASSEMBLY LANGUAGE PROGRAMMING Learning Outcomes Describe the machine-level programming model using a case study, eg. Intel IA32 Describe the elements and structure of assembly language programs. Describe and be able to use assembly language instruction set Demonstrate the implementation of standard programming constructs, including control structures and functions, in assembly language Develop assembly language programs to solve simple programs Content: Introduction to machine and assembly language; Machine programming model: register sets and memory structure. Concepts and instruction formats; Dataword definition. Addressing techniques: absolute, relative, indexed and indirect addressing modes; Assembly language Implementation of high-level language operations and constructs; Stack operations; Procedures and parameter passing; I/O instructions and device handling; Operating system interfaces.; Multi module programs and their linkage; Linkers and loaders; Relocating loaders; Interfacing assembly language programs with high-level language programs. Pre-requisites: CSC111, CSC121. Delivery: Lectures, Tutorials and Laboratory Exercises.
16

CSC217 WEB PROGRAMMING AND APPLICATIONS Learning Outcomes: Describe the concept of the layered communication protocols architecture. Describe the internetworking architecture. Explain the client-server interaction and the socket interface. Describe the various Internet application and services. Content: Introduction; Internetworking: Concepts, Architecture and protocols; Internet infrastructure: Intranets and Extranets; Internet Services: The World Wide Web (WWW), File Transfer Protocol services, HyperText Markup Language (HTML), HyperText Transfer Protocol (HTTP), Internet Email technologies, Web search techniques, Web robots etc., Web programming, Server and Client Side Scripting. Pre-requisites: CSC123 Data Communications. Delivery: Lectures, Tutorials and Case Studies. CSC221 OBJECT-ORIENTED ANALYSIS, DESIGN AND PROGRAMMING Learning Outcomes: Demonstrate an in-depth understanding of Object Oriented paradigm and concepts Apply object oriented concepts using a selected language e.g. Java Develop object oriented programs using a selected OOP programming language Understand object oriented software development techniques from requirements gathering to implementation. Analyze application scenarios and design software systems using Object oriented analysis and design. Content: Introduction to object technology; evolution of OOP languages; Concepts and terminology: Abstraction, Encapsulation, Inheritance, Polymorphism, Classes, Objects, Methods and Messages. Object Oriented Programming using a selected language: Abstract Data Types and Classes, Single and Multiple Inheritance, Overloading, Polymorphism, Dynamic Binding, Object class libraries, Associations and Aggregations. Object-Oriented Analysis and Design (OOAD): Overview of OOAD; UML Concepts: Notations, Meta-models, diagrams; OOA with UML: Requirements workflow, Use case analysis, analysis workflow, class identification, class relationship analysis, Object state analysis, object activity analysis; OOD with UML: design workflow, object design, system design; reuse; Design patterns. Pre-requisites: CSC121 Programming and problem solving CSC211 Data structures and algorithms . Delivery: Lectures, tutorials, and Labs. CSC222 AUTOMATA THEORY Learning Outcomes: Demonstrate an in-depth understanding of theories, concepts and techniques in automata and their link to computation. Understand the connection between language and computation. Develop abstract machines that demonstrate the properties of physical machines and be able to specify the possible inputs, processes and outputs of these machines. Analyze the computational strengths and weaknesses of these machines. Understand the concept of computability by manipulating these machines in order to demonstrate the properties of computational processes. Practice techniques of program design and development by using abstract machines. Apply automata concepts and techniques in designing systems that address real world problems.

17

Content: Introduction to models of computation and formal languages, Set theory, Functions, Mathematical Induction and Methods of Proof; History of Automata, Languages, Recursive definitions, Regular expressions, Finite automata, transition graphs, Kleenes theorem, Nondeterminism, Finite automata with output, Equivalence, Regular and non-regular languages, Decidability; Pushdown automata, Context free grammars; Turing theory, Turing machines. Introduction to functional programming. Pre-requisites: CSC113 Discrete Mathematics. Delivery: Lectures, Tutorials and Practicals. CSC223 OPERATING SYSTEMS Learning Outcomes: Demonstrate understanding of the concepts, structure and design of operating Systems. Demonstrate understanding of operating system design and its impact on application system design and performance. Demonstrate competence in recognizing and using operating system features. Content: Operating systems concepts and overview: Historical perspective, types of operating systems, architecture of operating systems. Process Management: processes and threads, process creation, synchronization (mutual exclusion, Semaphores, Monitors) and communication; Processor scheduling; Deadlock prevention, avoidance and recovery. Memory management: Main Memory Management, Virtual Memory Management (swapping, paging, segmentation and pagereplacement algorithms); File system structure and implementation; Input Output systems and device management; Protection and security; Hands on study of the system call/end user interface of an industry standard operating system e.g. Linux: programming with process, File and I/O system calls, shell commands and scripts. Pre-requisites: CSC111 Introduction to Computer Systems CSC211 Data Structures and Algorithms. Delivery: Lectures and tutorials, supervised laboratory exercises. CSC224 SOFTWARE ENGINEERING Learning Outcomes: To be able to describe and analyze the various software engineering paradigms, methodologies and tools. To be able to apply software engineering methodologies and tools in the design and implementation. To be able to describe and discuss current developments and trends in software engineering. Content: Software Engineering Paradigms; Software Requirements Specification; Software Design; Software Coding; Software Implementation; Software Quality Assurance; Configuration Management; Software Re-engineering; Project Management; Trends and Developments in Software Engineering. Pre-requisites: None; Delivery: Lectures, Practical Exercises. CSC225 COMPUTER NETWORKS Learning Outcomes: Be able to describe and explain fundamental generic concepts and principles in computer networking. Describe the layered network architecture reference models Describe and analyze common network topologies, protocols and standards. Describe the TCP/IP architecture, its protocols and applications. Describe and analyze contemporary network technologies. Content: Introduction: Uses of computer Networks, classification of computer networks; layered network architecture; OSI and TCP/IP reference Models; Data Link Layer and LANs: Data link services and protocols; Medium access control sub-layer: Medium access protocols and LANs; LAN Technologies: IEEE standards for LANs, ATM LANs;
18

Data link layer switching: Repeaters, bridges, switches, routers; Virtual LANs; Network layer: Endto end Connection oriented and Connectionless service; Switching techniques; Routing; Congestion Control; Quality of service; Example Packet switched WANs: X.25, frame relay; ATM Networks; Internetworking: Internetworking concepts; Internet structure; Internet Network layer and protocols: ICMP, ARP, RARP, DHCP. Transport Layer: Transport services and mechanisms: socket API, connection setup and teardown, addressing, reliable data transfer and flow control mechanisms; Internet Transport protocols: TCP and UDP; Application layer: Principles of application layer protocols; Internet directory service: DNS, Electronic mail: SMTP, File transfer: FTP; World Wide Web: HTTP, Telnet. Pre-requisites: CSC123 Data Communications CSC213 Computer Architecture, Delivery: Lectures, tutorials and case studies CSC226 COMPUTER SYSTEMS AND NETWORKING LAB Learning Outcomes: Identify and describe common hardware and software components of the contemporary computer system. Install and configure the hardware system of a computer. Install and configure common operating systems, utilities and other software. Identify and describe the functions of common networking devices, including switches, routers. Design, install and configure a local area network (LAN and WLAN) using common networking devices and employing the TCP/IP protocol stack. Diagnose computer system and network problems at first level. Content: Installation, configuration, operation, and troubleshooting medium-size routed and switched networks; Basic mitigation of security threats; Introduction to wireless networking performance-based skills; Use of protocols: IP, Enhanced Interior Gateway Routing Protocol (EIGRP), Serial Line Interface Protocol Frame Relay, Routing Information Protocol Version 2 (RIPv2),VLANs, Ethernet, access control lists (ACLs). Pre-requisites: CSC123 Data Communications CSC225 Computer Networks. Delivery: Demonstrations and Hands-on practicals. CSC227 PROGRAMMING PROJECT Objectives: Given a specification, to analyse, design and implement a computer system, after which the student shall submit a project report in line with SCIs project requirements and guidelines. CSC311 ANALYSIS AND DESIGN OF ALGORITHMS Learning Outcomes: Appreciate the upper, lower and average running time and space complexity of algorithms. Represent the time and space complexity of algorithms using asymptotic notations. Derive the time and space complexity of algorithms. Deduce recurrence relations that describe the time complexity of recursively defined algorithms. Solve elementary recurrence relations. Understand different approaches to design of algorithms. Use different algorithm design techniques to solve problems. Content: Worst and average case analysis; Asymptotic Notations; Standard complexity classes; Efficient algorithms for sorting, searching, and selection; Recurrences; binary search trees, heaps, hash tables, red-black trees; graph problems: Graph traversal minimum-cost spanning tree, connected components, topological sort, and shortest paths; Algorithm design techniques: BruteForce Algorithms, divide-and-conquer, dynamic programming; NP Complete problems. Pre19

requisites: CSC113 Discrete Mathematics, CSC211 Lectures, Tutorials and Labs.

Data structures and Algorithms. Delivery:

CSC312 ARTIFICIAL INTELLIGENCE PROGRAMMING Learning Outcomes: Appreciate the concepts in propositional and predicate calculus. Apply logic-based inference strategies. Use a logic programming language to implement logical reasoning systems. Formulate logical reasoning strategies and models. Content: Introduction to propositional and predicate calculus. Logic programming language syntax. Inference. Resolution. Logical reasoning systems. Logic programming in a logic language. Example logic programs for Artificial Intelligence including logical agents and goal-based agent. Pre-requisites: CSC113 Discrete Mathematics, CSC215 Introduction to Artificial Intelligence, CSC222 Automata Theory. Delivery: Lectures, demonstrations, tutorials and laboratory exercises CSC313 FOUNDATIONS OF HUMAN COMPUTER INTERACTION Learning Outcomes: Demonstrate understanding of the user-centred product development process in HCI. Demonstrate understanding of the importance of both the individual human models and social models in the design of human computer interaction. Be able to define different processes for defining interfaces for different contexts. Show ability to choose between qualitative and quantitative evaluation methods for a given evaluation question. Show ability to articulate use of vocabulary for analyzing human inter-action with software. Demonstrate ability to interpret different interface elements (icon, symbol, word, or color) in different human cultures. Content: Human-computer interaction for usable, accessible and acceptable systems; Contexts for HCI (mobile devices, consumer devices, business applications, web, business applications, collaboration systems, games, etc.); Process for user-centered development: early focus on users, empirical testing, iterative design; Different measures for evaluation: utility, efficiency, learn-ability, user satisfaction; Models that inform human-computer interaction (HCI) design: attention, perception and recognition, movement, and cognition; Conceptual Design Process: perceived accordance, conceptual model, mental model, metaphor, interaction paradigm, interaction design, feedback, etc. ; Social issues influencing HCI design and use: culture, communication, and organizations; Accommodating human diversity, including universal de-sign and accessibility and designing for multiple cultural and linguistic con-texts; The most common interface design mistakes; User interface standards. Pre-requisites: CSC212 Systems Analysis and Design. Delivery: Lectures, Practical Exercises, Group Discussions and assignment, Tutorials CSC314 COMPUTER GRAPHICS Learning Outcomes: Demonstrate ability to define computer graphics primitives. Be able to distinguish the capabilities of different levels of graphics soft-ware and describe the appropriateness of each. Be able to create images using a standard graphics API.

20

Show ability to use the facilities provided by a standard API to express basic transformations such as scaling, rotation, translation, reflection, shearing etc. Demonstrate ability to implement algorithms that perform transformation and clipping operations on simple 2-dimensional and 3-dimensional objects. Content: Hierarchy of graphics software; Line generation algorithms e.g. DDA, Bresenhams; Using a graphics API; Simple color models (RGB, HSB, CMYK); Homogeneous coordinates; Affine transformations (scaling, rotation, translation); Viewing transformation; Clipping; Font generation: outline vs. bitmap; Light-source and material properties; Ambient, diffuse, and specular reflections; Phong reflection model; Rendering of a polygonal surface; flat, Gouraud, and Phong shading; Texture mapping, bump texture, environment map; Introduction to ray tracing; image synthesis, sampling techniques, and anti-aliasing. Pre-requisites, CSC211 Data Structures and Algorithms. Delivery: Lectures, Laboratory Sessions. CSC315 DISTRIBUTED SYSTEMS Learning Outcomes: Demonstrate understanding of the goals, concepts, principles and techniques behind the design and implementation of distributed systems. Understand basic distributed algorithms and the assumptions they are based on Demonstrate ability to apply the principles and concepts learnt from the course in interpreting the software design of some real life distributed systems case studies. Demonstrate awareness of emerging application areas for distributed systems. Content: Introduction to distributed systems: goals of distributed systems; Types of distributed systems: distributed systems, Clusters, Grids, sensor networks etc; Distributed system Architectures: system architectures: centralized, multi-tiered, peer-to-peer etc; Middleware; Communication: RPC, Group Communication, Message oriented communication; Naming; Coordination and synchronization: Clock synchronization, logical clocks, Mutual exclusion, Election algorithms, deadlocks; Consistency and Replication; Fault Tolerance: distributed transactions; Security; Distributed File Systems; study some specific real world distributed systems case studies. Pre-requisites: CSC223 Operating Systems, CSC225 Computer Networks. Delivery: Lectures and Tutorials CSC316 INTRODUCTION TO ORGANIZATIONS AND MANAGEMENT Learning Outcomes: Define managers and their roles in organizations. Distinguish between management and leadership. Explain the key functions of management. Describe theories of organizations and management. Apply tools of management in practical situations. Appreciate organizational change and learning. Content: Introduction to management; Organization theories; Management theories; Decision making processes and models; Managerial planning; Organizational structuring; Human resource management; Leadership; Organizational change and learning. Pre-requisites: None. Delivery: Lectures, Group discussions and presentations CSC321 ICT PROJECT MANAGEMENT Learning Outcomes:

21

Define project management Describe the project management life cycle Explain the ICT project management process Apply project management methodologies and tools in ICT project management Describe ICT project management standards Explain how to manage change associated with ICT projects Content: Introduction to project management; Project life cycle: Project organization, Project planning, Project monitoring, Project control, and Project learning; The ICT project management process; Project management methodologies and tools; ICT project management standards; Management of change; Cases of ICT project management. Pre-requisites: CSC316 Introduction to Organizations and Management. Delivery: Lectures, Case studies, Active research by learners, Group discussions and presentations CSC322 NETWORK AND DISTRIBUTED PROGRAMMING Learning Outcomes: Describe the software concepts, principles, mechanisms, architectures and platforms that underpin the design and implementation of distributed systems and applications. Demonstrate competence in concurrent programming models used to build scalable servers. Describe and analyze the design and architecture of object based distributed systems Design and construct networked and distributed applications including client-server, peer-topeer and distributed object based applications. Content: Concurrent Programming: Processes and threads, process/thread interaction mechanisms; classical problems in concurrent programming; concurrent programming with threads; Network programming: TCP and UDP transport, Introduction to software design models: client/server, peer-to-peer etc; Server designs; Networking APIs; Sockets: introduction to sockets, socket options, socket types, Name and address conversions; Non blocking I/O; Daemons; Broadcasting and multicasting; Network programming with TCP/IP; Distributed Programming: Middleware for distributed applications; Remote Procedure Calls(RPC), Distributed programming using RPC; Distributed Object based systems: Distributed objects, Architecture; Communication; Distributed object programming systems: Java RMI, CORBA, DCOM; Distributed object based programming using Java RMI and CORBA. Pre-requisites: CSC221 Object-oriented Analysis, Design and Programming CSC223 Operating Systems, CSC225 Computer Networks, CSC315 Distributed Systems. Delivery: Lectures and Tutorials CSC323 MACHINE LEARNING Learning Outcomes: Describe and analyze machine learning problems. Demonstrate ability to select effective learning algorithms. Design machine learning systems. Describe the nature of real-world data. To demonstrate practical knowledge of the structure and content of learning programs. To demonstrate skills in using and in the implementation of learning systems. Content: General models of machine learning: Artificial Neural Networks, Bayesian Methods, Evolutionary Computation, Decision Tree Learning, Instance-Based Learning, Artificial Immune Systems, Data mining and other emerging models. Examples of symbolic learning systems, Examples of adaptive learning systems. Empirical nature of Machine Learning. Pre-requisites: CSC121 Programming and Problem Solving, CSC124 Probability and Statistics, CSC125 Linear Algebra, CSC215 Introduction to Artificial Intelligence CSC222 Automata Theory, CSC312 Artificial Intelligence Programming. Delivery: Lectures, seminars, group projects and discussions, supervised laboratories.

22

CSC324 USER-CENTRED DEVELOPMENT AND EVALUATION Learning Outcomes: Be able to apply various tools and techniques to the development of user-centred products with emphasis on human to computer interaction. Be able to demonstrate understanding of the various evaluation techniques, with and without the typical user, for user-centred products with emphasis on human computer interaction. Content: Approaches, characteristics, and overview of product development process, with special emphasis on software development process; Introduction to Functionality and usability requirements; user modeling; Techniques for gathering requirements; Notations for specifying user interfaces; Prototyping techniques: Sketching, Paper storyboards, Low-fidelity or paper prototyping, Medium fidelity prototyping, Storyboards, etc.; Prototyping tools and GUI builders; User-interface software techniques, prototyping languages and GUI builders; Product evaluation without typical users; Product evaluation with typical users; Reporting the results of evaluations. Pre-requisites: CSC313 Foundations of Human Computer Interaction. Delivery: Lectures, Group Discussions and Tutorials, Design case. CSC325 MANAGEMENT INFORMATION SYSTEMS Learning Outcomes: Distinguish various types of information systems. Describe organizational and managerial foundations of information systems. Evaluate the role of information systems in a business. Analyze challenges posed by information systems and management solutions. Describe the role of internet technologies in facilitating business processes. Assess contemporary hardware and software platforms and their trends. Evaluate various tools for communication and e-business. Analyze the business value of security and control. Demonstrate how decision making process can be enhanced in an organization. Design an enterprise information portal. Content: Overview of MIS: Definition, Role of MIS; key concepts; MIS an evolving concept, related areas, MIS Subsystems; Conceptual foundations; hard-ware/software platforms and trends; database trends, e-commerce, ethical and social issues in the digital firm. MIS Structure: Operating Elements; Management Activity; Organizational Functions; features of organizations; Organizational and Management support systems: Decision making and decision support; Phases in Decision Making; Concepts of Decision Making; Models: Decision Maker; Conceptual & Physical Structure; Formal; Business Process Integration; User Machine;, Organizational Decision; Decision making under Physiological Stress; Methods for deciding among alternatives; Concepts of Information. Pre-requisites: None, Delivery: Lectures and Tutorials. CSC326 COMPILER CONSTRUCTION Learning Outcomes: To understand the principles and techniques used to perform translation and the fundamental concepts of translator construction. To appreciate the concepts of compiler construction. To describe and analyze software tools and techniques which are applicable both to compilers and the implementation of system utility routines, command interpreters, etc. To construct simple compilers. Content: Compilers and Interpreters. Overview of the compilation process: The phases of compilation: Lexical analysis, syntax analysis, semantic analysis, code generation; Issues in compiler design: symbol tables, program compilation, loading and execution; Compilation
23

techniques: One pass and two pass. Run-time storage management. Object code for subscripted variables; A simple complete compiler: Organization, Subroutine and function compilation, Bootstrapping techniques, Multi pass compilation; Optimization: techniques, local, expressions, loops and global Optimization. Software tools for compiler construction: Lexical analyzers; parser generators. Pre-requisites: CSC211 Data Structures and Algorithms, CSC213 Computer Architecture, CSC216 Assembly Language Programming, CSC222 Automata Theory, CSC223 Operating Systems. Delivery: lectures, Tutorials and Labs. CSC411 COMPUTER NETWORK SECURITY Learning Outcomes: Describe and analyze security threats and vulnerability of networked systems Describe and analyze security control mechanisms. Undertake security analysis and apply relevant security control mechanisms. Develop security policy and design security plans. Content: Information and network security threats and threat analysis. Access control systems: mechanisms and technologies. Message security: confidentiality, authentication and integrity; Cryptography and its application to message security. Operating system vulnerabilities, intrusion detection, authentication systems, Kerberos, email security (PGP, S/MIME), firewalls, IP security (IPsec), SSL, TLS, WWW security, Ensuring Security for Electronic Commerce, Financial Networks, Intranets and Extranets, Business Continuity and Disaster Recovery Planning. Prerequisites: CSC225 Computer Networks. Delivery: Lectures and Tutorials CSC412 KNOWLEDGE-BASED SYSTEMS Learning Outcomes: Define the various schemes for Knowledge Representation. Associate knowledge representation methodologies with appropriate application areas. Efficiently use the knowledge representation tools and techniques that form the foundation for symbolic reasoning systems. Gain skills in the use of available environments and shells for rapid knowledge-based systems development and implementation. Content: Data, Knowledge and Information; Introduction to Knowledge Based systems (KBS): Definition, Components, Types; Knowledge Acquisition and Elicitation; Knowledge Representation; Representing knowledge using rules, frames, ontologies, Semantic nets etc.; Inferencing: Forward Chaining, Back-ward Chaining; Reasoning; Uncertainty; Case-based reasoning; Representing common-sense knowledge. AI development languages, environments and shells. Knowledgebased shells. Identifying and selecting a knowledge-based development tool. Problem requirements definition. Introduction to knowledge engineering; Term project. Pre-requisites: CSC113 Discrete Mathematics, CSC121 Programming and Problem Solving, CSC215 Introduction to Artificial Intelligence, CSC222 Automata Theory, CSC323 Machine Learning. Delivery: Lectures and Tutorials CSC413 PRINCIPLES OF BUSINESS MANAGEMENT AND ENTREPRENEURSHIP Learning Outcomes: Examine nature of entrepreneurship and management. Discuss issues involved in developing businesses. Describe the process of starting business ventures. Discuss the problems faced by entrepreneurs. Content: Entrepreneurship and entrepreneur defined; The entrepreneur and society; Entrepreneurship and self-employment; The government and Entrepreneur-ship; Entrepreneurship
24

behaviours; Characteristics / qualities/traits of an entrepreneur; The entrepreneur (owner-manager) and the entrepreneur (employed manager) differences; Business ideas and opportunities: sources for business idea, enabling environment, public policies; Legal aspects of business; business formation; Sources of finance; Decision making and risks; Self-employment assessments; SMEs.. Pre-requisites: None. Delivery: Lectures, tutorials, case studies. CSC414 ICTs AND SOCIETY Learning Outcomes: Define information Distinguish the forces driving information society globally and in Kenya Describe various perspectives of ICT and of society Demonstrate basic understanding of ethics, ethical theories and ethical decision-making Identify ethical issues that arise in ICT development and implementation and determine how to address them Analyze the social impacts of ICT on society Discuss the impacts of ICTs on society Describe the policy, legal and institutional framework of e-government and the impacts of egovernment. Content: Introduction: Information, Information society and ICTs; ICT perspectives: Technical, Socio-technical, Social Informatics; Theories of society: Functionalism, Conflict, Interactionist, Structuration; ICTs and ethics: Principles of ethics, Introduction to ethical theories, Principles of ethical decision making, Ethical impacts of ICTs, Professional code of ethics; ICTs and legal issues: Confidentiality and privacy, Intellectual property, Copyright and software protection, Software piracy; Other social impacts of ICTs; ICTs and national development: Policy framework, Legal framework, Institutional framework, e-government planning and implementation. Prerequisites: CSC325 Management Information Systems. Delivery: Lectures, Case studies, Active research by learners, Group discussions and presentations. CSC416 COMPUTER SYSTEMS PROJECT Objectives: To demonstrate the consolidation and integration of the understanding of computer systems analysis and design. To tackle and successfully complete a computing problem of some complexity, and to gain experience in self-organization, project planning and control. To implement a system prototype during the project period, after which the student shall submit a project report in line with SCIs project requirements and guidelines. CSC421 INTRODUCTION TO LANGUAGE TECHNOLOGIES Learning Outcomes: Gain an understanding on the importance and role of language technologies in social computing. Understand key linguistic concepts. Explain the different application areas, technologies, tools and techniques applicable in language technology. Gain an in-depth grasp in one of the key LT areas. Content: Introduction: Basic linguistics - definitions, morphology, phonetics, phonology, syntax, semantics, pragmatics; knowledge in speech & language processing, ambiguity, language thought & understanding; Turing test; historical overview and state of the art; Language models & algorithms for NLP: Regular expressions, Finite State Techniques, Dynamic programming String
25

Edit distance, Context Free Grammars, Probability Theory, Information Theory, Nave Bayes, Hidden Markov Models, Viterbi; Language Resources: Corpora, MRDs, Grammars; Language analysis: Morphology pronunciation, spelling, N-grams; Syntax Context Free Grammars, Nonprobabilistic parsing, Probabilistic CFGs, parsing with PCFGs, Collocations and NP parsing; Semantics Lexical Semantics, WSD and clustering; Pragmatics; Speech processing (Elective I): sounds, phonetic transcription, phonological rules, pronunciation dictionaries, prosody; TTS architecture; ASR architecture; Text Processing (Elective II): Information Retrieval; Information Extraction; Question Answering; Machine Translation; Summarization; Unsupervised Language Discovery (Topic modelling). Pre-requisites: CSC121 Programming and Problem Solving, CSC124 Probability and Statistics, CSC215 Introduction to Artificial Intelligence, CSC222 Automata Theory, CSC312 Artificial Intelligence Programming, CSC323 Machine Learning. Delivery: Lectures, tutorials, group projects and supervised laboratories. CSC422 DESIGN THINKING Learning Outcomes: Demonstrate an understanding of differences in design thinking processes and approaches used by designers representing a variety of disciplinary backgrounds, design contexts and design roles. Show ability to recognize design situations and problems and articulate guiding principles applied in design situations and problems. Demonstrate ability to create and test design solutions for given design situations and problems. Show ability to establish and articulate a pattern for approaching design problems. Demonstrate ability to articulate design precedents in their own reper-toire (gambits). Content: What is Design/who is a Designer; The Design Process: Frameworks and Models; Design Situations and Principles; Creating and Testing Design Solutions from needs analysis; Design Conversations; Media Design; Interaction Design; Information Design; Spatial Design; Design Thinking. Pre-requisites: CSC313 Foundations of Human Computer Interaction. Delivery: Workshops with hands-on activities; Readings and Assignments; Activities that build skills and knowledge; Guest speakers and recorded interviews; Small group-based activities and projects based on real life experience. CSC423 WIRELESS NETWORKS AND MOBILE COMPUTING Learning Outcomes: Describe the lower layer issues in wireless communication systems. Discuss the principles of Mobile Computing and its enabling technologies, Provide a foundation to critically analyze state of the art wireless communication systems. Explain the problems and solutions introduced by wireless networks and mobile computing to traditional networking, operating systems, human-computer interface, architecture, and security. Content: Transmission fundamentals; Wireless Transmission Technologies: Radio signal transmission modes, radio frequency spectrum; Signal Propagation, encoding techniques, spread spectrum, coding and error control; Wireless Networking: Wireless PANs (Sensor Networks, Bluetooth, UWB), Wireless LANs (Wi-Fi, 802.11a to n), Wireless Local Loops and Free Space Optics, Cellular networks: from 1 to 5G Networks, Satellite communications; Mobile Ad Hoc and Sensor Networks; Platforms to Support Mobile Applications: Architecture of Mobile devices, Mobile IP, Wireless middleware (WAP, iMode, J2ME, BREW, MMIT); Mobile Applications: M-Business, MGovernment, M-Life, Positional Apps; Security, Integration, and Management Issues. Prerequisites: CSC123 Data Communications, CSC225 Computer Networks. Delivery: Lectures, Tutorials and Case studies.

26

CSC431 NETWORK MANAGEMENT Learning Outcomes: Describe network management and the network management architecture Explain the various functions of network management. Gain in-depth theoretical and practical knowledge of network management, and in particular of SNMP (Simple Network Management Protocol). Compare a number of variations of the network management architecture. Content: Network Management Standards and Models; Network Management Protocols: Abstract Syntax Notation One (ASN.1): Simple Network Management Protocol (SNMP), SNMPv2 and SNMPv3: Structure of Management Information (SMI): Management Information Base (MIB): Remote Monitoring (RMON): RMON 1 and 2; Network Management Tools and Systems; WebBased Management; Network Management Applications. Pre-requisites: CSC123 Data Communications CSC225 Computer Networks, CSC423 Wireless Networks and Mobile Computing. Delivery: Lectures, Tutorials and Case studies CSC432 SERVICE-ORIENTED COMPUTING Learning Outcomes: Understand the service oriented computing paradigm, a new emerging paradigm for distributed computing and applications. Understand the impact of service oriented computing on the design, architecture, delivery and consumption of distributed applications in heterogeneous environments. Understand the service oriented architecture and the standards and technologies for implementing service oriented architectures. Understand how to design, implement and publish autonomous, plat-form independent services. Understand how to design and implement flexible, dynamically com-posed and agile service oriented distributed applications that solve real life problems Understand the significant challenges and opportunities introduced by service oriented environments and requirements. Content: Introduction to service oriented computing paradigm; Service foundations: Serviceoriented Architecture; Realizing SOA with web services; Web services technologies: WSDL, SOAP, UDDI; Service composition; Service management and monitoring; Developing Web services based distributed applications; Introduction to service oriented computing applications in enterprise computing, grid computing and cloud computing. Pre-requisites: CSC315 Distributed Systems, CSC322 Network and Distributed Programming. Delivery: Lectures, Tutorials and Labs CSC433 MULTIMEDIA TECHNOLOGIES Learning Outcomes: For each of several media or multimedia standards, describe in non-technical language what the standard calls for, and explain how aspects of human perception might be sensitive to the limitations of that standard. Evaluate the potential of a computer system to host one of a range of possible multimedia applications, including an assessment of the requirements of multimedia systems on the underlying networking technology. Describe the characteristics of a computer system (including identification of support tools and appropriate standards) that has to host the implementation of one of a range of possible multimedia applications. Implement a multimedia application of modest size.
27

Content: Sound and audio, image and graphics, animation and video, Multimedia standards (audio, music, graphics, image, telephony, video, TV), Capacity planning and performance issues, Input and output devices (scanners, digital camera, touch-screens, voice-activated), MIDI keyboards, synthesizers, Storage standards (Magneto Optical disk, CD-ROM, DVD), Multimedia servers and file systems, Tools to support multimedia development. Pre-requisites: None , Delivery: Lectures CSC441 KNOWLEDGE ENGINEERING AND SOCIETY Learning Outcomes: Demonstrate a practical understanding of the role and importance of knowledge and intelligence in human society. Appreciate the issues arising from, and impact of Artificial Intelligence in society. Understand the forces driving the knowledge society, and to discuss the impacts of knowledge-based systems on society from a global perspective. Explain the relationship between knowledge engineering and national development. Demonstrate the ability to use knowledge engineering methodologies and tools. Content: Review of pre-requisite topics: Knowledge-based systems; Learning & Adaptive systems; Knowledge and Intelligence in Human Society: The Knowledge society, The Knowledge economy; Models of Human Intelligence: Cognition: Minds and brains; How the brain influences the way humans solve problems, Remembering and forgetting, Emotions, Use of Language. Cognitive theory; Implications for knowledge engineering; Artificial Intelligence: Machine intelligence. Comparisons with human intelligence. Implications for knowledge engineering; Impact of AI to Society: The potential for AI. Factors affecting successful realization of AI applications. Impact areas; Knowledge Engineering: Communication, Elicitation & Acquisition, Capture, Representation and Retention; Knowledge Applications; Thematic Issues: ICT Infrastructure, Skills & Learning, eGovernment (Democracy & Governance), e-Inclusion, Enterprise Development; Legal & Regulatory Issues; Ethical Issues; Digital Culture. Pre-requisites: CSC412 Knowledge-based Systems, CSC323 Machine Learning, CSC414 ICTs and Society. Delivery: Lectures, Seminars, Case Studies, Group Presentations, Guest Lectures. CSC442 KNOWLEDGE DISCOVERY AND DATA MINING Learning Outcomes: Define knowledge discovery and data mining terminology. Describe the use and applications of data mining. Explain the data mining tasks, the KDD process, domain information, data visualization and the issues and challenges. Apply different data mining algorithms on data. Interpret data mining results. Analyze data mining results. Explain different data mining applications. Assess different data mining applications. Content: Overview of KDD and Data mining: data mining, KDD process; KDD and related fields; Pre-processing Data: Data Quality, Data Transformation, Missing Data, Data Reduction; Data mining tasks: classification, clustering, etc; Data Mining with different algorithms: decision trees, artificial neural networks, instance based learning, etc; Data warehousing: data warehouses, data marts; Data visualization: cubes, sparse matrices; Evaluation and Use of Discovered Knowledge: Error calculations, domain information; Data mining applications. Pre-requisites: CSC122 Database Systems, CSC323 Machine Learning. CSC412 Knowledge-based Systems. Delivery: Lectures, Tutorials, Case studies, Lab exercises and assignments using data mining software.

28

CSC443 ADVANCED LANGUAGE TECHNOLOGIES Learning Outcomes: To gain an in-depth understanding in LT tools and techniques. To gain practical competence in an LT application area. Content: Overview of key techniques for major LT areas; Overview of tools and plat-forms for LT. Building LT resources Corpora, MRDs, Grammars; History, Computational Approaches, tools and techniques, challenges, State-of-the art, application areas for specific LT area: Machine Translation; Information Ex-traction; Information Retrieval; Summarization; Topic Modelling; Spelling; Automatic Speech Recognition; Text to Speech Synthesis; Project: A substantial LT application development in either Machine Translation, Information Extraction, Information Retrieval, Summarization, Topic modelling, Spelling, Automatic Speech Recognition, Text To Speech synthesis. Pre-requisites: CSC421 Introduction to Language Technologies, CSC323 Machine Learning. Delivery: Lectures, Supervised Labs, Project. CSC444 MULTI-AGENT SYSTEMS Learning Outcomes: Discuss the basics of Game Theory Explain the concept of an agent and its difference from objects; Describe the features of applications that lend themselves to agent-based solutions; Discuss the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents; Describe the issues and approaches to high-level communication in multi-agent systems; Design societies of agents that can effectively cooperate in order to solve problems. Content: The notion of Game Theory; Games in Normal Form; Games in Extensive Form; Nash Equilibrium and its computation for normal forms; Perfect and imperfect Information for extensive forms. Social choice and the notion of mechanism design; auctions. The notion of agents, comparing agents with objects, expert systems and distributed systems; application areas for agents. Designing intelligent agents: reasoning agents; reactive agents; hybrid agents. Multi-Agent Systems: notion; ontologies; interactions- speech acts; KQML/KIF; FIPA framework; cooperation; resource allocation and auction types. Pre-requisites: CSC113 Discrete Mathematics, CSC121 Programming and Problem Solving, CSC215 Introduction to Artificial Intelligence, CSC222 Automata Theory, CSC323 Machine Learning. Delivery: Lectures, demonstrations, tutorials, projects. CSC451 DISTRIBUTED DATABASES Learning Outcomes: Explain the techniques used for data fragmentation, replication, and allocation during the distributed database design process. Evaluate simple strategies for executing a distributed query to select the strategy that minimizes the amount of data transfer. Explain how the two-phase commit protocol is used to deal with committing a transaction that accesses databases stored on multiple nodes. Describe distributed concurrency control based on the distinguished copy techniques and the voting methods. Content: Introduction to distributed database management, Distribution architectures, Distribution design, Distributed query processing and optimization, Replication/Fragmentation, Distributed concurrency control, Distributed re-liability protocols, New distribution architectures, Multi-database systems, Pervasive and mobile distributed database management, Distributed Data-base Recovery, Distributed Data Security, Web data management, Interoperability and componentization. Pre-requisites: CSC315 Distributed Systems. Delivery: Lectures.
29

CSC452 INFORMATION SYSTEMS CONTROL AND AUDIT Learning Outcomes: Demonstrate a detailed understanding of the fundamental issues involved in and the potential pitfalls of the development, installation, operation, and maintenance of information systems. Acquire in-depth understanding of relevant issues of IS audit and its importance in different systems. Understand IS audit training, working, accreditation, and IS audit professional bodies. Apply the acquired knowledge to secure and protect the information assets of an organization. Content: Computer crime and abuse. Legal and ethical issues. Risk Management. Audit Controls: network controls, database controls, physical controls. Frameworks for information system controls. Pre-requisites: None. Delivery: Lectures, cases, seminars by the professional bodies. CSC453 SOCIAL NETWORK COMPUTING Learning Outcomes: Define social network computing terminology. Describe the use and applications of social network computing. Explain the social relationships, diffusion, propagation, information flow and sharing and the inherent issues. Appraise the technology used for social media. Analyze social network data. Explain different social network applications. Assess different social network applications. Content: Social relationships and networks; Personal networks: forms of sociability, relations, social circles and community; Social media; Technologies: web 2.0, etc; Basic Graph Theory, representation; Dynamics: models of propagating and influence innovations, network impact on diffusion; Social network analysis: social network data, analysis methods; Learning in social networks; Applications. Pre-requisites: CSC217 Web Programming and Applications. Delivery: Lectures, Case studies, Laboratory. CSC454 STRATEGIC INFORMATION SYSTEMS Learning Outcomes: To develop an understanding of information technology (IT) as a strate-gic resource for an Enterprise. To develop an understanding of the nature of business in competitive markets. To show how information systems (IS) strategies can be developed to enable IT to contribute to the strategic growth and provide competitive advantage for an enterprise. To inculcate a range of generic skills that are relevant to the strategic management of information systems and technology. Content: Introduction to SISM; Strategic IS and planning; IS evaluation methods; Using Strategic information from organizational systems: approaches and tools; Developments in IT and business; Contemporary IS strategic is-sues; The technical versus social debate in IS and corporate strategy; The integrated nature of corporate strategy and information systems as a basis for IS strategic management. Pre-requisites: CSC325 Management Information Systems. Delivery: Lectures, Case studies, Active research by learners, Group discussions and presentations. CSC461 PERFORMANCE MODELLING Learning Outcomes: To appreciate the concepts, principles, methods, techniques and tools of computer & network systems performance evaluation.
30

To demonstrate the application of the above to problems in computer architecture, network protocols and applications. To understand and analyze network management concepts and tools. Content: Introduction to performance analysis. Overview of analytic models. Application of queuing theory for performance analysis: overview of probability and stochastic processes, the exponential and Poisson distributions; Queuing theory fundamental results; Analysis of multi-server queues, open networks, closed networks, Mean-value analysis, multi-class networks. concept of selfsimilarity and self-similar data traffic. Simulation modeling: Techniques; simulator architecture; workloads generation. Performance measurement: Basic principles and considerations, measurement tools, benchmarking and standard bench marks. Analysis case studies. Prerequisites: CSC124 Probability and Statistics, CSC213 Computer Architecture CSC225 Computer Networks. Delivery: Lectures, Case studies and Labs. CSC462 ADVANCED COMPUTER ARCHITECTURE Learning Outcomes: To be able to describe the various architectural concepts that may be applied to optimize and enhance the classical Von Neumann architecture into high performance computing hardware systems. To be able to describe the design issues relating to the architectural options. To be able to describe the challenges faced in the implementation of these high performance system. To Be able to identify, assess contemporary practical examples and con-temporary application areas. Content: Limitations of the classical Von Neumann model; Parallel Processing: overview and basic concepts; Memory subsystem for parallel architectures; Principles of pipelining and pipeline design; Vector Processing System Architecture; instruction level parallelism including Super-scalar and VLIW architectures; multi-core architectures; data parallel including array Processor architectures; MIMD Architectures: Shared memory systems and Distributed memory systems; Interconnection structures for Shared memory and for Distributed memory systems. Pre-requisites: CSC213 Computer Architecture. Delivery: Lectures, Case Studies. CSC463 EMBEDDED SYSTEMS Learning Outcomes: Describe the instruction set architecture and the external interface architecture of microprocessors. Analyze, design and implement hardware interfaces between the micro-processor and controllers & instrumentation devices. Design and code programs that interact with controllers and instrumentation devices, both digital and analogue. Describe contemporary applications of embedded systems. Conceive, specify and design innovative applications based on embedded systems. Content: Generic processor programming & interfacing model; Microprocessor programming model: basic internal architecture, instruction execution model, instruction set overview including addressing modes, memory models, I/O model. Microprocessor interface model. Case study of a selected processor e.g. Intel 80X86; Programming model, instruction set architecture, assembly language programming. Interfacing concepts. Polling and interrupt based models. Design and programming or simple data acquisition and control systems. Applications; Monitoring & control, data acquisition, mobile devices, RFID technology, access control & surveillance systems, etc. Prerequisites: CSC121 Programming and Problem Solving, CSC213 Computer Architecture, CSC216 Assembly Language Programming. Delivery: Lectures, Laboratory Practicals.

31

CSC471 INTERACTION DESIGN FOR COLLABORATION AND COMMUNICATION Learning Outcomes: Be able to demonstrate appreciation of the issues related to the design of products supporting group interaction. Be able to develop a simple groupware to demonstrate their knowledge of the concepts and techniques of interaction design for group communication and collaboration. Content: Introduction to communication and collaboration and mechanisms people use to communicate and collaborate; common application for collaborative software; Groupware to support specialized tasks such as document preparation, multi-player games; Asynchronous group communication techniques; Synchronous group communication techniques; Online communities and multi-user virtual environments; modeling groups of users; Software characters and intelligent agents, virtual worlds and avatars; Introduction to social psychology, social networking and social Computing for groupware; Collaborative usability techniques. Pre-requisites: CSC324 Usercentred Development and Evaluation. Delivery: Lectures, Group Discussions and Tutorials, Design case. CSC481 COMPUTER GAMES PROGRAMMING Learning Outcomes: Appreciate developments in the computer games industry. Understand modern computer game design and implementation techniques. Understand components essential to or common in popular computer game styles. Learn the games development tools. Undertake game applications development. Content: Game Types, platforms, audience demographics; game structure, game flow, and the role of choice in generating an entertaining interactive experience; Conceptualization and design documentation, interface design, play mechanics, platform modifications, and performance testing; programming teams and processes, game programming software including C++ and Java, DirectX, OpenGl; rigid body simulations, and particle systems; collision detection and collision resolution; Graphic design, color theory, and user interfaces; 3D modeling, 3D environments; Rendering Nature; Rendering Skies Terrain Rendering, Terrain Texturing , Glow, Reflections, Shadows, lighting audio design ; Animation: physical motion, animation playback, animation blending, motion extraction, mesh deformations; Artificial intelligence: game agents, finite state machines, path finding algorithms; Audio programming; Networked Games; Multiplayer programming. Prerequisites: CSC121 Programming and problem solving CSC125 Linear Algebra, CSC211 Data structures and algorithms, CSC215 Introduction to Artificial Intelligence CSC314 Computer Graphics. Delivery: Lectures, Tutorials and Labs.

32

APPENDIX A
Knowledge Area Discrete Structures (DS) Knowledge Area Objectives Acquire foundational knowledge for computer science Learn how to use at least one programming language well; Become competent in languages that make use of object-oriented & event-driven programming paradigms Able to design good algorithms, independent of implementation environment Understand the different styles of programming promoted by different languages Apply theory, knowledge and practice for effectively and efficiently building software systems that satisfy the requirements of users & customers Acquire understanding of a computer systems functional components, their characteristics, their performance and their interactions Foundation Courses Discrete mathematics Differential & integral calculus Linear Algebra Probability & Statistics Introduction to computer systems Introduction to programming Programming and Problem solving Mainstream Courses Specialist Courses

Programming Fundamentals (PF)

Data Structures

Algorithms and Complexity (AL) Programming Languages (PL)

Automata Theory

Analysis and Design of Algorithms Object Oriented Programming Compiler Construction

Software Engineering (SE)

Programming and Problem Solving

Object Oriented Analysis and Design Software Engineering

Computer Architecture and Organization (AR)

Introduction to Computer Systems Digital Electronics Discrete Mathematics Introduction to Programming Differential & Integral Calculus Linear Algebra Probability & Statistics Physics for computing systems Data Structures and Algorithms

Computer Architecture Operating Systems Assembly Language Programming Computer Systems and Networking lab

Embedded Systems Performance Modelling Advanced Computer Architecture

33

Net-centric Systems (NC)

Master computer network concepts and protocols, multi-media systems, web standards & technologies, network security, wireless and mobile computing and distributed systems; Gain hands-on experimentation and analysis in data collection & synthesis, empirical modeling, protocol analysis at source code level, network packet monitoring, software construction and evaluation of alternative design models Knowledge Area Objectives Acquire knowledge on computer graphics, visualization, virtual reality and computer vision Acquire knowledge on construction of usable interfaces and testing their Usability

Introduction to Computer Systems Discrete Mathematics Differential & Integral Calculus Introduction to Programming Linear Algebra Probability & Statistics Physics for computing systems Data Structures and Algorithms

Data communications Computer Networks Distributed Systems Web Programming and Applications Computer systems & Networking lab Computer Network Security Wireless Networks and Mobile Computing

Service Oriented Computing Network Management Multimedia Technologies

Knowledge Area Graphics and Visual Computing (GV)

Foundation Courses

Mainstream Courses Computer Graphics

Specialist Courses Computer Games Programming

Human Computer Interaction (HC)

Intelligent Systems (IS)

Acquire capabilities in the design and analysis of autonomous agents Able to use a set of tools for solving problems that are

Introduction to Computer systems Introduction to programming Discrete Mathematics Differential & Integral Calculus Linear Algebra Probability & statistics Data Structures and Algorithms Introduction to Computer Systems Introduction to Programming Discrete Mathematics Differential & Integral Calculus Linear Algebra Probability &
34

Foundations of HCI User centered Development & Evaluation Design Thinking

Interaction Design for Collaboration Development & & Communication

Introduction to AI AI programming Machine Learning Introduction to Language Technologies Knowledge Based Systems

Advanced Language Technologies Knowledge Engineering and Society Knowledge Discovery and Data Mining Multi-agent Systems

difficult to solve with other methods.

Statistics Data Structures & and Algorithms Automata Theory

Information Management (IM) or Information Systems

Able to develop conceptual and physical data models and select appropriate IM models and techniques Acquire organizational, business management and entrepreneurial skills

Introduction to Computer Systems Introduction to Programming Database Systems Data Structures and Algorithms

Projects

Information Systems Analysis and Design Introduction to Organizations and Management Management Information Systems ICTs and Society Principles of Business Management & Entrepreneurship ICT project Management

Information Systems Control and Audit Social Network Computing Distributed Databases Strategic Information Systems

Social and Professional Issues (SP) or General Knowledge

Understand the social and professional context in which computing is done Develop an allrounded graduate

Communication skills Economics Health studies Introduction to Organizations and Management ICTs and society

Year II programming project Industrial Attachment Year IV Programming Project Introduction to Research Methods

35

También podría gustarte