Computer Science

Associate Professors: M. Entwistle, S. Shum,
Instructor: S. Gray

The underlying goal of the Department of Computer Science is to offer up-to-date, quality instruction in its undergraduate programs to support careers in business, science, government, and industry, and to provide a strong foundation for graduate study in computer science. In support of these goals, a curriculum has been developed which: 1) provides coherent, broad-based coverage of the computing discipline; 2) prepares students to apply their knowledge to solving constrained problems, which includes the ability to define a problem clearly, to specify, design, implement, test, modify, document solutions, and to work within a team environment throughout the problem solving process; 3) offers sufficient exposure to the rich body of theory that underlies the field of computing; and 4) makes available an environment in which students are exposed to the ethical and social issues associated with the computing field.

The computer science department offers majors and minors in both Computer Science and in Computer Information Systems (CIS). The Computer Science major provides the strongest mathematical and scientific background. It is recommended for students who intend to pursue graduate studies or to seek employment involving the technical or scientific application of computing. The CIS major deals more with the business and human aspects of computing. It has fewer science and mathematics requirements, but has additional requirements for courses in Business Administration. A minor in Computer Science and a minor in CIS are available to students who choose to concentrate their studies in an affiliated area.
Courses are included in the curriculum to support the general department goals and the detailed program goals. In addition, several courses are offered to provide the necessary basic knowledge of computer technology and computer programming for those students wishing to use the computer as a tool for study and research in other disciplines.

Computer Science Major:

44-45 credit hours
Required Courses: 35 credit hours
COSC 130 — Ethical Issues in Technology (3 cr)
COSC 210 — Computer Science I (4 cr)
COSC 211 — Computer Science II (4 cr)
COSC 235 — Computer Organization (4 cr)
COSC 236 — Computer Architecture and Assembly Language (3 cr)
COSC 260 — Computer Science III (3 cr)
COSC 330 — Theory of Computation (3 cr)
COSC 350 — Software Engineering (3 cr)
COSC — Elective courses (200 or higher) (5 cr)

One course from the following:
COSC 310 — Operating Systems (3 cr)
COSC 320 — Computer Graphics (3 cr)
COSC 360 — Computer Networks (3 cr)
COSC 370 — Parallel Processing (3 cr)
COSC 380 — Artificial Intelligence and Robotics (3 cr)
COSC 397 — Topics in Computer Science (4 cr)

Required Supportive Courses: 10-11 credit hours
MATH 151 — Calculus I (4 cr)
MATH 320 — Discrete Structures (3 cr)
MATH 315 — Probability and Statistics (3 cr)
–or– ECON 270 — Statistics (4 cr)

Computer Science Minor:

18 credit hours
COSC 210 — Computer Science I (4 cr)
COSC 211 — Computer Science II (4 cr)
COSC 235 — Computer Organization (4 cr)
COSC — Elective courses (200 or higher*) (5 cr)
*No more than 3 credits may be taken from COSC 221, COSC 241 and COSC 342.

Computer Science Courses:

COSC 104 Advanced Word Processing (1 credit)
COSC 105 Advanced Spreadsheet Application Software (1 credit)
COSC 106 Advanced Database Application Software (1 credit)
COSC 107 Advanced Power Point (1 credit)
COSC 120 Web Page Design (1 credit)

COSC 130 Ethical Issues in Technology (3 credits) (Area 2.1B and Area 3.3)
The purpose of this course is to help students reflect upon the vexing ethical dilemmas and problems emerging in the information age. Legal issues involving current computer law will be discussed. Students are required to research a current topic in information ethics and present their findings to the class. Offered Every Spring Semester.

COSC 205 Management Information Systems I (3 credits)
This course provides an introduction to computer fundamentals and information systems. Topics include basic information systems components, database systems, decision support systems, and computer security considerations. The use of appropriate software packages will be included as lab assignments. Cross-Listed with BSAD 205; Offered Every Semester.

COSC 210 Computer Science I (4 credits)
An introduction to computer science, which include topics such as software engineering, computer architecture, and programming languages. Emphasis on learning the styles, techniques, and methodologies necessary to design and develop readable and efficient programs.  Offered Every Fall Semester.

COSC 211 Computer Science II (4 credits)
A broadening of foundations for computer science with advanced concepts in software engineering and program development. Topics include an introduction to data structures, analysis of algorithms, and object-oriented design.  Prerequisite: COSC 210; Offered Every Spring Semester.

COSC 215 Fundamentals of Database Processing (3 credits)
This course will acquaint students with applications and the logical structure of database management systems and database processing. Discussion of database systems and design of special projects utilizing different query and other high-level programming languages reinforces the theoretical concepts.  Prerequisite: COSC 210; Recommended: COSC 211; Offered Most Fall Semesters.

COSC 221 COBOL and Business Data Processing (3 credits)
This course stresses application of computer software to management and commercial areas using COBOL as the primary programming language. Applications will be to particular problems in business and management. Topics include; sequential, indexed sequential and relative file processing techniques within a business environment. The structured design and implementation of the programming projects utilize file creation, editing and updating concepts.  Prerequisite: COSC 210; Offered Most Spring Semesters.

COSC 225Web Programming (3 credits)
This course is designed to provide a guide for programmers to develop web applications using popular web programming languages such as JavaScript and Perl. Web pages created using basic HTML are static. We will learn how to use web programming languages to bring web pages to life by adding dynamic content such as scrolling messages, animation, data input forums and interactive quizzes. We will discuss how to maintain and process clients’ information using cookies and server-side processing.  Prerequisite: COSC 211; Offered Occasionally.

COSC 226 C++ Programming (3 credits)
This course provides an overview of the C++ programming language.  Prerequisite: COSC 211; Offered Most Spring Semesters.

COSC 235 Computer Organization (4 credits)
This course is designed to provide students with an introduction to the organization and architecture of digital computer systems. Topics include number systems, binary arithmetic, Boolean algebra, combinatorial and sequential logic circuits, and computer system components and their interrelationships. This course consists of both a lecture and a lab portion of hands-on hardware manipulation.  Cross-Listed with PHYS 235; Prerequisite COSC 211; Offered Every Fall Semester.

COSC 236 Computer Architecture and Assembly Language (3 credits)
This course offers an introduction to machine- and assembly-language programming and how they relate to computer architecture. Students will be provided with an understanding of what the computer is doing at the machine language level. This understanding will enable a better understanding of the features and limitations of all computer facilities, since all systems eventually rest on their underlying hardware.  Prerequisite: COSC 235; Offered Every Spring Semester.

COSC 241 Management Information Systems II (3 credits)
This course provides an introduction to the analysis and design of business information systems. Concentrates on the analysis phase of systems development. Covers systems development life cycle, feasibility studies, analysis of user requirements, and development of logical system models.  Prerequisite: BSAD 205 or COSC 210; Cross-Listed with COSC 241; Offered Most Fall Semesters.

COSC 260 Computer Science III (3 credits)
This course investigates various representations for several advanced data structures as well as compares and analyzes various algorithms for manipulating such data structures. Data structures examined include stack, queue, list, tree, and graph. Algorithms for sorting, searching, and memory management will also be examined.
Prerequisite: COSC 211; Offered Every Fall Semester.

COSC 270 Network Administration (3 credits)
Network administration is one of the fastest growing fields in information technology. This course is designed to provide you with a thorough grounding in various networking systems, including hands-on activities in installation, configuration, and administration of local area networks. Prerequisite: COSC 236; Offered Occasionally.

COSC 310 Operating Systems (3 credits)
This course provides an introduction to fundamental operating systems concepts. Topics include the process model of computation and concurrent processes, inter-process communication and synchronization, process scheduling, deadlock, memory management, paging and segmentation, and file systems.  Prerequisites: COSC 236 and 260; Offered Occasionally.

COSC 315 Business Intelligence (3 credits)
Business intelligence is the use of information systems to inform managerial decisions. Businesses today have access to data in unprecedented volume, but often lack the expertise to leverage data for competitive advantage. In addition, companies often miss opportunities to guide strategic decision making because they do not gather or track the correct metrics. This course provides students with the skills to gather, analyze, and transform data into meaningful information. Cross listed with BSAD 315; Offered every other year.

COSC 320 Computer Graphics (3 credits)
This course provides an introduction to the fundamentals of interactive computer graphics. Topics include graphics hardware, fundamental algorithms, two-and three-dimensional imaging geometry and transformations, curve and surface design, rendering, shading, color, and animation. Prerequisite: COSC 236 and 260; Offered Occasionally.

COSC 327 Advanced Data Structures (3 credits)
The fundamentals of data structures will be studied from an object-oriented perspective. Data structures discussed will include linked lists, stacks, queues, tress, sets, maps, hash tables, heaps and graphs. Concepts such as genetic types, iterators, file compression and dynamic programming will also be addressed.  Offered Occasionally.

COSC 330 Theory of Computation (3 credits)
This course offers an introduction to the foundations of computing. Topics include different models of computation such as finite automata, push-down automata, Turing Machines, and regular expressions; grammars and parsing techniques; solvable and unsolvable problems; and P and NP complexity classes.  Prerequisites: COSC 236, COSC 260, and MATH 321; Offered Most Years.

COSC 342 Project Management (W - Area 2.1B) (3 credits)
This course provides students with a hands-on experience in applying project management and systems analysis, design and implementation. Students will work with local business professionals in the design and delivery of a project. Prerequisites: BSAD 241; Cross-Listed With BSAD 342; Offered Most Spring Semesters.

COSC 350 Software Engineering (3 credits)
This course is designed to teach the full-fledged software development cycle, with a team project utilizing CASE tools. Topics include testing and validation, metrics and complexity, software reliability and fault tolerance. Prerequisites: COSC 236 and 260; Offered Most Years.

COSC 360 Computer Networks (3 credits)
The objective of this course is to teach the student the basic principles involved in the design and operation of computer networks. Topics include computer network architectures and models, physical media and signaling, data link protocols, medium access control, routing and IP, transport services including TCP/UDP, network applications, local-area and wide-area networks. The course will consist of both a lecture portion and a hands-on laboratory.  Prerequisites: COSC 236 and 260; Offered Occasionally.

COSC 370 Parallel Processing (3 credits)
The course introduces students to the history of parallel computing and the most recent developments and trends. The course covers architectures, systems software, languages and user-level software, and performance evaluation. Topics include speedup and scalability, MIMD architectures, SIMD architectures, shared-memory multi-processors, interconnection networks, data flow architectures, workstation clusters, synchronization and communication, memory and address space management, cache coherence, process management and scheduling, parallel languages and compiler techniques, parallel programming environments and tools.   Prerequisites: COSC 236 and 260; Offered Occasionally.

COSC 380 Artificial Intelligence and Robotics (4 credits)
This course introduces the student to various aspects of artificial intelligence (AI), whose goals are the creation of more useful machines by making them more “intelligent.” Topics include symbolic programming, representation and logic, search, learning, planning, uncertainty, image processing, natural language processing, genetic algorithms. Techniques learned are applied in a robotics laboratory to the control and manipulation of a mobile robot.  Prerequisites: COSC 236 and 260; Offered Occasionally.

COSC 395, 495 Internship (2-4 credits)

COSC 197, 297, 397 Topics in Computer Science (2-4 credits)

COSC 199, 299, 399 Independent Study (2-4 credits)