You are on page 1of 8

BACHELOR OF COMPUTER SCIENCE PROGRAMME COURSE SYNOPSIS

KULLIYYAH REQUIRED COURSES: No Course Title Course Code

1 Introduction to Computer Organization CSC1401 This course describes what a computer system is theoretically. It covers the organizational and architectural aspects of computer, together with the structure and function of each component. The discussion includes the nature and characteristics of modern day computers, hardware and software aspects, and performance matters. 2 Mathematics for Computing CSC1701 Programming is a mathematical activity. This subject is essentially a mathematical course meant specifically for students of computing and software engineering. The subject covers a specific area of discrete mathematics, which encompasses logic, set theory, relations, graph theory, etc. The course will highlight a variety of topics such as mathematical induction, inductive hypothesis, mathematical logic (equivalence, implications, modus ponens, tautologies etc.), mathematical proofs, relations, functions, mappings, graphs, and abstract algebra (binary operations, commutative and associative operations, etc.). The knowledge gained from this course is meant to serve as a sound basis in understanding the fundamental concepts in programming, typically used in algorithm development and subsequently, in building information systems. 3 Structured Programming Language CSC1101 This course emphasizes the fundamentals of structured programming using C++. In the meantime, the students will learn the techniques, architectural, design issues and basic of fundamental about class and object. This course is useful in upper-level courses and in an industry as the student begins to work with large, complex real-world system. C++ is actually an effective language for performing good software engineering. Furthermore, the C++ language course is intended for those students that will become programmers and plan to use C++ for either system or application programming and also to help them to be familiar with software development process. Software development is a complex and expensive activity. Therefore, it is important to teach student to write clear, more maintainable and understandable program for their first programming course. 4 Computer Networking CSC2201 The purpose of this course is to provide students with an understanding of key technical issues in the effective development and use of computer networking and telecommunications. It will involve a thorough analysis of the basic concepts of networking and telecommunication technologies, issues related to the operational and strategic use of the technology.

DEPARTMENT REQUIRED COURSES: No Course Title Course Code

1 Data Structures and Algorithms CSC2101 This course describes principles of data structures - Methods of organizing large amounts of data in computer memory. The course also presents different types of algorithms that can be used for data manipulation. The course also provides algorithm analysis skills needed to develop programs with the adequate level of efficiency. The rationale is to teach students to analyze any algorithm before it is actually coded. Students are expected to have intermediate knowledge about structured programming. This is needed for the coding of different types of data structures and algorithms taught. 2 Calculus CSC2701 Students will be exposed to calculus methods so that they will be able to solve real-life problems, and be able to apply them to solve problems arise in different scientific and engineering discipline. 3 Numerical Computations CSC2702 Each topic implies a discussion of the related algorithm, related theory, advantages, and pitfalls associated with the method. Programming assignments in Java or any other high level language (MATLAB, C++, etc.) should be given to illustrate the solution of realistic problems. Some elementary topics should be treated in theoretical manner as an introduction. 4 Java Programming CSC2102 The course is designed to be theoretical and laboratory based. It will apply J2SE technology mainly JDK 1.4.2 and above. The course covered modules on introduction to Object Oriented Programming (OOP), decision constructs, objects and classes, arrays, methods, inheritance, encapsulations, abstractions and Graphical User Interface (GUI). Students will apply all the theories into practice thru a group project. 5 IT Security I CSC2601 This course provides overview of the major topics in IT Security based on 10 major domains of Common Body of Knowledge (CBK) defined by the International Information Systems Security Certifications Consortium. All domains in information security will be explained in brief. 6 Operating Systems CSC3401 Operating System is the basic software, which makes the resources of the computer available to the user. A general-purpose computer can be of no use if it does not have an operating system. Operating System provide the first layer of software, which provides the basis for all other software working on a computer. This makes the knowledge of Operating System essential for IT professionals. There has been recently a lot of development in the operating system like UNIX, Windows family and LINUX. IT professionals need to be aware of the latest developments and the facilities provided by these operating systems.

7 Software Engineering CSC3501 Software technologies have been advancing tremendously and becoming dominant in this new century. Students have to be made aware of the modern methods used in these technologies especially in the field of software engineering. This course emphasizes on the fundamentals of software specification such as planning, formal specification, program development methodology, program testing, evaluation, maintenance and costing. In addition, this course will expose the students to the nature of software engineering approach, practice and disciplines and help them better understand the methods being used as well. 8 Algorithms Analysis and Design CSC3502 This course introduces basic elements of the design and analysis of computer algorithms. Topics include asymptotic notations and analyses, parallel sorting networks, divided and conquer greedy methods and matroids, dynamic programming, basic graph algorithms, NP-completeness, approximation algorithms, and network flows analysis. For each topic, beside in-depth coverage, one or more representative problems and their algorithms shall be discussed. In addition to the design and analysis of algorithms, students are expected to gain substantial discrete mathematics problem solving skills essential for computer engineers. 9 Principles of Artificial Intelligence CSC3301 In this course an attempt will be made to introduce students to the basic concepts of Artificial Intelligence and the major areas of applications of AI. To achieve further involvement in the field of AI, students will be introduced to logic programming in PROLOG and will be given assignments to develop small application of AI. At the end of the course students will be able to identify the potential areas of application of AI in the real world and confidently engage in developing a solution based on AI. 10 Computer Architecture and Assembly Language CSC3402 Basic architecture of computer systems including fundamental concepts such as register structure, memory organization of peripherals, and machine-level operations. These concepts are integrated through the use of basic digital circuit, logic gates, assemblers, linkers and loaders. Topics covered include: instruction sets, symbolic addressing, bus organization, instruction fetch and execution, read/write cycles, interrupt processing, I/O processing, general microprocessor. 11 Network and System Administration CSC4201 As the deployment of Linux systems in production environments has accelerated, Linux administrators are much in demand in Government departments as well as in industry where the Government is pushing for implementation of open source software. Therefore, computer science students are expected to be confident with UNIX/Linux platform. They are expected to know the administration and as well as internals of the operating system to run and administer this operating system in production environment. UNIX and

Linux are being from the same family the commands are 90% similar or same. If a student can master Linux commands he/she has learned UNIX command for AIX, HP-UX, Solaris, and Silicon Graphics IRIX and so on. Linux is a cheap platform to learn and experiment with operating systems, system administration, and device drivers. The students will be exposed to the esoteric and subtle differences between different variant of Unices. 12 Industrial Attachment CSC4901 It is compulsory to all Computer Science students in order for them to complete their Bachelor of Computer Science (BCS) program. It gives opportunity to the students to integrate relative practical experience with theories. Students will be able to apply skills and theoretical concepts learned. Students also will be given opportunity to relate academic program and career goals to pre-professional work experience thus giving them and insight into their chosen career. 13 Final Year Project CSC4902 The Final Year Project offers student an opportunity to undertake an individual or group work (pair) which student would find both challenging and interesting. Student will be allocated a supervisor who will offer guidance and whom student will meet on a weekly basis. The choice of topic is on students own responsibility, but the respective supervisor will advise on its feasibility and suitability. Student will initially be required to submit a project proposal, two interim reports and upon completion of the project, to produce a thesis/report of approximately 10,000 words in length. Student will be assessed on the management of the project, the methodology, the intellectual quality and originality of the work, and the structure and coherence of the report. The Final Year Project plays an important role in ensuring your enrollment in the job market. Normally, in all interviews, the interviewers will be interested to know more about the Final Year Project.

DEPARTMENT ELECTIVE COURSES (12 CREDIT HOURS): CONCENTRATION 1: NETWORKS AND COMMUNICATIONS No Course Title Course Code

1 Advanced Networks CSC 4202 This course builds on the fundamental concepts in networking of CSC 2202. Using a more comprehensive approach, the nature and relationship of distributed applications (using the Internet as a focal point of study) and communication networks are discussed. Issues pertaining to more advanced topics such as multimedia networks, network management and security will be explored within the context of the Internet. 2 Wireless Communication and Network CSC 4204 Wireless technology has become the most exciting area in telecommunications and networking. The rapid growth of mobile telephone use, various satellite services, and now the wireless Internet are generating tremendous changes in telecommunications and networking.

It is apparent, even to the most casual observer, that a veritable revolution in telecommunications has taken place within recent years. The use of wireless communications has expanded dramatically worldwide. Cell phones are ubiquitous. Although most such mobile terminals still carry voice principally, more and more users are sending and receiving data and image applications. The potential of technology is limitless and it is already changing the way people communicate. 3 Network Programming CSC 4205 This course is an elective advanced level course in computer science intended for students specializing in Networks and Communication. It is designed to introduce advanced concepts of programming and applications of UNIX/Linux-based computing environment. Students will learn the major protocols used in making the programs communicate with each other. These important protocols are TCP and UDP. As part of this course, students will also have to complete several programming assignments involving the Interprocess Communication (IPC) and networking concepts. CONCENTRATION 2: ARTIFICIAL INTELLIGENCE No Course Title Course Code

1 Artificial Neural Networks CSC 4302 The course introduces the theory and practice of neural computation. It offers the principles of neurocomputing with artificial neural networks widely used for addressing real-world problems such as classification, regression, pattern recognition, data mining, time-series prediction, etc.. Two main topics are covered: supervised and unsupervised learning. Supervised learning is studied using linear perceptrons, and non-linear models such as probabilistic neural networks, multilayer perceptrons, and radial-basis function networks. Unsupervised learning is studied using Kohonen networks. Recurrent networks of the Hopfield type are briefly covered. There are offered contemporary training techniques for all these neural networks. Knowledge and tools for the specification, design, and practical implementation of neural networks are also provided. 2 AI Programming CSC 4305 To be able to write AI programmes such as blocks-world problem programme that is aimed to make the simulated robot arm to move blocks around a screen, is essential after learning what AI is all about theoretically. This simulated robot arm programme is organized explicitly around goals, because when it can do procedures for grasping, clearing, getting rid of, moving and ungrasping, they means that human goals are achieved. Therefore, this is what important in AI programming, to ensure that human goals are achieved because it means that the program can do what human wants it to be able to do. The best way to learn, read and writing goal-oriented programming is by Prolog programming language (Prolog stands for Programming in Logic). This course is designed to be practical oriented and laboratory based. Students will learn the theoretical foundation in class session and will be able to do the hands-on in laboratory session.

3 Expert Systems CSC 4306 The course is designed to introduce the concepts of expert systems and to distinguish between expert systems and conventional systems. Theoretical foundation is discussed during the class sessions. For the development tools, this course will introduce expert systems development tool (ie; CLIPS). CLIPS will be used to enhance understanding the concepts and theory in expert systems. The course will emphasize on comprehending the decision making techniques employed in an expert system. Students will also be given an opportunity to implement the Expert System Development Life Cycle (ESDLC) when developing their own expert system during group project. CONCENTRATION 3: SYSTEMS SOFTWARE No Course Title Course Code

1 Advanced Operating Systems CSC 4401 Operating systems have evolved substantially over the past two decades, and there is a need to explain major developments and changes in this dynamic field. Advanced Concepts in Operating Systems lays down all the concepts and mechanisms involved in the design of advanced operating systems. The discussion is reinforced by examples and cases. This course will also cover influential historical systems, important current efforts, and extracting lessons both on how to build operating systems as well as how to evaluate them. 2 Embedded Systems CSC 4405 Increasing integration of communications, multimedia and processing and relentless digitization of data (including RF data) continues to expand the scope and complexities of embedded systems. To appreciate these advances, and to productively contribute to future advances of these systems, a critical appreciation of the underlying technology must be explored. This course explores the complexity in embedded operating systems, embedded devices and its peripheral for a better understanding in embedded technology. 3 Compiler Design The course emphasize on both concept; Compiler Design Automata and Language Theory CSC 4406

In compiler design, the lecturer will teach students about comprehensive and modern approach to the design, construction of compliers, compilation of imperative functional, logic and object oriented languages. Otherwise, Automata and Language course the students will study the types of finite automata, with their applications, regular expressions with their properties. The course will also introduce the context-free grammars, Parse Trees, Applications and Ambiguity. Some parts of this course will involve programming exercises, C, C++ and Java are recommended. In the meantime, the students will benefit from its theoretical concepts and practical techniques for implementing modern

languages paradigms and train students to be a good software developer. CONCENTRATION 4: SOFTWARE ENGINEERING No Course Title Course Code

1 Software Quality Assurance CSC 4501 Students will be exposed to the essential features involved in developing timely cost-effective and quality software products that meets the users, steak holders and users requirements. Students will examine the effective deployment of quality assurance procedure throughout the entire software development process. Core content of this course covers : Total Quality Management (TQM) Developments of SQA Plans Implementation of Verification and Validation Functions Selection of Tools to Support SQA ISO Certification Process 2 Software Metrics and Models CSC 4503 Software development is not an easy job due to its direct and strong relations to human lives and properties. Software should be of very high quality. To make sure of that, ways and techniques (i.e., Metrics and Models) are required to assess (Measure) S/W quality. The students must learn that the s/w quality measurements are NOT open-ended form. And there are no straightforward answers available in the current literature. Software quality cannot be measured directly, but we need to measure it indirectly, through the measurement of software indicators of quality. Hence, this unit is designed to provide the students with the necessary knowledge to deal with software quality issues and to learn how to use and improve current Metrics and Models. This will be done through theoretical and practical training and learning. 3 Requirements Engineering CSC 4504 The focus of software engineering is moving from writing reliable large scale software to ensuring that this software meets the need of the user for whom it is designed. In order to fulfill this objective, greater attention has to be paid to the process of user requirements elicitation. Requirements Engineering (RE) aims to facilitate this task through the adherence to sound RE principles in the form of tools, techniques and methods to capture and verify systems requirements.

CONCENTRATION 5: COMPUTER SECURITY No Course Title Course Code

1 IT Security II CSC 3602 This course will build upon the foundation that the students have grasped from the previous security course.

Student will learn and gain experience in applying defense in depth security mechanisms applied at the network parameter such as firewalls, intrusions detection systems, virtual private network (VPN), and other security monitoring tools. In addition, in order to ensure that the defensive mechanism have been applied correctly, students will be introduced to techniques for conducting network penetration testing for the wired and wireless infrastructure. 2 Cryptography CSC 3604 Cryptography is the science of information security. Cryptography is closely related to the disciplines of cryptology and cryptanalysis. This course provides an overview of the principles involved in Cryptography and the techniques of Cryptography. Students will be exposed to methods for securing information through encryption, key generation and management, digital signatures, authentication, message digest formation, and certified authorities for trusted public keys, amongst others. 3 Computer Forensic CSC 4601 Forensic Computing, Digital Forensics, or Computer Forensics is the name for a newly emerging field of study and practice that incorporates many areas of expertise. Some of these areas have been called network security, intrusion detection, incident response, infrastructure protection, disaster recovery, continuity planning, software engineering, cybersecurity, and computer crime investigation. It is an area of practice in public law enforcement at the federal and state level that deals with cybercrime, cybervandalism, cyberpredators, and cyberterrorism. In the private sector, it deals with critical infrastructure, such as business, hospitals, utilities, transportation, finance, education, and other key institutions. Students will be given opportunity to use a few computer forensics tools in the class. The course begins with guides to computer forensics investigation and end with computer crimes topics.

** Prepared by R.H on 18th Jan 2007 **