Bachelors Degree in Computer Science

Click here to Download

Computer Science Courses (COSC)

1172 Think, Speak, and Write
The objective of this course is to give students experiences that convey the five main activities of a person working in the area of computer science: reading, listening, thinking, speaking, writing and cooperative interaction.
Designed for incoming freshmen.
Corequisite: COSC 1173 and COSC 1336.

1173 Programming Lab
Practical applications of concepts learned in Computer Science 1373 (COSC 1373). Hands-on instruction in programming in an object-oriented language, developing, debugging, and testing programming projects.
Corequisite: COSC 1172 and COSC 1336.

1174 Fund of Computing II Lab
Practical applications of concepts learned in COSC 1337. Hands-on instruction in programming in an object-oriented language, developing, debugging, and testing programming projects.
Prerequisite: COSC 1336 with grade of B or above and COSC 1173 with a grade of B or above.
Corequisite: COSC 1337.

1324 Intro to Computer Game Development
This course is an introduction to computer game development.  Topics include historical context, content creation methods, design, artwork, industry trends, production and game testing.  The course also covers how to use specific content creation software.  

1336 Programming Fund I
Introduces the fundamental concepts of object oriented programming. Topics include Objects, class, polymorphism, exception handling, inheritance and interfaces.
This course assumes computer literacy.
Corequisite: COSC 1172 and COSC 1173.

1337 Programming Fundamentals II
Explores in depth the topics covered in COSC 1336
Prerequisite: COSC 1336 with grade of B or above.
Corequisite: COSC 1174.

1371 Microcomputers
The objective of this course is to teach students to solve realistic problems using the most readily available “off-the-shelf” general applications software: word processing, spreadsheets and database systems. The course familiarizes the student with Internet resources. Students learn the basic components of computer systems and networks (This course may not be taken as a COSC/CPSC elective.)

2324 Mobile Computer Game Development
This course is an introduction to mobile game development.  Prior programming experience is required. Topics include graphics, audio, user interfaces and development tools.
Prerequisite: COSC 1337 with grade of B or above and COSC 1174 with a grade of B or above.

2336 Programming Fundamentals III
Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis.
Prerequisite: COSC 1337 with grade of B or above, COSC 1174 with a grade of B or above and MATH 2413.

2360 Career Development I
Student works full-time during the semester for an off-campus enterprise in work that exposes the student to a work environment similar to that which will be encountered upon graduation.
Prerequisite: COSC 2336 and approval of department chair.

2372 Computer Organization/Assembly Language
Basic computer architecture and assembly language programming. System software, including loaders and assemblers. Input-output devices and programming.
Prerequisite: COSC 1337 with a grade of B or above and COSC 1174 with a grade of B or above.

2375 Discrete Structures
This course presents the fundamental concepts in discrete structures needed for computer science. These include logic, functions, proof techniques, combinatorics, counting techniques, graphs and trees.
Prerequisite: MATH 2413.

2380 Career Development II
Student works full-time during the semester for an off-campus enterprise in work that exposes the student to a work environment similar to that which will be encountered upon graduation.
Prerequisite: COSC 2360 (Career Development I) and approval of department chair.
Prerequisite: COSC 1337.

3301 Special Language Topics
The study of the theory and applications of specialized computer languages and language packages. This course may be repeated for different languages and language packages. This course is an academic elective and will not be counted as a COSC/CPSC elective.
Prerequisite: Consent of instructor.

3302 Intro to Computer Theory
Preliminary review/introduction of the mathematics and logic for the course. Programs and computable functions, primitive recursive functions, the universal program, Turing machines and regular languages.
Prerequisite: COSC 1337 with a grade of B or above, COSC 1174 with a grade of B or above, COSC 2375 (or MATH2305), MATH 2414 and MATH 2318.

3304 Analysis and Design of Algorithms
Data structures including several varieties of lists, trees and graphs, as well as the design and analysis of algorithms that operate on these structures. Search and sort techniques and analysis of these algorithms.
Prerequisite: COSC 2336, COSC 2375 (or MATH 2305) and MATH 2413.

3306 UNIX/C++
Programming in C ++ in a UNIX environment.

3308 Survey of Programming Languages
The organization of programming languages, especially run-time behavior of programs; the formal study of programming language specification and analysis, and the continued development of problem solution and programming skills.
Prerequisite: COSC 2336 and COSC 2375 (or MATH 2305).

3321 ADV Microcp Apps
Hardware components, languages, operating systems, date file systems, utilities and software development for micro-computers.
Prerequisite: COSC 1371.

3325 Computer Law/Ethics
Ethical considerations for computer educators and computer scientists, and computer-related security and privacy issues. Copyright, patent, trademark and trade secret issues, venture capitalists, tax issues, computer torts, deceptive trade practices, computer crime, contract issues, constitutional issues and international trade considerations.
Prerequisite: COSC 1336 with a grade of B or above or COSC 1371 or another programming course.

3350 Career Development III
Student works full-time during the semester for an off-campus enterprise in work that exposes the student to a work environment similar to that which will be encountered upon graduation.
Prerequisite: COSC 2380 (Career Development II) and approval of department chair.

3370 Career Development IV
Student works full-time during the semester for an off-campus enterprise in work that exposes the student to a work environment similar to that which will be encountered upon graduation.
Prerequisite: COSC 3350 (Career Development III) and approval of department chair.

4101, 4201, 4301 Special Topics
An investigation into specialized areas of computer science under the guidance of a faculty member. This course may be repeated for credit when topics of investigation differ.

4272 Senior Assessment
Students take exam to measure performance against other seniors in a national standardized exam. In addition, they complete an EXIT survey, discuss job opportunities, the computer industry, and career management.

4302 Introduction to Operating Systems
Introduction to the major concept areas of operating systems principles develop an understanding of the organization and architecture of computer systems at the register-transfer and programming levels of system description and the inter-relationships between the operating system and the architecture of computer systems.
Prerequisite: COSC 2336 and COSC 2375 (or MATH 2305).

4307 Compiler Construction
Formal definition of programming languages, including specifications of syntax, semantics, statements and notations used in the construction of compilers, structure of translators and compilers.
Prerequisite: COSC 2336 and MATH 2314.

4309 Introduction to Simulation Techniques
Modeling of business and scientific discrete-even processes. Random number generation techniques, Monte-Carlo simulation, discrete-event and unit time advance algorithms, queuing theory and stochastic models. Introduction to systems simulation and industrial dynamics. Programming assignments in C++ and specialized programming languages for simulation (GPSS, SIMSCRIPT, SIMULA).
Prerequisite: COSC 2336, MATH 2413 and MATH 1342 or MATH 3370.

4310 Computer Architecture
This course is an introduction to computer architecture, with a special focus on the principles behind contemporary uniprocessor design. It will explore the interaction of hardware and software, and consider the efficient use of hardware to achieve high performance. Topics will include instruction set architecture, computer arithmetic, processor design, performance measurement and analysis, pipelining, caches and virtual memory, high performance MIPS implementation, parallel processors, and design tradeoffs among cost, performance and complexity.
Prerequisite: COSC 2372.

4319 Computer Graphics
Basic principles for the design, use and understanding of graphics systems. Design and implementation of graphics software packages, applications and algorithms for creating and manipulating graphic displays.
Prerequisite: COSC 2336 and MATH 2318.

4322* Internet Programming
This course introduced students to the principles behind the design and programming of World Wide Web programming, XHTML scripting, event modeling, CGI, multimedia, XML, and database server software are among the topics presented.
Prerequisite: COSC 2336.

4324 Computer Game Development I
This course introduces techniques for 3D game development with an emphasis on programming.  Content creation methodologies are also covered.
Prerequisite: COSC 2336.

4325 Computer Game Development II
A continuation of COSC 4324 with an emphasis on advanced techniques for 3D game development including indoor rendering, animation techniques and networking.
Prerequisite: COSC 4324.

4345* Computer Systems Security
Topics covered include techniques for achieving security in multi-user computer systems and distributed systems, cryptography, intrusion detection, formal models of computer security, electronic mail, and electronic commerce.
Prerequisite: COSC 2336.

Computer Information Sciences Courses (CPSC)

3350 3D Modeling for Computer Graphics
This introductory course in three-dimensional (3D) modeling covers techniques for creating content designed for use in real-time computer graphics applications using appropriate software with particular emphasis on computer games. Topics include mathematical foundations, 3D file formats, creation and modification of 3D geometric shapes, surface texturing, lighting, rendering and a survey of current software tools and techniques. The minimum passing grade is ‘C’.
Prerequisite: COSC 2336.

3355 3D Animation for Computer Graphics
This introductory course in three-dimensional (3D) animation covers techniques for programming in C++ and creating content designed for use in real-time computer graphics applications using appropriate software with particular emphasis on computer games and character animation. Topics include rigid versus non-rigid body animation, skeletal techniques, morphing, kinematics, animation blending, key framing, timecoding, motion capture, lip sync, synchronization methods, file formats and a survey of current software tools and techniques. The minimum passing grade is ‘C’.
Prerequisite: COSC 2336

4315 Network Systems Administration
Topics include system security, shell programming, setting up user accounts, system configuration, system startup, management of file systems and disks, and backup and restore operations.
Prerequisite: COSC 2336

4317 Computer Networks
Study of problems and limitations associated with interconnecting computers by communication networks. Network architecture, signals, message and packet switching networks, network topology, routing, flow control, capacity assignment, protocols, coding and multiplexing.
Prerequisite: COSC 2336, MATH 2413.

4320 Advanced Topics in Networks
Topics will change to keep pace with changes in the field. The course will include topics from personal communication systems, mobile computing, gigabit network protocols, routing, optical computing, and multimedia.
Prerequisite: CPSC 3320.

4326 Android Programming
This is an introductory course in Android programming.  Topics include history of Android, hardware, development tools, text-based applications, multi-media applications, accessing the Internet from an application, and user interface design.  Minimum passing grade: ‘C’.
Prerequisite: COSC 2336.

4327 Advanced Android Programming
This is an advanced course in Android programming. Topics include design, marketing, custom Views, 3D graphics, SMS, text-to-speech, advanced application preferences, View animation, background processing and network programming.
Prerequisite: CPSC 4326.

4330 Multimedia Processing
Television style viewing and sound interfacing to computer systems. Software and architectural interconnection requirements of digital interactive video and audio technology, graphical user interface. Definition, examples, application, review of major implementations, and architecture of hypertext systems. Voice technology: synthesis, recognition and response. Student projects.
Prerequisite: COSC 2336.

4340 Database Design
Logical and physical database system organization; logical models; design issues; secondary storage considerations. Design issues emphasizing the normal decomposition theory of the n-ary relational data model, the RM/T model and an introduction to logical implementations of databases.
Prerequisite: COSC 3304, COSC 2336 and MATH 2318.

4360 Software Engineering
Systems analysis, software requirements analysis and definition, specification techniques, software design methodologies, performance measurement, validation and verification and quality assurance techniques.
Prerequisite: COSC 2336 and 2375 (or MATH 2305).

4370 Introduction to Artificial Intelligence
Introduction to concepts and ideas in artificial intelligence. Topics include search techniques, knowledge representation, control strategies and advanced problem-solving architecture.
Prerequisite: COSC 2336 and 2375 (or MATH 2305).