DEPARTMENT OF COMPUTER SCIENCE AT UNIVERSITY OF GHANA

DEPARTMENT OF COMPUTER SCIENCE AT UNIVERSITY OF GHANA

COURSE DESCRIPTIONS
CSCD 101 Introduction to Computer Science I 3 CREDITS
An introduction to computers and how they work. Types and Historical Development of
Computers. Number systems: binary, octal, hexadecimal, integer and fractional representations,
Signed and Unsigned numbers, 1’s complement, 2’s complement and Arithmetic Overflows.
Integer and floating point arithmetic (IEEE standard 754 Floating point Formats). Data
Representation and Manipulation: Bits, bytes and words: Logic operations and Logic gates
applications. The Central Processor: its main elements and their functions. Machine organization:
ALU, registers, main memory, fetch/decode/execute cycle, machine language design and usage,
Input/Output devices. The concept of a Computer Program: the use of algorithms and flowcharts.
CSCD 102 Introduction to Computer Science II 3 CREDITS
This course is to introduce the students to fundamental programming concepts. It will focus on an
ability to use procedural programming language concepts including input/output, simple data
types, expressions, control structures – selection and loop constructs, Boolean logic, and
procedures. Revision of algorithms and flowcharts and interpretation of simple pseudo codes.
Programming languages, Compilers and interpreters. Computer Networks: The Internet and
TCP/IP protocols. Practical applications of switching theory: logic elements, Boolean algebra
and Number systems; Laboratory work on basic discrete and peripheral components of a
computer system. Identifying and selecting the various hardware components like the hard disk,
motherboard, memories, etc. for a computer system. General overview of system software,
programming languages and application software (the use of computers for data processing
and generating information). Operating system – importance, characteristics and types.
CSCD 201 Information Systems (IS) 3 CREDITS
Differentiating IS from Related Disciplines; Types of information systems: Transaction
processing, Systems (TPS), Management Information Systems (MIS), Executive Information
Systems (EIS), Decision Support Systems (DSS), Expert Systems (ES), etc Information
systems development; Foundations of Information Systems in Business, Competing with
Information Technology, Computer Hardware, Computer Software; Data Resource Management;
Telecommunications and Networks; Electronic Business systems; Electronic Commerce Systems;
Decision Support Systems.
CSCD 202 Programming II (with Java) 3 CREDITS
This course teaches the fundamental ideas behind the object-oriented approach to programming
through the widely-used Java programming language. Concentrating on aspects of Java that best
demonstrate object-oriented principles and good practice, students will gain solid basis for further
study of the Java language, and other object-oriented software development. Students will be able
to grasp concepts of problem-solving and programming. Control statements, methods, and arrays
before learning to create classes. Introduction to graphical user interface, exception handling, I/O,
and data structures.
CSCD 205 Programming I (with C ++) 3 CREDITS
This course will provide in-depth study of software design and implementation using a modern,
object-oriented language with support for graphical user interfaces and complex data structures.
Topics covered will be specifications, design patterns, and abstraction techniques, including
typing, access control, inheritance, and polymorphism. Students will learn the proper engineering
use of techniques such as information hiding, classes, objects, inheritance, exception handling,
event-based systems, and concurrency. Students will use C++ to implement the basic concepts in
object-oriented programming (OOP). Topics include: the OOP programming paradigm including
analysis and design; a survey of related languages; data hiding and encapsulation; inheritance; and
polymorphism.
CSCD 207 Numerical Methods 3 CREDITS
This course will study iterative methods for solving nonlinear equations; direct and iterative
methods for solving linear systems; approximations of functions, derivatives, and integrals; error
analysis. The course will take students through solving numerical algebraic and transcendental
equations, bisection methods, false position method, Newton Raphson method, Successive
approximation method, Simultaneous linear algebraic equations, Gauss elimination method,
Jacobi method, Pivotal condensation, Gauss seidal, Gauss Jordan, Eigen Values and Eigen
Vectors, Numerical differentiation, Newton’s forward and Backward difference formulae.
Integration, Trapezoidal rule, simpson’s one third rule, Newton’s three eighth rule. Solutions of
differential equations, Tailor’s series, Euler’s series, Euler’s methods, predictor, corrector method,
runge-Kutta method.
CSCD 211 Computer Organization and Architecture 3 CREDITS
This course will study topics such as : Computer system specification ; Performance issues ;
Instruction set selection ; ALU design ; Architecture design ; Data path selection ; Control systems
; Single and multiple clocks Pipelines ; Memory hierarchy ; I/O architectures. Digital logic:
transistors, gates, and combinatorial circuits; clocks; registers and register banks; arithmetic-logic
units; data representation: big-endian and little-endian integers; ones and twos complement
arithmetic; signed and unsigned values; Von-Neumann architecture and bottleneck; instruction
sets.
CSCD 212 Computer Ethics 1 CREDITS
This course will study legal, social, and ethical issues surrounding software development and
computer use. Professional conduct, social responsibility and rigorous standards for software
testing and reliability will be stressed. Issues such as liability, intellectual property rights, security
and crime will be examined in the context of computer use. Students are expected to be able to
conduct research on the Internet.
CSCD 214 Digital Electronics 3 CREDITS
This course exposes students to basic analogue and digital electronics as related to hardware.
Topic covered include: Electric field and potential; capacitors and Dielectrics; Newton Theorems:
Kirchhoff’s laws, Superposition, Thevenin’s, Norton’s and reciprocity theorems, Delta-star and
star-delta transformations; magnetic induction: Ampere’s law, Boit-Savart law, self and mutual
inductance, electronic oscillation; alternating currents; Power and resonance in ac circuits.
Boolean Algebra and logic gates, simplification of logic functions, Truth Tables; Karnaugh
graphs, DeMorgan’s rules; synchronous flip flops: D, T and JK flip flops; asynchronous state
machines in terms of RS flip flops; characteristics of diodes, NMOS and PMOS field effect
transistors; structure and use of programmable logic arrays (PLAs) etc
CSCD 216 Data Structures & Algorithms 3 CREDITS
This course will study the analysis of algorithms and the effects of data structures on them.
Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms,
backtracking, divide- and-conquer, and dynamic programming. Data structures include heaps and
search, splay, and spanning trees. Analysis techniques include asymptotic worst case, expected
time, amortized analysis, and reductions between problems. Include Generic types , Linked lists ,
Stacks and queues , Binary trees, Balanced binary trees , Multi-way trees , B-trees and B+-trees,
File organization , Searching and sorting , Hashing . Running time analysis of algorithms and their
implementations, one-dimensional data structures, trees, heaps, additional sorting algorithms,
binary search trees, hash tables, graphs, directed graphs, weighted graph algorithms, additional
topics.
CSCD 218 Data Communication & Networking I 3 CREDITS
This course will focus on the field of data communications and the basic concept in networking. It
includes fundamentals of data and signals, analog signal digital signal, the media; conducted. The
basic modem operating principles, Bandwidth limitations, and alternatives traditional modems:
Channels Service Unit/ Data Service Unit, Cable Modems, ISDN, DSL. Other topics Include:
LAN and WAN applications, Internet and intranet, e-mail, FTP and Web applications, distributed
systems, standards; communication concepts, media, coding of data, error control, LAN
topologies and protocols, bridges, routers and gateways; TCP/IP, client server paradigm; network
configuration, performance monitoring, management, security, and reliability.
CSCD 301 Object Oriented Analysis & Design 3 CREDITS
This course teaches the OOP programming paradigm including analysis and design; data hiding
and encapsulation; inheritance; and polymorphism. It requires implementation of these concepts
using appropriate programming language constructs and extensive programming. Topics Include:
Introduction to object orientation, UML 2.0, the Unified Process, overviews a minimalist approach
to Object-Oriented Systems Analysis and Design with UML 2.0. the basic characteristics of
object-oriented systems; the relevant UML 2.0 are covered with diagrams where applicable, e.g.,
class diagrams, Structural Models as well as the fourteen diagrams included in UML; the activity
diagrams to support business process modeling and deployment diagrams to provide for modeling
the physical architecture of the system ; user interface design; class and method design ;object
storage design ; user interface design , the design of the physical architecture of the system.
CSCD 302 Programming III (with VB.NET) 3 CREDITS
Basics of .NET framework, Introducing Intermediate Language, Intermediate Language: Digging
Deeper, Inside the CLR, Assemblies, Garbage Collect, Improving Performance, Profiling and
Performance Counters, Dynamic Code Generation, Threading, Management Instrumentation,
Advanced Windows Forms, Code Access Security and Cryptography.
CSCD 304 Design and Analysis of Algorithms 3 CREDITS
Introduction to a variety of algorithms which illustrate principles for both the design and analysis
of efficient algorithms. Includes: classical problems in Computer Science; classical algorithm
design and analysis strategies; analyze the computability of a problem; design and analyze new
algorithms to solve a computational problem.
CSCD 306 Software Engineering 3 CREDITS
In-depth study of software design and implementation using a modern, object-oriented language
with support for graphical user interfaces and complex data structures. Topics covered will be
specifications, design patterns, and abstraction techniques, including typing, access control,
inheritance, and polymorphism. Students will learn the proper engineering use of techniques such
as information hiding, classes, objects, inheritance, exception handling, event-based systems, and
concurrency. This course equips students with practical set of skills for the development of
software. The software crisis; why software fail (case studies); Design as modeling; The Unified
Modeling Language, Concepts and techniques for testing and modifying software in evolving
environments. Topics include software testing at the unit, module, subsystem, and system levels;
developer testing; automatic and manual techniques for generating test data; testing concurrent and
distributed software; designing and implementing software to increase maintainability and reuse;
evaluating software for change; and validating software changes.
CSCD 313 Databases Management Systems 3 CREDITS
This course will study overview of database systems, Introduction to Database Design; The
Relational Model Relational Algebra SQL Database Application Development; Storage and
Indexing; Tree-Structured Indexing; Hash-Based Indexing; Schema Refinement and
Normalisation object oriented database languages; the relational database model with
introductions to SQL and DBMS; hierarchical models and network models with introductions to
HDDL, HDML, and DBTG Codasyl; data mining; data warehousing; database connectivity;
distributed databases; the client/server paradigm; middleware, including ODBC, JDBC, CORBA,
and MOM.
CSCD 311 Web Technologies & Development 3 CREDITS
This course is designed to enable students understand the fundamentals of web technologies, the
conceptual foundations that underpin them, and to provide experience in the design and
implementation of web-based distributed systems. Students are expected to understand the
fundamentals of the World Wide Web (www), HTTP and web browsers, variety of multimedia
formats including image and sound; design and construct web pages using HTML, FrontPage and
Dreamweaver. Topics such as XHTML, Cascading Style Sheets, JavaScript, DOM, XML, RSS,
and AJAX are presented. Students will learn to develop attractive and interactive web pages and
applications and use client-side web-scripting languages to solve problems both with a text editor
and more powerful WYSIWYG HTML editor. They will explore Active Server Pages, Java
Serves Pages, Java servlets, Extensible Markup Language (XML) and website security.
CSCD 312 Introduction to Artificial Intelligence 3 CREDITS
This course will cover the theory and practice of developing systems that exhibit the
characteristics we associate with intelligence in human behavior such as reasoning, planning and
problem solving, learning and adaptation, natural language processing, and perception. Basic
problem-solving strategies, heuristic search, problem reduction and AND/OR graphs, knowledge
representation, uncertainty reasoning, game playing, planning, machine learning, computer vision,
and programming systems such as Lisp or Prolog. Core material includes state space search, logic,
and resolution theorem proving. Application areas may include expert systems, natural language
understanding, planning, machine learning, or machine perception. Provides exposure to AI
implementation methods, emphasizing programming in Common LISP.
CSCD 315 Operating Systems 3 CREDITS
This course will study basic principles of operating systems: addressing modes, indexing, relative
addressing, indirect addressing, stack maintenance; implementation of multitask systems; control
and coordination of tasks, deadlocks, synchronization, mutual exclusion; storage management,
segmentation, paging, virtual memory; protection, sharing, access control; file systems; resource
management; evaluation and prediction of performance. Introduction to operating systems. Topics
Include: Threads and Processes ; Interprocess Communication, Synchronization ; CPU
Scheduling; Memory Management ; File and I/0 Systems ; Protection and Security ; Distributed
System Structures ; Distributed Coordination ; Fault Tolerance, Real-time Computing .
CSCD 317 Embedded Systems 3 CREDITS
Topics Include: An introduction to embedded Systems Architecture; An introduction to embedded
system design; Middleware and Application Software; Embedded software ; Embedded hardware;
Embedded Processor, Board Memory, Board Buses, Board Input/Output
CSCD 314 Research Methods in Computing 3 CREDITS
This course examines different methods of acquiring knowledge, role of economic research,
identification of a research problem and stating of research questions and hypotheses. Also review of
literature, meaning, purpose and principles of research designs and the measurement design will be
examined. The course further acquaints students with the method of data collection and analysis;
descriptive and inferential statistics; interpretation of data and proposal and research writing.
CSCD 319 Computer Vision 3 CREDITS
This course will cover essentials of computer vision. We will learn basic principles of image
formation, image processing algorithms and different algorithms for 3D reconstruction and
recognition from single or multiple images (video). Apllications to 3D modelling, video analysis,
video surveillance, object recognition and vision based control will be discussed.
CSCD 316 Introduction to Robotics 3 CREDITS
This course will cover: basic components of robotic systems; selection of coordinate frames;
homogeneous transformations; solutions to kinematic equations; velocity and force/torque
relations; manipulator dynamics in Lagrange’s formulation; digital simulation of manipulator
motion; motion planning; obstacle avoidance; controller design using the computed torque
method; and classical controllers for manipulators
CSCD 321 Introduction to Computer Graphics 3 CREDITS
This course will study the principles of computer graphics and interactive graphical methods for
problem solving. Emphasis placed on both development and use of graphical tools for various
display devices. Several classes of graphics hardware considered in detail. Topics include pen
plotting, storage tubes, refresh, dynamic techniques, three dimensions, color, modeling of
geometry, and hidden surface removal. Part of the laboratory involves use of an interactive
minicomputer graphics system. Introduces the fundamentals of three-dimensional computer
graphics: rendering, modeling, and animation. Students learn how to represent three-dimensional
objects (modeling) and the movement of those objects over time (animation)
CSCD 318 Introduction to Parallel Computing 3 CREDITS
This course will introduce the student to the basics of high-performance parallel computing and
the national cyber-infrastructure. This course is designed to provide an introduction to the field of
parallel computation. Topics Include: Architectural, algorithmic, and language requirements for
parallel computing and the lectures will emphasize the relationships between these requirements.
Parallel algorithm design and analysis as well as parallel programming languages will be
examined in the context of specific parallel systems and models.
CSCD 322 Advanced Web Technologies 3 CREDITS
The course content will focus on client-side and server-side software design and development.
Topics include: HTML, JavaScript the J2EE platform, JDBC, and XML; Component software
development using specific technologies including PHP, Java servlets, Java Server Pages, JavaScript,
XML and JDBC etc.
CSCD 400 Project 3 CREDITS
Undertake any piece of system work with extensive programming using system methodology.
CSCD 409 Data Mining & Warehousing 3 CREDITS
Introduction to data mining and motivating challenges. Types of data, measures of similarity and
distance. Data exploration and warehousing. Supervised learning. Bias and variance. Classification
techniques and their evaluation. Clustering. Association and sequence rule mining.
This course will apply computing principles, probability and statistics relevant to the data mining
discipline to analyze data. A thorough understanding of model programming with data mining
tools, algorithms for estimation, prediction, and pattern discovery. Analyze a problem, identifying
and defining the computing requirements appropriate to its solution: data collection and
preparation, functional requirements, selection of models and prediction algorithms, software, and
performance evaluation
CSCD 415 Compilers 3 CREDITS
This course will provide introduction to the field of compilers, which translate programs written in
high-level languages to a form that can be executed. The course covers the theories and
mechanisms of compilation tools. Students will learn the core ideas behind compilation and how
to use software tools such as lex/flex, yacc/bison to build a compiler for a non-trivial
programming language. The theory and practice of programming language translation,
compilation, and run-time systems, organized around a significant programming project to build a
compiler for a simple but nontrivial programming language. Modules, interfaces, tools. Data
structures for tree languages. Topics Include: Compiler Design ; Lexical Analysis ; Syntax
Analysis – grammars, LL(1) parsers, LR(1) parsers ; Semantic Processing ; Code generation and
optimization
CSCD 416 System Programming 3 CREDITS
Low-level programming; review of addresses, pointers, memory layout, and data representation;
text, data, and bss segments; debugging and hex dumps; concurrent execution with threads and
processes; address spaces; file names; descriptors and file pointers; inheritance; system calls and
library functions; standard I/O and string libraries; simplified socket programming; building tools
to help programmers; make and make files; shell scripts and quoting; unix tools including sed,
echo, test, and find; scripting languages such as awk; version control; object and executable files
(.o and a.out); symbol tables; pointers to functions; hierarchical directories; and DNS hierarchy;
programming embedded systems.
CSCD 417 Theory and Survey of Programming Languages 3 CREDITS
This course will study an exploration of modern or unconventional concepts of programming
languages, their semantics, and their implementations; abstract data types; axiomatic semantics
using Hoare’s logic and Dijkstra’s predicate transformers; denotational semantics; functional,
object-oriented, and logic programming; concurrency and Owicki-Gries theory. Example
languages include ML, Ada, Oberon, LISP, PROLOG, and CSP. Presents the fundamental
concepts of programming language design and implementation. Emphasizes language paradigms
and implementation issues. Develops working programs in languages representing different
language paradigms. Many programs oriented toward language implementation issues. Concepts
for structuring data, computation, and whole programs
CSCD 418 Computer Systems Security 3 CREDITS
This course will study the survey of the fundamentals of information security. Risks and
vulnerabilities, policy formation, controls and protection methods, database security, encryption,
authentication technologies, host-based and network-based security issues, personnel and physical
security issues, issues of law and privacy. The objective of this course to is provide comprehensive
introduction to the network security problems, and the principles, techniques and their applications
in securing network. Topics include secret key and public key cryptography, Hash algorithms,
basic number theory, authentication, IPSEC/VPN, IPSEC key exchange, SSL/TLS, firewall,
anonymous communication and VoIP Security.
CSCD 419 Formal Methods and Models 3 CREDITS
This course is an introduction to two kinds of formal systems—languages and logics that are
crucial to large numbers of areas in computer science. The study of formal languages underlies
important aspects of compilers and other language processing systems, software engineering,
agents and multiagent systems, game development, robotics, and networking. Formal logics and
automatic reasoning are put to use in artificial intelligence, database theory, and software
engineering. The course gives students practice in precise thinking and proof methods that play a
role in the analysis of algorithms. Topics include: Propositional Logic and Proofs; Predicate
Logic and Proofs; Program Verification; Prolog; Finite Automata, Regular Expressions; Context-
Free Grammars; Turing Machines and Solvability.
CSCD 421 Accounting Principles in Computing 3 CREDITS
This is a foundation course and it is designed to equip candidates with the basic knowledge and
tools that will enable them appreciate business transactions, their analysis and the primary
financial statements and reports that are produced from such transactions.
Topics Include: The Nature and Function of Accounting, Generally Accepted Principles (GAAP),
Fundamentals of Accounting Method, Manufacturing Account, Departmental Accounts,
Partnership Accounts – Introductory Consideration, Company Accounts, Incomplete Records of
Business, Correction of Errors and Elementary Analysis and Interpretation of Financial
Statements.
CSCD 422 Human Computer Interaction 3 CREDITS
This course will introduce Human-Computer Interaction (HCI) and user-centered design in the
context of software engineering. Examines the fundamental principles of human-computer
interaction. Includes evaluating a system’s usability based on well-defined criteria; user and task
analysis, as well as conceptual models and metaphors; the use of prototyping for evaluating design
alternatives; and physical design of software user-interfaces, including windows, menus, and
commands.
CSCD 423 Software Modeling and Simulation 3 CREDITS
This course will introduce students to the general principles of simulation model design and
concepts of the computer simulation. The course introduces mathematical and statistical models,
simulation languages, gives a thorough review of queuing systems and a hands-on experience with
the object-oriented simulation. Applications of simulation methods and techniques are focused
mainly on the area of computer science. ProModel for Windows will be used for projects
including production systems, inventory, finance, and transportation. Statistical analysis of
simulation input/output data, model validation, design of simulation experiments, and optimization
are also covered. Emphasis is placed on the study and development of models of computer
systems. Both analytical and discrete-event simulation models are studied. Data gathered from
actual systems is used to parameterize and validate these models. Use of models to predict system
performance is discussed.
CSCD 424 Management Principles in Computing 3 CREDITS
This course presents the basics of the theory and science of management. It emphasizes the
essentials of management that are pertinent to the effective work of practicing managers. Students
will understand the fact that managing is a part of a larger system interacting with a manager’s
total environment – economic, technological, social, political and ethnical. The functions of
management – planning, organizing, staffing and leading, and controlling will provide the
conceptual framework for students to increase their understanding of Ghanaian and global
management challenges, ethical decision-making, technology management and emerging
workplace issues. This course lays the foundation for an understanding of the nature and
importance of managing and of management as a developed and important science.
CSCD 426 Multimedia Applications 3 CREDITS
This course is designed to introduce students to e-business. Topics covered include: e-business evolution
& opportunities; categories of e-business; e-business models; network infrastructure & web based
e-business; e-business risks & risks management; network security and firewall; cryptography environment
of e-business; ERP/SCM/CRM and web based marketing; intelligence .This provides a study of
multimedia systems and applications in the business world. Topics include: multimedia applications,
hypertext and hypermedia, audio, graphics, images, and full motion video; multimedia-ready personal
computers and workstations, storage devices, operating systems and graphical user interfaces;
communication and networking requirements, multimedia applications on the Internet; file formats, data
compression and streaming audio/video.
CSCD 427 Data Communication & Networking II 3 CREDITS
The course will present data communications fundamentals and computer networking methods,
using the ISO 7-layer reference model. Attention will be focused on the protocols of the physical,
data link control, network, and transport layers, for local and wide area networks. Emphasis will
be given to the Internet Protocol Suite. Some advanced topics, such as network security, wireless
and mobile computing networks, will also be covered. Topics include the design of modern
communication networks; point-to-point and broadcast network solutions; advanced issues such as
Gigabit networks; ATM networks; and real-time communications.
CSCD 428 Expert Systems 3 CREDITS
This course provides an overview on Decision Support Systems (DSS) and its subsystems. Topics
include: DSS overview, modeling and analysis using linear programming, decision tables, trees,
AHP, etc., group decision support systems, fundamentals of AI, expert systems, expert system
building tools, and validation, knowledge representation. Classical Approaches to the Design and
Development of Expert Systems, Ontology Design and Development, Learning-Oriented
Knowledge Representation, Problem Reduction and Solution Synthesis, Modeling Expert’s
Reasoning, Agent Teaching and Multi-strategy Rule Learning, Mixed-Initiative Problem Solving
and Knowledge Base Refinement, Tutoring Expert Problem Solving Knowledge. Design
Principles for Expert Systems. Frontier Research Problems.
CSCD 432 Concurrent & Distributed Systems 3 CREDITS
Threads, Seamphores, Monitors ;Message Passing ;Distributed Systems ;Client-Server
Applications ;Middleware technologies; TCP/IP Sockets ; RPC/RMI ;Web Services (SOAP,
XML), J2EE. Foundations for building reliable distributed systems, including failure and system
models, and basic communication and agreement problems; crash failures, recovery, partition,
Byzantine failures; asynchronous systems, failure detectors, communication channels, wireless
and sensor networks; software clocks, causality, and cuts. Examples of problems include reliable
broadcast consensus, leader election, group communication, and replication. Introduction to
Distributed Systems, Multi-threaded/Concurrent Programming, Client-Server, Applications,
Middleware technologies: TCP/IP Sockets, RPC/RMI, Web Services (SOAP, XML), Peer to Peer
Computing, Parallel Programming.
CSCD 434 Mobile Computing 3 CREDITS
This course studies the design and implementation of mobile applications for popular platforms
including Blackberry, Android and Apple devices. The course will provide an overview of the
various mobile platforms but will focus on developing applications for iPhone, iPod Touch and
iPad. Programming topics covered will include an introduction to Objective-C, the XCode IDE
and will focus on designing, implementing and running applications using the simulator for the
various Apple devices. Students will leverage their object oriented programming skills for such
things classes, objects, inheritance, exception handling, and graphical user interface design.