Computer Science & Computer Information Systems Courses

CS 131 - Spatial Analysis of Geographic Information 3 hrs.

This course will examine the theory of Geographical Information Systems (GIS) including its historical and practical uses and potential. Students will gain a basic, practical understanding of GIS concepts, technical issues, and applications using Google Earth and ArcView GIS software. The course has been designed for students in a wide variety of fields as an introduction so that they can use spatial analysis within in their chosen field of study and work. Prerequisite: Sophomore status or permission of the instructor.

CS 141 - Computer Competency 1 hr.

This course is intended to help students achieve computer competency defined as a working knowledge of common computer terms, concepts, and history; proficiency in basic skills in Windows and Microsoft Office (e.g., Word, Excel, PowerPoint); proficiency in basic browsing and searching skills in Microsoft Internet Explorer; and the ability to send and receive e-mail and knowledge of e-mail conventions and etiquette. P/NC

CS 151 - Introduction to Computing for Nonscience Majors 3 hrs.

This course introduces students to computing as an essential tool of academic and professional activities in disciplines other than science and engineering. Functions and interrelationships of computer system components such as hardware, systems, applications software, and networks are covered. Widely used applications packages such as spreadsheets and databases are used in a project-focused learning environment. Students will learn key concepts and practices involved in creating technical solutions to problems in different application areas. The social implications of the pervasive nature of technology will be discussed in a global context. Students interested in scientific, computer science, or engineering applications should take CS 175 instead of this course.

CS 154, 155 - Relational Databases I and II 1 hr. each

These courses introduce students to the concept of a relational database. Using a microcomputer relational database program, students design a model database including collecting information, deciding on the most effective table and key structure, designing input forms, and preparing reports. In addition, students write simple database programs. Prerequisite for CS 154: CS 141 or permission of the instructor; prerequisite for CS 155: CS 154.

CS 156 - Designing Web Pages with HTML and JavaScript 1 hr.

This course gives students an introduction to computer programming principles by teaching them to use HTML and JavaScript to design web pages. Prerequisite: CS 141 or permission of the instructor.

CS 175 - Introduction to Computer Science: C++ 4 hrs.

This subject is about programming as a creative process by which computers are instructed to carry out tasks to solve specified problems. Fundamental computing concepts will be introduced as well as the principles of programming including algorithm design, program writing, documenting, debugging, testing and implementing. Elements of good programming style will be treated as part of the course.

CS 185 - Data Structures 4 hrs.

Approaches to analyzing algorithm complexity, introduced in Introduction to Computer Science will be reviewed. The complexity class of algorithms will be introduced as one of the major considerations in problem analysis and program design. The use of abstract data types as a design technique, and their implementation in solutions to problems, will form a part of the practical work. Code will be implemented in the form of reusable C++ classes. The concept of "efficient" code and ways to measure efficiency (both empirically, by timings, and theoretically, in terms of formal models), will be studied. Prerequisite: CS 175.

CS 221 - Computer Systems and Assembly Language 4 hrs.

The course introduces the internal operation of the computer and provides an understanding of how the computer, at a low level, carries out the task of processing data. It deals with the machine language as determined by the architecture, addressing techniques, assembly languages, assembler construction, linkers, loaders and related operating system software and provides an introduction to the role of the operating system and the compiler, as well as interfacing to peripheral devices. Prerequisite: CS 175.

CS 223 - Computer Architecture and Organization 3 hrs.

This subject is about multilevel computers and how they are organized. Three levels will be examined in detail – the digital logic level, the microarchitecture level and the ISA level. Some of the basic issues to be examined include the overall design of the level, the kinds of instructions and data available, the memory organization and addressing, and the method by which the level is implemented. The study of these topics is called computer organization. Prerequisite: CS 175.

CS 226 - Operating Systems 4 hrs.

The subject introduces main operating system concepts and explains the role of major operating system components. In particular, the subject involves an overview of computer system structures, describes main process and storage management issues, and stresses the importance of protection and security. It covers processes, their creation, and mechanisms for intercommunication. Scheduling algorithms and their applications in allocating processors and ordering data transfers are explained. Mechanisms and policies for memory management are explored, as are approaches for organizing file storage. Problems specific to concurrent programs are reviewed. Prerequisite: CS 185.

CS 231 - Internet Systems and Technologies 4 hrs.

This subject will examine Internet protocols, technologies and performance issues. Topics will include: TCP/IP, IP Addressing, Address Resolution Protocol (ARP), Asynchronous Transfer Mode (ATM), Ethernet, Gigabit Ethernet, Frame Relay, Congestion Control/Flow Control. Other topics to be covered include theoretical concurrency models used for specification and simulation, network addressing, contemporary architectures (both hardware and software) and mechanism to implement distributed processes. Real-world programming examples from the Unix environment will be presented. Prerequisite: CS 185.

CS 275 - Information Systems Analysis and Design 4 hrs.

The aim of the subject is to provide students with an introduction to information systems. A study of the analysis and design of computer information systems is undertaken. The course includes developing a study project using CASE tools. In addition to individual learning, students will be introduced to collaborative analysis and design activities undertaken in small groups.

CS 320 - Introduction to Computer Graphics 4 hrs.

This course is an introduction to computer graphics with particular emphasis on fundamentals underlying computer graphics in the context of computer gaming. Topics include a thorough treatment of transformations and viewing, lighting and shading models, interpolation and averaging, ray tracing and intersection tracing with rays. Additional topics, covered in less depth, include texture mapping and color theory. Some aspects of animation, including quaternions, orientation, and inverse kinematics will also be covered. Prerequisite: CS 175.

CS 325 - Introduction to Game Design and Development 4 hrs.

The goal of this course is to introduce students to the topic of game programming and to apply and better their knowledge of C++ programming language. Many programming paradigms will be introduced or enhanced during this course, including image processing, controls structures, game loop and animation, and object-oriented approach to programming. Prerequisite: CS 175.

CS 335 - Computer Networks 3 hrs.

This course offers an introduction to computer networks and computer communications: architecture and protocols, Internet and intranet; design of protocols for error recovery, routing and congestion control; satellite networks, local area networks and distributed systems. Emphasis will be placed on group work with students required to participate in problem solving communications tasks. Web based activities will be an essential element in the conduct of this subject. Prerequisite: CS 185.

CS 338 - Internet Programming: Java 4 hrs.

This subject provides (i) an introduction to the Java language and some of its standard class libraries, (ii) experience with object-oriented design and implementation techniques, (iii) an understanding of the Internet and its importance to modern software systems. Topics will include: the Java language, subsets of Java class libraries (windowing, graphics, networking, threads), object-oriented design and implementation, Internet issues, basis of TCP/IP protocols, Web technologies, HTML and Java, CGI programming, introduction to security issues. Prerequisite: CS 175.

CS 341 - Programming Languages (C++, Prolog, Cobol) 4 hrs.

This course is a comparison of the characteristic of programming language paradigms. Data types, storage, binding, abstraction, and encapsulation are studied as a prelude to examining imperative, object-oriented, and functional programming paradigms. Concurrent and logic programming principles are also considered. Topics also include structured programming techniques, fundamentals of the CORBA/COBOL, control break processing, data validation, table processing, sequential file processing. Prerequisite: CS 185.

CS 371 - Database Design 4 hrs.

This subject investigates the process of relational, hierarchical and network database design starting from conceptual database design, through logical database design up to and including physical database design, tuning of database applications and administration. The topics include conceptual database design based on Object Modeling Technique/Unified Modeling Language, methodologies for conceptual design, view integration, logical database design, physical database design, storage allocation, indexing and clustering in relational databases, query processing and optimization techniques, transaction management, and database recovery techniques. Prerequisite: CS 185.

CS 392 - Software Engineering: UML 4 hrs.

Software Development is a difficult and challenging task. Apart from the most trivial of problems, the software development process is generally a collaborative rather than an individual effort. To manage the development of complex software artifacts, various principles and practices of software engineering have been formulated. Acquainting students with the principles and practices of managing the software development process is the primary aim of this subject. Prerequisite: CS 185.

CS 425 - Advanced Game Design and Development 4 hrs.

The goal of this course is to introduce students to advanced topics of game design and programming. The course will concentrate 3D games. In particular, the students will learn to simulate intelligence using steering algorithms and motivation engines; render using HLSL shaders; use advanced 3D techniques such as forward and inverse kinematics, subdivision surfaces, and radiosity lightning; manage scenes via portal rendering. Prerequisite: CS 185, 320, and 325.

CS 478 - Business Online 3 hrs.

This subject aims to provide students with an understanding of on-line business in the context of today's global business environment. This subject covers key areas of online business including: business-to-business and business-to-consumer relations, Internet commerce, EDI, standards, regulation and policy; principles and practices of on-line business; security; and social and economic issues. Prerequisite: CS 175 or permission of instructor. (Cross-listed as BS 478.)

CS 481 - Research Project or Professional Practice/Practicum 3 hrs.

Students who have demonstrated their interest in research activities may enroll for research project under the supervision of a consulting instructor. Professional practice can be an internship business practicum in appropriate institution or company. Prerequisite: CS 185.

CS 491 - Capstone Project 3 hrs.

A capstone course consisting of individual or group projects undertaken in collaboration with the instructor. This is an opportunity to integrate students' knowledge of the computer science curriculum by implementing a significant software system. It is required for the major. Prerequisite: Senior standing.