COMPUTER SCIENCE COURSES (CPSC)
110 Introduction to Computing (3)
Overview of the development of the electronic computer, its technology, capabilities, and limitations. Ethical and social issues are considered, as well as the role of computers in society. Introduction to the use of a range of useful microcomputer hardware and software. Extensive laboratory experience. Credit not allowed in both Computer Science 102 and 110. Prerequisites: UTC Placement Level 20 or Mathematics 106 with a grade of C or better.
111 Computer Information Systems II (3)
A study of the analysis, design, and implementation of business computer systems; system life cycle models; methods and techniques for systems development; advanced concepts in microcomputer application packages; introduction to a programming language such as BASIC. Prerequisite: CPSC 110.
118 Computer Programming with FORTRAN (3)
An introduction to the concepts and techniques of computer science. Emphasis is placed on the design of efficient algorithms using the FORTRAN language. Prerequisite: Mathematics 131 or 145.
150 Fundamentals of Computer Science (4)
An introduction to computer science concepts and computer software development using a higher level language. Algorithms, flowcharting, programming, and documentation of numerical and non-numerical problems. Introduction to computer science terminology and concepts such as computer hardware and computer application areas. Lecture 2 hours, laboratory 3 hours. Prerequisites: 4 years of college preparatory mathematics; UTC Math Placement Level 30 or Mathematics 131 or 144.
160 Data Structures and Program Design (4)
Continued development of programming style using abstract data structures and top-down design. Debugging and testing of large programs. Emphasis on algorithm development. List processing. Recursion. (Stacks, trees, searching and sorting.) Lecture 3 hours, laboratory 2 hours. Prerequisite: CPSC 150 with a grade of C or better and either Mathematics 145 with a grade of C or better or UTC Math Placement Level 40.
199r Special Projects (1-4)
Individual or group projects. On demand. Maximum credit 4 hours.
251 Introduction to Operating Systems (3)
Basic operating system principles, job control languages and operating system internals. The hardware/software interface; file systems; resource management; command languages; segmentation, paging and virtual memory; other virtual resources. Detailed examination of two or more current operating systems, such as Windows, UNIX or Novell NOS. Prerequisite: CPSC 160 with a grade of C or better. May be registered as CPEN 251. Credit not allowed in both CPSC 251 and CPEN 251.
261 Software Design and Development (3)
A study of the analysis, design and implementation phases of software systems development using a phased life cycle approach. Process, data and object oriented development models. Introduction to modeling tools and CASE software. Team approaches to software development. Project management concepts. Prerequisite: CPSC 160 with a grade of C or better. May be registered as CPEN 261. Credit not allowed in both CPSC 261 and CPEN 261.
305 Digital Logic and Introduction to Computer Hardware (4)
Number representation and arithmetic; basic digital devices and their Boolean representations; introduction to logic circuit design and simplification using Boolean algebra and Karnaugh maps; combinational logic building blocks such as multiplexers, demultiplexers, encoders, decoders, comparators, adders, ALUs; analysis and design of sequential logic circuits; sequential logic building blocks such as storage registers, shift registers and counters. Lecture 3 hours, laboratory 2 hours. Prerequisite: CPSC 150 with a grade of C or better and either Mathematics 145 with a grade of C or better or UTC Math Placement Level 40. May be registered as CPEN 305. Credit not allowed in both CPSC 305 and CPEN 305.
306 Computer System Organization and Assembly Language Programming (4)
Structure of digital computers; introduction to machine language, symbolic coding, and assembly language; register sets, instruction types, and addressing modes; assembler directives and macros; low-level input/output techniques; interrupts; procedure calls, returns, and stack operations; linking to high-level languages. Lecture 3 hours, laboratory 2 hours. Prerequisites: CPSC 160 and CPSC 305 or CPEN 305 with grades of C or better. May be registered as CPEN 306. Credit not allowed in both CPSC 306 and CPEN 306.
312 Algorithm Analysis and Advanced Data Structures (3)
A study of data structures and the algorithms used to process them. Algorithms for handling strings, stacks, lists, trees and graphs. Sorting and searching techniques. Recursive and non-recursive algorithms. Efficiency considerations. Spring and Summer semesters. Prerequisites: CPSC 261 or CPEN 261 and Mathematics 303 with grades of C or better.
335 File and Datbase Processing (3)
A study of sequential, direct, and indexed sequential files. File sorting and searching techniques. Data compression and data encryption. Database concepts. Introduction to the relational model. Prerequisite: CPSC 261 or CPEN 261 with grade of C or better.
351 Systems Programming (3)
Structure and design of programs whose inputs are programs. Assemblers, interpreters, compilers, loaders and supervisors. Introduction to formal programming languages, syntactic descriptions, symbolic functions and manipulations. Prerequisites: CPSC 261 or CPEN 261, CPSC 306 or CPEN 306, and Mathematics 303 with grades of C or better.
375 Principles of Information Security and Assurance (3)
This course focuses on information security, integrity and privacy techniques. Topics include the nature and challenges of computer security, the relationship between policy and security, the role and application of cryptography, the mechanisms used to implement policies, the methodologies and technologies for assurance and vulnerability analysis and intrusion detection. Prerequisite: CPSC 160 with a grade of C or better.
385 Ethical and Social Issues in Computing (3)
This course examines the ethical and social issues arising from advances in computer technology and the responsibility that computer professionals and users have with regard to computer use by focusing on the intrinsic link between ethics and the law, how both try to define the validity of human actions, and on the moral and ethical dilemmas created by computer technology that challenge the traditional ethical and moral concepts. Prerequisites: CPSC 110 or 150 and English 277 or 278 with grades of C or better.
410 Programming Languages (3)
The study of the structure, design, and implementation of computer programming languages, including procedural, object-oriented, logic programming, and functional languages. Topics include language syntax and semantics, procedure and data abstraction, binding times, exception processing, support for concurrency, and language programming paradigms. Prerequisites: CPSC or CPEN 251, and CPSC 312 with grades of C or better.
415 Biometrics and Cryptography (3)
This course covers the basic concepts of pattern recognition and biometrics, current major biometric technologies, and analyzes specific case studies from technical, privacy, and social impact viewpoints along with a critical study of the cryptographic protocols used in many security applications. Prerequisites: CPSC 160, 312, 375, and Mathematics 303 with grades of C or better.
420 Computer Graphics Applications and Algorithms (3)
Computer graphics systems, system software, data structures for graphics devices and display processors, representational algorithms and packaged graphics software. Prerequisite: CPSC 312 with grade of C or better.
426 Computer Networks (3)
The theory, design, engineering, and installation of networks to connect digital computers. The course will prepare students to plan and implement a network. Also includes peer-to-peer networks, the client-server model, network operating systems, and an introduction to wide-area networks. The network and implementation tools may vary to meet current development trends. Prerequisites: CPSC or CPEN 251, 305 with grades of C or better.