Computer Science Courses Core

COSC115 Introduction to Computer Science I


This course introduces students to the basic principles, concepts and practice of computer science. The course provides an overview of key topics in computer science emphasizing on: the underlying mathematical concepts and principles of computer science, topics relating to hardware as well as system development components and aspects of computer science.

COSC116 Introduction to Computer Science II


Prerequisite: COSC115

This course provides a good appreciation of the fundamentals of computer architectures and their operation. It covers the following topics: number systems; basic computer components; the fetch-decode-execute cycle; branch instructions and flow control; addressing modes; stacks and subroutines; input output; interrupts; exceptions.   

COSC113 Elements of Programming

3 Credits

This course introduces students to the principles of problem solving using fundamental algorithmic techniques and design, structured programming, and computer systems concepts.  The course covers the techniques necessary to write well-documented, structured computer programs. The course is intended to emphasize the planning process using examples involving sequence, selection, iteration, and basics of computer arithmetic, data structures, sorting and searching. The course is designed to promote good programming practices for further study of programming languages. Upon successful completion of this course, the students should be able to design simple, structured, well-documented computer programs. Topics to be covered shall include: Program Design paradigms, Pseudo-code, Flowcharts, Developing Algorithms, Selection Control Structures, Repetition Control Structures, Algorithms Using Sequence, Selection, and Repetition, Modularization and Communication between Modules, Searching and Sorting, Cohesion and Coupling and Primitive Data Structures. Evaluation instruments will include written and/or skills-based examinations and individual in-class and/or take-home assignments. Evaluation methods may also include group in-class and/or take-home assignments.

COSC114 Programming with C

3 Credits

Prerequisite: COSC 113

This course provides students with a comprehensive study of the C programming language. Through classroom lectures students will be equipped with the means of writing efficient, maintainable and portable code. The lectures are supplemented with non-trivial lab exercises. This course focuses on the principles of problem solving using C and structured programming techniques for computer systems.  The course covers fundamentals of program design, analysis and implementation of computer systems concepts. The C programming language is used to build the fundamentals so that students will have a basis for understanding and using other programming languages. Topics covered are: Introduction to computer programming, The C Pre-processor Directives, Expressions, Variables and data types, Functions and Operators, Simple I/O and File I/O, Addresses, pointers and storage allocation, Functions and parameter passing mechanisms, Control structures Constructs, Arrays, Bit Manipulation, Separate Compilation, Elementary searching and sorting, Strings , Structures and unions and Recursion

COSC221 Computer Programming with C++

3 Credits

Prerequisite: COSC 114

The course is design to introduce the principles and concepts of programming and teach problem-solving methods and algorithm development; high-level, structured programming using C++. Development of process of design, coding, debugging, documentation; focus upon techniques of good programming style and sound program construction.

COSC222 Computer Programming with Java

3 Credits

Prerequisite: COSC221

The course provides an understanding of how to construct programs from algorithm specifications. The aim is for the students to become very familiar with ‘advanced’ standard algorithms and ‘sophisticated’ data structures and data types. The emphasis is on developing skills for writing reliable and readable programs in an OOP environment using JAVA as a programming language. Abstract Data Types, Object-Oriented Design, Generics, Exception Handling and Program Assertions are used to help develop these skills. 

COSC130 Digital Electronics

3 Credits

The aim of the course is to provide a good grounding in the principles of operation of semiconductor devices and introduces students to practical issues involved in using electronic circuits and systems. Topics include: propagation delay, switching speed limitations, pulse propagation along transmission lines, characteristic impedance, noise, power supply regulation, the relative merits of the different logic families, power dissipation etc.

COSC210 Numerical Methods

3 Credits

Prerequisite: MATH172

The course concentrates on: derivation, analysis and implementation of methods of numerical solution of mathematical problems. Topics include: error analysis, various polynomial approximations, iterative techniques for solving equations, numerical integration and differentiation, and numerical solution of differential equations.

COSC211 Computer Organization I

3 Credits

This course introduces students to an Assembler Language, the programming of microprocessors. Topics include: introduction to computer architecture; detailed examination of addressing, instruction execution, data representation and program coding and debugging.  

COSC220 Digital Logic Design

3 Credits

This course is designed to introduce students to the theory and practice of digital logic. Topics covered in the course include: Binary Logic; Boolean Algebra; Boolean Functions; Other Logic Operators; Simplification of Boolean Functions; Arithmetic Logic; Combinatorial Logic Implementation Techniques; Sequential Logic; Asynchronous Sequential Logic (ASL); Design Algorithms for ASL; Basic SR Storage Circuit; ASL with Explicit Storage; Gated Latch Storage Circuits; Alternate Gated D Latches; Edge Triggering; Synchronous Sequential Logic; Algorithmic State Machines etc. 

COSC230 Database Systems

3 Credits

This course is aimed at introducing students to the theoretical and practical issues in management, retrieval and organization of large quantities of data. The course provides a general understanding on issues relating to:

(i) the modelling of data within an organization or enterprise;

(ii) the analyses of data relationships for exploitation within database management systems;

(iii) the programming of Database management systems for database creation, information retrieval and database management;

(iv) the analyses of various database concurrency protocols and algorithms to assess their performance and relative appropriateness in differing operating environments and

(v) development of concurrency control algorithms and appropriate data structures for data management.

COSC240 Systems Programming

3 Credits

Prerequisite: COSC 222

This course provides an understanding of how to use the facilities which are provided by the underlying operating system, and to develop OOP skills.  The course also introduces the area of concurrency and aims to teach how to make use of concurrent processes and threads, and how to deal with the problems which arise when writing concurrent programmes.  Topics covered in this course include:  The C++ programming language: Overview, Classes, Functions, Arrays, Pointers, References, Dynamic Allocation, Inheritance, Virtual Functions and Polymorphism, Overview of the Windows family of operating systems, Event-driven and Windows programming, The Win32API, Overview of foundation classes, Generation and control of processes and threads, Inter-process Communication, Introduction to Concurrency are also covered.

COSC255 Operating Systems

3 Credits

This course provides a thorough understanding of the principles and design of operating systems.  The aim is to illustrate the algorithms and approaches which can be taken in developing operating system functionalities. The course compares and contrasts the approaches taken in several modern operating systems. This course leads to a deep knowledge of the problems and solutions in developing modern concurrent systems.  Topics covered in this course include: Operating Systems Overview and History – Process Management – Threads – Processor Scheduling – Process Synchronisation – Deadlocks – Memory Management – Virtual Memory – 1/0 Management – File Management – Protection and Security – Distributed Systems. The course compares and contrasts the approaches taken to achieve the above facilities in a number of operation systems.

COSC260 Structured Systems Analysis and Design

3 Credits

This course introduces students to the concepts, principle and practice of systems analysis and design. A number of systems analysis methodologies such as Structured Systems Analysis and Design Methodology (SSADMs), Agile methodology, Object Oriented Methodology and Computer Aided Software engineering (CASE) among others. The course covers into details the system development life cycle (SDLC) and consider practical issues involved in the development of implementable system for user organizations.

COSC271 Data Communication & Computer Networks I

3 Credits

This course concentrates on: the fundamentals of computer communications and networks and telecommunications; digital, voice and video signals and transmission; protocols for error and flow control; capacity utilization; multiplexing and concentration; local area networks (LANs), wide area networks (WANs). Also covered in this course are: network design, installation and maintenance issues; switching, local area networks and structured architectures, modulation/demodulation techniques; high speed modems; data-link layer issues; High Level Data Link Control Protocol (HDLC).  Local network technologies: Ethernet, Token-Ring, etc

 COSC280 Information Systems

3 Credits

This course provides an in-depth understanding of the concepts, principles and practise of information systems.  It covers topics relating to: information system as strategic resources; trends towards information system integration in user-organizations; how the building blocks and design forces combine to form a viable user-oriented information system; and applying the strategic planning process and systems development methodology to the analysis, design, and implementation of systems that meet the requirement and goals of the user-organization.  The course also provides a thorough understanding of a number of issues relating to various types of information systems including: MIS, EIS, DSS, and Expert Systems.

COSC331 Computer Graphics I

3 Credits

The aim of this course is to develop an understanding of the mathematics and algorithms used in the synthesis of computer graphic imagery and animation.  This is an introductory level course covering aspects of computer graphics including: techniques of graphic data input and output in terms of display devices and software; computer display of mathematical forms; animation, text processing and related topics; graphics display hardware image processing; 2D systems and transformations, etc

 COSC346 Software Engineering

3 Credits

This course provides understanding of the fundamental software engineering concept and issues involved. Thus the course covers the processes, techniques and deliverables that are associated with requirements engineering, software design and design processes, various approaches to development, techniques for software verification and validation and management issues such as managing people, cost estimation, quality management, process improvement and configuration management. At the end of the semester students should demonstrate working software.

COSC355 Computer Ethics

3 Credits

This course examines the ethical use of computer systems and data for the IT professional. Topics covered include software theft, privacy, property rights, accountability, hacking, viruses, piracy, crime, responsibility and liability and Internet issues. The course further examines the code of ethics and professional conduct as published by technical organizations such as ACM and IEEE. The course thus equips students with the tools to build information systems to the highest ethical and moral standards.

COSC361 Data Structures and Algorithms I

3 Credits

The fundamental nature of information and storage structures and their manipulation, Linear lists, strings, arrays, stacks, representation of trees and graphs, multi-linked structures and iterative and recursive programming techniques, storage systems structures and allocation and introduction to sorting and searching techniques. 

COSC370 Operations Research

3 Credits

This course covers a range of operations research topics including: Optimization Techniques, Game Theory, Linear and Non-Linear Programming, Transportation Problem.  Network Analysis, Forecasting Techniques, Inventory Theory, Decision Analysis, Simulation, System Reliability, Queuing Theory, Time Series Analysis, Scheduling Systems etc.

COSC380 Compiler Design

3 Credits

This component of the course provides the basics of compiler design.  Topics covered include: Review of finite state automata, Lexical analysis, Pushdown machines, Context-free grammars, String translation grammars, Attributed translation grammars, Parser design, LL(1) grammars, Recursive-descent parsing, Error detection and recovery, Simple code generation techniques, Symbol-table management, Run-time implementation issues, Brief overview of compiler optimization techniques, Introduction to bottom-up parsing, etc.

COSC215 Project Planning and Management

1 Credits

This course is aimed at helping students to understand the tools and techniques of project management such as: project selection methods, work breakdown structures, network diagrams, critical path analysis, and critical chain scheduling, time and cost estimates, earned value management and motivation theory and team building.

COSC245 Entrepreneurship and Human Development

1 Credits

A study of the theory and practise of initiating a business venture and organizing the necessary resources.  This course provides students with an understanding of the business planning techniques, economic analysis, financial analysis, market analysis and human resource analysis which are utilized in conceiving and launching a new business.  The course also provides an understanding of the risks and rewards associated with entrepreneurship. It examines the principles and problems of operating a small business after it is established.  Topics covered include a procedural system for establishing a new business, providing physical facilities, financing, organizing, marketing and managing of the small businesses.  The course would include class project in which students work in teams to write business plans with the aim of attracting support for venture capital.




Computer Science Concentration Courses

COSC212 Computer Organization II

3 Credits

Comparative study of the organization and architecture of various present-day digital computers, the architecture is studied as a hierarchy of levels and a comprehensive treatment of the conventional machine level and the microprogramming level.

COSC257 Computer Architecture and Microprocessor Systems

3 Credits

The Computer Architecture component of the course covers register-transfer specification and design, as well as the fundamentals of an instruction processor.  It covers the following topics: register transfer definition, micro-operations, bus transfers, ALU design, shifter design, hardwired control design, microprogram processor control, and design of an instruction processor.  The Microprocessor Systems component of the course is aimed at introducing students to hardware design and construction.  Students will design and build a working microprocessor system from IC components.  The course describes how such components are brought together to produce a functioning system, and illustrates the sort of low-level software necessary to support the hardware for basic I/O and monitor services.  

COSC272 Data Communication and Computer Networks II

3 Credits

This course follows-on from COSC271 and deals with upper layer OSI protocols and services.  Topics covered include: Detailed look at the OSI model, Broadband ISDN, High speed data networks, Network and Transport Layer, Session Layer, Presentation Layer and Introduction to ASN.1, Application Service Elements, X.400 Electronic Mail, FTAM file transfer, X.500 Directory Services, OSI Management, EDI; the Internet architecture and technologies; configuration and implementation of Internet-based systems and applications, current advanced topics and concepts in computer data communications and computer networks.

COSC310 Computer Engineering

3 Credits

This course covers the organization and control of high performance processing systems with an emphasis on parallel systems.  Course content: Bit-parallel memory and arithmetic, I/O processors, interleaved memory, cache memory, instruction look-ahead, multiple functional units, instruction pipelines, pipeline functional units, processor arrays, multiprogramming, timesharing, multiprocessing, data-flow, Flynn’s taxonomy, Amdahl’s law, interconnection systems - mesh, shuffle-exchange, hypercube, butterfly, shared memory arrays, distributed memory arrays, tightly and loosely coupled multiprocessors, data-parallel programming, scheduling parallel tasks, loop scheduling. 

COSC325 Computer Security

3 Credits

This course provides the underlying concepts and principles of computer security.  Topics covered include: accidental and malicious damage, viruses, security threats, hacking and fraud, physical security, message authentication procedures, techniques and tools, back-up recovery, encryption and decryption, digital signatures, access privileges and control schemes, trusted systems, Internet and network security systems and mechanisms, firewalls, etc. 

COSC351 Expert Systems and Artificial Intelligence I

3 Credits

This course introduces students to the concepts, principles and the practice of Expert Systems.  It also examines the processes by which machines simulate intelligence; heuristic and algorithmic processes in problem solving and programming machines to play simple games; models of cognitive process; applications and limitations of machine intelligence.  The course introduces students to symbolic programming (Common Lisp and Prolog) in the context of some of the main ideas and breakthroughs in the area of Artificial Intelligence (AI), etc.

COSC365 Research Method Seminars

3 Credits

This course is designed to provide the fundamentals of research methodology applicable to Computer Science and its related areas.  Analysis, critical reading, evaluation, and application of research needed for the development of skills in research proposals are emphasized.  Topics covered include types of research, population sampling, research design, developing instruments of data collection, statistical treatment of data, hypothesis formation and its testing.

COSC420 Distributed Systems

3 Credits

This course is aimed at introducing the main concepts in distributed computing and to examine the fundamental problems in the area and look at the various models and solutions that have been proposed.  Extensive use is made of case studies of real systems.  Topics covered include: Sample Systems; Issues in distributed computing; Inter Process Communication Models; Kernels; Naming; File Systems; Transactions; Fault Tolerance; Future Trends.  

COSC430 Computer Simulation and System Modeling

3 Credits

An introduction to the methodologies used in the computer simulation of continuous and discrete systems.  Mathematical modeling, systems analysis, random number generation, Monte Carlo and other simulation techniques, simulation programmes and analysis of simulation output.  Applications will be drawn from among the physical, biological, socio-economic and computer sciences. 

COSC460 Internet-Based Application Systems Development

3 Credits

This course concentrates on the development of application systems and tools using the resources of the Internet as a development, implementation and delivery platform.  Students are exposed to the emerging area of developing Internet-based (in particular Web-based) application systems for service delivery in the area of business, education, health, entertainment, etc.  The course will introduce students to current Web-based systems development tools and programming languages. Students will be required to undertake projects involving the development of working systems using these tools and programming languages.

Elective Computer Science Courses

COSC332 Computer Graphics II

3 Credits

Prerequisite: COSC331

The advanced topics in computer graphics and image processing real-life rendering, animation, techniques of image enhancement, data compression and aspects of pattern recognition and computational geometry.  Topics covered include: 3D systems and transformations; rendering; curves and surfaces; realistic image synthesis; animation and kinematics; physically based animation.  The fundamental topics covered in this module have applications in robotics, image processing, vision, CAD, virtual reality and scientific visualization.

COSC352 Expert Systems and Artificial Intelligence II

3 Credits

Prerequisite: COSC351

This course covers a number of advanced topics in expert systems and artificial intelligence and addresses elements of Logic Programming and Prolog, with an emphasis on AI uses of it.  Topics covered include: General Orientation; Examples; Some syntax.  More syntax; procedural aspects; backtracking and cut; Definite Clause Grammars (DCGs); the ‘Declarative_and_Procedural’  synthesis argument applied to sorting (Meta Interpreters), Forward and Backward Chaining, Expert Systems and Prolog and Logic.  In the area of AI applications, the course lays emphasis on AI techniques and case studies.  Topics include: rules-based systems: algorithms: Frames and Semantic Nets, Expert Systems examples; Case-Based Reasoning; Blackboard Architectures; Neural Networks; Genetic Algorithms; and AI languages.

COSC362 Data Structures and Algorithms II

3 Credits

Prerequisites: COSC351, COSC 361 

The course exposes students to the study of the design and analysis of sorting, searching, matrix multiplication and other important algorithms with emphasis on structure, complexity and efficiency.  Topics are chosen from logic, graph theory and theory of functions.  Data structures such as balanced binary trees, AVL trees and B-trees.

COSC425 Mobile Applications Development

3 Credits

This course aims to teach students how to develop mobile applications for mobile devices. The course focuses on the frameworks/platforms, development tools, communication and connection capabilities, human-computer interaction, development life-cycle (requirements gathering & analysis, design, construction, and testing) database integration and management, transaction management of mobile applications. Also, issues related to mobile commerce, the current trends and future expectations regarding mobile application are considered.

COSC440 Computer Vision

3 Credits

The aim of this course is to give students a firm understanding of the theory underlying the processing and interpretation of visual information and the ability to apply that understanding in a wide variety of situations.  Students who successfully complete this course will be well placed to pursue subsequent work either in research or in industry.  General Contents: Human and Computer Vision, Image Formation, Binary Vision, Image Processing (Enhancement, Filtering, Restoration and Compression) Segmentation, Mathematical Morphology, Shape from X, Recognition (of image features, 2-D objects and 3-D objects), Control strategies. 

COSC450 Advanced Systems Analysis and Design

3 Credits

This course covers advanced topics in systems analysis and design.  It provides an in-depth understanding of a number of structured systems analysis and design techniques and tools including CASE tools.  Real-life case studies are used to demonstrate the development of systems for user-organizations.  Students do a number of systems development projects. 

COSC457 Advanced Computer Architecture

3 Credits

This course provides an in-depth understanding of the hardware aspects of an advanced multiprocessor system.  It also introduces the basic concepts and design techniques for integrated circuits.  In particular, contrast is drawn with hardware design using discrete devices. Topics covered include: RISC CPUs; memory management units, translation look aside buffers (TLBs); Unix memory management (hardware); cache theory and organization; cache analysis, victim caches; shared memory multiprocessors; cache coherency protocols; spin-lock algorithms; load locked/store conditional instructions; main memory (DRAMs, DRAM refreshing, DRAM interfacing, ECC, etc); graphics subsystems (VRAMs, colour palettes, monitors, mice). Also covered are: MOS Technology; nMOS Processes vs. CMOS Processes; Static CMOS; Dynamic CMOS; Pass Transistor Logic; Floor planning; Power Routing; Control and Data Routing; Area Estimation; Design Rules; Basic Gate Layout; Regular Layout Styles; Sticks Diagrams.  The course will also introduce students to VLSI technologies and systems.

COSC435 Computer & Cyber Forensics

3 Credits

A study of the investigation of computer crime from both a legal and technical perspective. Intrusion detection techniques are examined. Case studies are used to develop an understanding of what happens when computer systems are compromised. Focus is on acquiring the skills to efficiently and effectively collect all of the available data in connection with a computer crime. Topics include developing and executing investigative and data collection plans, collecting data from a variety of computer and network hardware components, conducting appropriate analyses, and writing forensic reports.

COSC446 Advanced Network and Systems Administration


Prerequisite: COSC272, COSC113

This course offers a practical grounding in the principles of system and network administration and demystifies how IT personnel manage systems by imposing limitations on users. To demonstrate universal principles that apply to all platforms, by utilizing the major operating system families: Linux, Unix, Windows (including Server). The course starts with a review of computer system administration before addressing such issues as user account management, interoperability, data warehousing, capacity planning, load balancing, Network Administration, security, and disaster preparedness.

Cognates Courses

ACCT210 Introduction to Accounting

3 Credits

This course is designed to cover the fundamentals of accounting applicable to different business entities with emphasis on the accounting cycle and the preparation of financial statements.  Topics include basic accounting concepts and principles, double entry book-keeping, accounting treatment of assets, capital and liabilities, books of original entry and preparation of financial statements.

MGNT255 Principles of Management

3 Credits

A beginning course designed to study business management theory and practice including topics such as, functions of management, history of management thought, executive functions of a manager (planning, organizing, directing, coordinating, staffing and controlling).  This course also introduces students to the functional areas of business such as marketing, financial, personnel and operations.

MATH172 Introduction to Maths for Computer Science

3 Credits

This course is designed to provide students with basic concepts in Algebra and Calculus, which are crucial for further work in Mathematics.  Topics include; Exponential and Logarithmic Functions, Conic Sections; Parabola, Ellipse, Hyperbola and Translation of Axes, Derivatives of Exponential and Logarithmic Functions, Trigonometric Functions, Finding Values of Trigonometric Functions, Trigonometric Identities, Inverse Trigonometric Functions, Integration; Area and the Definite Integral, the Fundamental Theorem of Calculus, Integration by Substitution, Integration by Parts, Numerical Integration.

MATH175 Discrete and Continuous Mathematics

3 Credits

This covers a wide range of topics in the discrete mathematics as well as a spectrum of topics in differential equations and Fourier series.  Topics include: discrete and algebraic structures: mathematical induction; sets, relations, maps and lattices; graphs, trees and adjacency matrices; semigroups, monoids and groups; formal grammars, languages and machines; ordinary differential equations, linear independence and Fourier methods.

STAT282 Probability and Statistics

3 Credits


The course introduces the concepts of probability and the use of basic statistical techniques, with reference to their application to Computer Science.  Topics covered are: Probability Distributions, Mean and Variance, Statistical Estimation and Hypothesis Testing, Regression, Bayesian Statistics.

© 2016 Valley View University. All Rights Reserved. Designed By VVU ITS

Please publish modules in offcanvas position.