Course Descriptions

101 Johnson EPS Building

Martin, TN 38238


(731) 881-7391


(731) 881-7383


Edward Wheeler, Chair

Course Descriptions

NOTE: Click course name for description.


CSCI 220 - Introduction To Computer Science

(3) An introduction to the field of computer science and a survey of computing-related topics intended for computer science majors who are not ready for CSCI 221, and non-majors in related engineering fields and other scientific and technical disciplines. Topics include the history of the discipline, programming in a modern high-level language, lower-level languages, digital logic, computer architecture, operating systems, and software applications.

CSCI 221 - Programming Concepts and Problem Solving I

(3) Computer history, problem solving algorithms, control structures, representation of data. Introductory programming in the C++ language. Intended for computer science majors. Prereq: placement in OR completion of MATH 110 or MATH 140 or above, OR Grade of C or better in CSCI 220.

CSCI 222 - Programming Concepts and Problem Solving II

(3) A programming intensive continuation of CSCI 221 For computer science majors. Non-computer science majors may be admitted with departmental approval. May be used as one of the programming language requirements for a minor in computer science. Prereq: Grade of C or better in CSCI 221. (F, Sp)

CSCI 290 – Lower Division Special Topics:

(1-3) Lectures and/or special projects related to various specialized topics. Possible topics include programming languages, operating systems, and additional software packages. May be offered on a pass/fail basis. Prereq: Departmental approval required. Repeatability: Course may be repeated for a maximum of six (6) hours credit.

CSCI 301 - Discrete Structures for Computer Science I

(3) Applications of mathematics fundamental to the science and technology of computer science, providing an appropriate theoretical background for advanced courses. Topics include: propositional logic, predicate logic and quantified statements, proof techniques, sequences, recursion, and set theory. Prereq: CSCI 221 AND completion of MATH 170 or MATH 185 or coreq of MATH 251.

CSCI 302 - Discrete Structures for Computer Science II

A continuation of CSCI 301. Applications of mathematics fundamental to the science and technology of Computer Science. Topics include functions, relations, counting and combinatorics, probability, graphs, trees, basic algorithm analysis, regular expressions, and finite-state automata. (S) Prereq: CSCI 301 or permission of instructor

CSCI 310 – System Administration

(3) Introduction to tools and techniques related to system administration. Command line tools, scripting, network administration, routing, security, user administration, and application support.

CSCI 320 - Assembler Language and Computer System Organization

(3) Structure of digital computers, introduction to machine language, number representations, symbolic coding and assembler language, register sets, instruction types, addressing modes, input-output subroutines, segmentation, paging and introduction to operating systems. Prereq: CSCI 222. (F)

CSCI 325 - Data Structures and Algorithms

(3) Detailed study of data structures and their implementations. Strings, lists, queues, stacks, graphs, trees, sparse arrays, and file structures. Algorithms involving iteration, recursion, sorting, searching, hashing and basic complexity analysis. Prereq: CSCI 222.

CSCI 335 - Mobile Platform Development

(3) Advanced programming techniques for mobile platforms such as smart-phones and tablets using an object-oriented language. Topics include: exception handling, graphics objects, graphical user interfaces, touch interfaces, mobile software development kits, sensor input (accelerometer, gyro, GPS, etc.), and multimedia. Prereq: CSCI 325.

CSCI 340 - Numerical Analysis

(3) Formulation of numerical problems for solution on a digital computer. Error analysis and control, nonlinear equations, differentiation, integration, systems of equations, differential equations, curve fitting and eigenvalue problems. Prereq: CSCI 221 and MATH 252; CSCI 301 or MATH 310. (Same as MATH 340/540.) (as needed)

CSCI 352 Software Engineering

(3) Techniques, methodologies, and tools related to the planning, development, and maintenance of large software systems in a contemporary development setting. Focus on team-based development practices. Prereq: CSCI 222.

CSCI 360 - Introduction to Computer Networks

(3) Fundamentals of networking connectivity and communications. Local and wide area network basics, networking architecture, layers, and standards. Network protocols including TCP/IP family of protocols. Socket based, client-server programming techniques and projects. Prereq: CSCI 325.

CSCI 380 - Artificial Intelligence

(3) History, intelligent agents, classical search, game-playing, declarative programming, reasoning under uncertainty, and planning. Programming assignments will incorporate techniques covered in lecture and programming in languages appropriate to A.I. Prereq: CSCI 302 and 325.

CSCI 385 - Parallel Computing

(3) Introduction to Fundamentals of Parallelism, Parallel computation models which include parallel algorithms and parallel architectures, performance and scalability of parallel systems, parallel algorithms and programming for well known numerical problems. Prereq: CSCI 222 or 226. (as needed)

CSCI 410 - Data Base Management Systems

(3) Design and implementation of relational database systems. Topics include SQL programming, normalization, security, integrity, and administration. Prereq: CSCI 325.

CSCI 415 - Web-Based Client-Server Programming

(3) Design and implementation of interactive client-server web based applications and systems. Topics include client technologies, web server technologies, database storage, communication protocols, design patterns, and security. Prereq: CSCI 325.

CSCI 420 - Computer Organization and Architecture

(3) A study of the organization of modern computer systems, memory organization and management features, virtual memory systems, interrupt services, hardware and software equivalency, RISC and CISC instruction sets, software/hardware equivalence, multiple architectures, and concurrency in computation. Data Representation, Boolean Algebra and Digital Logic, Instruction Processing, Machine Language and Assembly Language. Prereq: CSCI 325

CSCI 435 Algorithm Analysis and Automata Theory

(3) Topics related to algorithm analysis, complexity, and classical models of computation. Topics include Complexity analysis of algorithms, complexity classes (P, NP, and NP-complete, regular expressions, grammars, finite state machines, and Turing machines. Prereq: CSCI 302 and 325.

CSCI 445 - Computer Graphics

(3) Frame buffers, display files, graphics primitives, transformations of two-dimensional spaces, windows, viewports, clipping, covering, transformations of three-dimensional space, parallel and perspective projections, stereoscopic views, hidden line algorithms. Prereq: CSCI 325 AND MATH 310.

CSCI 470 - Organization of Programming Languages

(3) Syntax and basic characteristics of grammars, language constructs, storage allocation, binding times, and lexical analysis of programming languages. Families of programming languages studied include imperative (procedural), object oriented, functional, and logical languages. Prereq: CSCI 302, CSCI 325.

CSCI 475 - Compilers, Interpreters and Language Translators

Translators (3) Theory of compilable languages, construction of software for compiling, interpreting and translating computer languages. Study of various types of translators, implementation of a translator for a language. Prereq: CSCI 302 and 325.

CSCI 485 - Computer Operating Systems

(3) A study of operating systems, processing of l/O and interrupt service, buffering, spooling and memory management services, security and error protection, systems accounting and resource allocation, multi-programming and multi-processing, inter-process communication, includes the study and use of several operating systems. Prereq: CSCI 325.

CSCI 495 Senior Design Project

(3) Selected topics in computer science including trends, ethics, employment, and graduate school opportunities. Small teams will complete senior design projects. Teams will present results at a local conference and summarize work in a technical report. Prereq: CSCI 302 and 325, computer science major, senior standing, and permission of department faculty.

About Computer Science

Learn about the mission and goals of our Computer Science program.

Learn More >