Computer Science options
CPSC 3121. Assembly Language Programming 1 (3-0-3) Prerequisite: CPSC 2105 with a grade of "C" or better. An introduction to assembly language for mainframes or PC's. Topics include machine architecture (registers, memory, instruction formats), character data processing, decimal arithmetic, binary arithmetic, subroutine and program linkage.
CPSC 3125. Operating Systems (3-0-3) Prerequisites: CPSC 2105 and CPSC 2108, both with grades of "C" or better. An introduction to basic operating system level software concepts. Course topics include processes, threads, symmetric multi-processing, thread synchronization and memory management techniques.
CPSC 3131. Database Systems 1 (3-0-3) Prerequisite: CPSC 1302 with a grade of "C" or better. The course covers the fundamentals of database systems. Topics to be covered include the following: file systems and database concepts, database models, relational database model, introduction to SQL, database design and implementation, database integrity, and normalization of database tables. Implementation techniques using commercial DBMS will be considered. The course includes lab work and individual database application programming projects.
CPSC 3165. Professionalism in Computing (3-0-3) Prerequisite: Junior or Senior Standing. The social impact, implications and effects of computers on society, and the responsibilities of computer professionals in directing the emerging technology. Includes the examinations of reliable, risk-free technologies, and systems which provide user friendly processes. Specific topics include an overview of the history of computing, computer applications and their impact, the computing profession, and the legal and ethical responsibilities of professionals.
CPSC 3175. Object-Oriented Design (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. An introduction to designing windows applications using object-oriented and component technologies. The emphasis of this course is in event-driven programming using controls and components to develop desktop windows applications. The primary focus of the course is on the full usage of the Object-Oriented Paradigm for problem-solving and software development using an object-oriented programming language and the Standard Object Modeling Language (UML).
CPSC 4000. Baccalaureate Survey (0-0-0) Satisfactory grade in this course indicates completion of the Field Test. Survey can be taken more than once. (S/U grading.)
CPSC 4175. Software Engineering (3-0-3) Prerequisites: CPSC 3175 with a grade of "C" or better. In this course, students are introduced to the basic principles of software engineering. The course focuses on the issues, methods and tools applied at every phase of the iterative development life cycle spanning from the conception of the actual requirements, through the analysis, design, development, testing, deployment and maintenance of the software product. Other subjects include project management and quality assurance. Students must complete a significant software project.
CPSC 4176. Senior Software Engineering Project (3-0-3) Prerequisite: CPSC 4175 with a "C" or better. The course encompasses a practical application of knowledge and skills mastered in the Computer Science curriculum through the development of a significant project. Students will apply a software engineering methodology in a team environment to develop a complex real-world application with an external customer under the guidance of instructor. Team members are involved in all phases of the software development life cycle.
CPSC 5115. Algorithm Analysis and Design (3-0-3) Prerequisites: CPSC 2108 and MATH 5125, both with grades of "C" or better. This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability.
CPSC 5128. Theory of Computation (3-0-3) Prerequisites: CPSC 5115 and MATH 5125, both with grades of "C" or better. This course provides an introduction to the theoretical foundations of computer science and formal models of computation. Topics will include basic set theory, a review of graph theory, formal languages, finite automata, computability, and undecidability. Computational complexity will be introduced and intuitively described.
CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. Emphasizes the run-time behavior of programs. Languages are studied from two points of view: (1) the fundamental elements of languages and their inclusion in commercially available systems; and, (2) the difference between implementations of common elements in languages.
CPSC 5155. Computer Architecture (3-0-3) Prerequisite: CPSC 3121 with a grade of "C" or better. Review of combinational and sequential logic. Description of computer memory. Study of the instruction set architecture and addressing modes of a simple computer. Design on the computer control unit including both hard-wired and microprogrammed CPU's. Design of Input/Output including program-controlled I/O, interrupted-driven I/O, direct memory access (DMA), and I/O channels.