Do you want to be on the cutting-edge of technological advances? If you have an analytical mind, a patient personality and are comfortable around computers, you could benefit from computer programmer training.

The computer science program provides the students with the theory and practical skills necessary to enter and compete in today’s high-tech field. Eleven 39 hour courses in basic and advanced computer programming along with corollary courses in advanced math are usually offered.

Students are required to design, code and test programs using several programming languages; design and build databases; learn computer architecture and operating systems, and understand the basics of cyber security. Our alumni are currently working in top-rated industry businesses such as HSBC Bank, Ezrirx, Tangoe, Patents Ink, Search Discovery, Megadata, Morgan Stanley, Project Genesis, Sintec Media, Malam etc.

Advanced Data Structures (COS342) 

Topics include: sorting algorithms, exchange, selections, tree, insertion, merge and radix sorts, heaps, searching techniques, b-trees, b+ trees, red-black trees, hashing, and graphs. Methods of instruction include lecture and lab.

Assembly Language (COS231) 
Major topics are: an introduction to number systems, a description of register sets, memory segmentation and addressing, the format of instructions, multiplication and division, conditional and unconditional jumps, array processing, subroutines, string processing, interrupt handling and file I/O. Emphasis is placed on understanding the effect of each instruction and process.

Client Server Internet Programming (CAP284) 
Major topics are: design of interactive web pages, scripting, server side programming and control, session persistence, HTML, style sheets, the Document Object Model – accessing objects and properties, manipulating them, trigger events, scripting, browser compatibility issues, Php and MySql.NOTE: this course is for non-computer majors.

Computer Concepts and Applications (CIS101) 
This course may be delivered in a classroom or online format. The course is intended as an introduction to computers and the basic application software categories of word processing, database and spreadsheets using Microsoft Office software applications.

Computer Programming I/Programming C++ (COS213)
Major topics are: arithmetic and relational operators, data types, control structures, functions (parameters call by value and call by reference), pointers and addresses, arrays, strings, structures, enumerations, type conversions, default parameters, dynamic allocation of memory, and references.

Computer Programming II/Object Oriented Programming Using C++ (COS315)
Major topics are: declaring classes, classes with strings, dynamic allocated memory and private functions as members, abstract data types, inheritance, encapsulation, implementation hiding, polymorphism, static variables, multiple and virtual inheritance, containment, virtual functions and binding, templates.

Computer Systems Architecture-PC Internals (COS330) 
Major topics are: the main roles and components of the ALU, CPU, main memory, I/O, BIOS and the connections between them, RISC processors and multiple processors and x.86 architecture.

Data Structures (COS241) 
Major topics are: dynamic storage allocation, pointers, linked lists, recursion, stacks, queues, circular and doubly linked lists, binary trees, general trees, and sorting and searching methods.

Database Management Systems (CIS311) 
Major topics are: database concepts and definitions, logical organization, components of databases, database architecture and data modeling, data normalization, data descriptions and query languages, SQL, query processing, transaction processing, database integrity, database design, client/server environment, Microsoft Access, data access using ADO and DAO. Pre- or co-requisites:Introduction to Computers, Visual Basic.

Internet Foundations (CAP370) 
This course may be delivered in a classroom or online format. Topics include: Internet history, data communication media, networking concepts, email, SMTP, the World Wide Web, FTP, HTTP, security issues, HTML, CSS, DHTML conversations and client-side scripting tools. NOTE: This course is designed for non-Computer Science majors and maybe be applied as an elective in Computer Science.

Introduction to Computer Science (COS101) 
Major topics are: processing numeric and character information, debugging and testing (verification) of programs, program structure, arithmetic operations, looping, input/output operations, arrays, subroutines, character string manipulation, sorting and searching. General concepts and terminology of computer technology including hardware and software fundamentals, graphics, multimedia, networking, security and privacy issues are also explored.

Operating Systems (COS352) 
Major topics are: general introduction to operating systems; the services provided to users, and how users can request services through system calls; algorithms for and approaches to CPU scheduling; disk scheduling; file management; memory management; input/output handling; concurrent programming; and problems such as critical sections, process coordination, and deadlock and solutions to these problems.

Programming in Visual Basic (COS191) 
Major topics are: event-driven programming concepts, all controls from the toolbox, forms, toolbars, programming elements (variables, control structures, arithmetic and relational operators etc.), scope issues (private, public, static), built-in classes and functions, arrays, user-defined sub procedures and functions (by value and by reference), types, collections (intrinsic and user-defined), graphics, user-defined objects, file handling, the debugger, error handling, and connecting to databases using ADO.Net.

Programming Languages (COS 351) 
Version 1: Major topics are formal definitions of programming languages and specification of syntax and semantics; global properties and algorithmic languages, including scopes of declaration, storage allocation, binding time, subroutines, and co-routines; list processing; string manipulation; data description; and simulation languages. Methods of instruction include discussion, lecture, laboratory, examinations, and programs. Prerequisites: Introduction to Computers and one other programming language.

Version 2: Major topics are: formal definitions of programming languages and specification of syntax and semantics, global properties and algorithmic languages, including scopes of declaration, storage allocation, binding time, subroutines, and co-routines, representation of various data types, list processing, string manipulation, and data description, parsing, pointers, subroutines and multi-threaded programs. Prerequisites: Introduction to Computers and one other computer language. Methods of instruction include lecture, discussion and lab, projects and final exam.

Introduction to Cyber Ethical Hacking (CYB224)
Major topics include: Ethical and Cyber security terminology, methodologies and framework, Operating Systems including Windows and Linux, Cyber Malware and attack methods, network mapping, web applications penetration testing, exploitation and vulnerability assessment, sniffing, and social engineering. Prerequisites: Personal interview and skill-based exam.

Introduction to Cyber Forensics (CYB222)
Major topics include: cyber security threats, attacks and fraud; forensics methodology; digital forensics; familiarity with network forensics; and Malware analysis. Prerequisite:  Prior knowledge of cyber concept, high technical ability, proficiency in English and creative thinking.

Introduction to Cyber Security (CYB120)
Major topics include: cyber security terminology and framework, network infrastructure and OSI (open systems interconnection) model, cyber threats and attacks, introduction to crypotography, security and incident management, hybrid cloud security, and defense methodologies. Prerequisites: Personal interview and skill-based exam.