COMPUTER SCIENCE - UGCatalog - University of Memphis

Learn About the Admissions Process

Learn how to apply for admission to the UofM.

Schedule a Visit

Tours offered weekdays at 9:30 am & 1:30 pm.

True Blue Tiger

We want YOU to be a Tiger.

Scholarships and Financial Aid

Apply for assistance and academic scholarships.

Undergraduate Applications

Spring Deadline: Dec 15

Get an early start on your application.

Graduate Applications

Step Up: Start a Masters or PhD today.

Law Applications

Fall 2016 Deadline: Mar 16

Experience Memphis Law.

International Applications

Spring Deadline: Dec 15

Receive a world-class education.

"Being the first one in my family to attend college."

Photo of Lucas Keenan Hefner


Register for classes or edit your schedule.

Student Services

Experience college life beyond the classroom.

Student Organizations

Get engaged. Get involved. Experience more.

Majors and Minors

Find your calling with over 50 degree programs.

Course Schedule

View class offerings for the current and upcoming terms.

Academic Calendars

Mark your calendar for start days, breaks and final exams.

Academic Support Services

Improve your academic success.

Lambuth Campus

Advancing the University's mission in West Tennessee.

"To work with a non-profit organization that will allow me to utilize my servant leadership skills and caring ability to further enhance the socioeconomic needs of both domestic and foreign citizens."

Photo of Jade L. Anderson

eNews and Signup

Stay up-to-date with the UofM.

Parent and Family Events

Join us for events held just for you!


Have a question? We have answers!

Connect With Us

We are here to help you help your student.

Scholarships & Financial Aid

We can help your student attend the UofM.

Student Services

Resources to help your student succeed.

Campus Card

Add money to your student's card for books and food.

Give to UofM

Your gift to the Parent Fund makes the UofM a better place.

"Being the first one in my family to attend college."

Photo of Lucas Keenan Hefner

Join Now

Be True Blue and join the Alumni Association.

Update Your Information

Receive University updates and the Memphis magazine.

Clubs and Chapters

Get involved and stay connected to the UofM.

Make a Gift

Your contribution can make a difference.

Lambuth Chapter

Lambuth Graduates: Reconnect with fellow alumni.

Upcoming Events

Mark your calendar for these upcoming events.

Photo Gallery

View annual collections of the Alumni Association Photo Gallery.


Stay up-to-date with Memphis Matters.

"Most proud of my accomplishment of graduating with a degree in accounting in three years with Summa Cum Laude and Honors."

Photo of Rachel Prince

Veterans Resource Center

Supporting the transition from military life to civilian life.

Veterans Benefits and Certifications

Learn about Veterans Educational Benefits and Certifications.

Get Credits Toward your Degree

Receive college credit for military experience, skills, and training.

Online Degree Programs

Top provider of more than 50 online degree programs.

Computer Science

Department of Computer Science
Dipankar Dasgupta , Interim Chair
Lan Wang , Associate chair

Room 375, Dunn Hall

In addition to the courses below, the department may offer the following Special Topics courses:
COMP 4990-99. Topics in Computer Science. (1-3). Topics are varied and in online class listings. PREREQUISITE: permission of instructor.

COMP 1100 - Intro Video Game Programming (3)
Introduction to basic programming in the context of building two dimensional (2D) games using the GameMaker 2D game engine. Students will complete stand-alone executable games that can be played with friends and added to their digital portfolios. Windows laptop computer required.

COMP 1800 - Problem Solving/Computers (3)
Fundamental aspects of problem solving within the context of computer programming; techniques for deriving problem solutions and use of basic programming concepts such as loops, conditionals, and variables; basics of high-level programming language. NOTE: this course may not be used as a COMP elective to fulfill the requirements of the major or minor in Computer Science. (F, Sp)

COMP 1900 - CS1:Intro Comp Science (4)
(TBR: CISP 1010). Overview of computer science as a field; problem-solving strategies with emphasis in fundamental programming skills, primitive data types, control structures, arrays, strings, I/O, basic recursion, documentation, testing and debugging techniques; introduction to object-oriented concepts.Three lecture hours, two laboratory hours per week. PREREQUISITE or COREQUISITE: MATH 1910 or MATH 1421 (or MATH 1830 for COMP minors) . (F, Sp, Su)

COMP 1950 - Ethics and Professional Dev (3)
Ethical and leadership issues for computing professionals including general moral imperatives, specific professional responsibilities, organizational leadership imperative and compliance.

COMP 2150 - CS2: OOP and Data Structures (4)
Principles of object-oriented programming and software development; problem solving with recursion and abstract data types, including linked lists, stacks, queues, binary search trees, hash tables; basic GUIs. PREREQUISITE: MATH 1910 or MATH 1421 (or MATH 1830 for COMP minors) and COMP 1900. COREQUISITE: COMP 2700. (F, Sp, Su)

COMP 2700 - Discrete Structures (4)
Elementary logic; sets, relations, functions, equivalence relations, permutation, combinations, mathematical induction, recurrence relations, graph algorithms. NOTE: students may not receive credit for both COMP 2700 and MATH 2702. PREREQUISITE: MATH 1910 or MATH 1421 (or MATH 1830 for COMP minors), and COMP 1900. (F, SP)

COMP 3115 - Database Process and Design (3)
(4115). Database processing and architecture; conceptual data modeling and data design; logical data models; relational models, operations and algebra; query languages and SQL; normalization and schema refinement; basic indexing techniques (hashing and B+trees). PREREQUISITE: COMP 2150, or permission of instructor. (F)

COMP 3150 - Programming in C/C++ (3)
Introduction to C/C++; software development environments; primitive data types, pointer, reference, struct; user defined structures; memory management; control statements; function; file I/O; introduction to object-oriented programming; C++ class; input and output with streams; inheritance, overriding, polymorphism; Standard Template Library. PREREQUISITE: COMP 2150, or permission of instructor.

COMP 3160 - Adv Data Struct/Algorithm (3)
Review of data structures and object-oriented concepts; implementation of advanced data structures and related algorithms; graphs; trees, binary search trees; advanced sorting, hashing. PREREQUISITE: COMP 2150, COMP 2700. (F, Sp, Su)

COMP 3410 - Computer Org/Architecture (4)
Basic concepts in assembly language programming, including logic, comparing and branching, interrupts, macros, procedures, arrays, program design, testing, debugging, loading, and linking; combinational, arithmetic and logical circuits ALU; memory circuits, latches, flip-flops, registers; computer structure; fetch-execute cycles, clocks and timing; microprogramming and microarchitecture; data path, timing, sequencing; cache memory organization; RISC architectures. PREREQUISITE: COMP 2150. (Sp)

COMP 3825 - Network/Info Assurance (3)
Net-centric computing; communication and networking; world-wide web; multimedia networking; network management; basic issues in computer security; threat modeling; basic methods and protocols in cryptography; web security; security; security policies; etiquette and cyberethics. PREREQUISITE: MATH 4614 or permission of instructor, (F, Sp)

COMP 4001 - Computer Programming (3)
Basic concepts in computer programming; incorporates object oriented concepts, variables, flow control statement, arrays and lists, debugging and testing. NOTE: This course may not be used to fulfill requirements for the Computer Science major or Computer Science minor. PREREQUISITE: MATH 1710 or MATH 1910 or MATH 1421 or permission of instructor. (F, Sp)

COMP 4005 - Web Design/Development (3)
Web interface development using HTML, XML, CSS, JavaScript, and AJAX ; technological issues in web page design and data visualization; web servers and their features; web services. NOTE: This course may not be used to fulfill requirements for the Computer Science major or Computer Science minor. PREREQUISITE: COMP 4001, or one other course in computer programming, or permission of instructor. (F, Sp)

COMP 4014 - Intro Java Programming (3)
Java problem-solving strategies with emphasis in fundamental programming skills, primitive data types, control structures, arrays, strings, I/O, basic recursion, documentation, testing and debugging techniques; introduction to object-oriented concepts. NOTE: this course may not be used to fulfill requirements for the Computer Science major or Computer Science minor. (F, Sp)

COMP 4030 - Design/Analysis Algorithms (3)
Asymptotic behavior of programs, basic paradigms in algorithm design; greedy, divide-and-conquer, dynamic programming; analysis of efficiency and optimality of representative algorithms, including graph, pattern matching, numerical, randomized, and approximation algorithms; approaches to lower bound analysis; basic parallel algorithms. PREREQUISITE: COMP 2700, or permission of instructor. (F, Sp)

COMP 4040 - Programming Languages (3)
Comparative features, syntax and applicability of high-level programming languages such as FORTRAN, PASCAL, LISP, Scheme, ADA, C, C++, JAVA, PHP, JavaScript, Perl, Prolog, FORTH; data types, data structures, dataflow; procedures, recursion, runtime environment, string manipulation, list processing, array processing, documentation, programming style. PREREQUISITE: COMP 2150, or permission of instructor. (F, Sp)

COMP 4041 - Intro To Compilers (3)
Finite state recognizers, lexical scanners, symbol tables context free methods such as recursive descent; LL(K), precedence, LR(K), SLR(K); language translation, generation and improvement of machine independent codes, inherited and synthesized attributes, syntax-directed translation schema. PREREQUISITE: COMP 3410, 4040, 4030. (Sp)

COMP 4081 - Software Engineering (3)
(Same as EECE 4081). Scope of software engineering; software life cycle models; software process; team organization; requirements analysis and design methodologies; metrics, inspections, testing strategies and maintenance; software risks; professional and ethical responsibilities. Computer Science majors should plan to take COMP 4882 during the following spring semester. It is recommended that students take COMP 3115 before taking this course. PREREQUISITE: COMP 2150, permission of instructor. (F)

COMP 4118 - Introduction to Data Mining (3)
an introductory exploration of data mining. Topics include data preparation and preprocessing; association rules; classification; clustering; dimension reduction; recommendation engines; mining social network graphs. PREREQUISITE: COMP 2150 or permission of instructor.

COMP 4242 - Intro Computer Graphics (3)
Characteristics of graphics I/O devices; 2D/3D transformation including scaling, translation and rotation; graphics pipeline; data structures for graphics; geometry representation; OpenGL progrmming; vertex processing; lighting and shading; rasterization including line and polygon drawing; ray casting; ray tracing; computer graphics in games; visualization. PREREQUISITE: COMP 3150 and MATH 3242, or permission of instructor.

COMP 4270 - Operating Systems (3)
Hierarchy of storage devices, I/O buffering, interrupts, channels; multiprogramming, processor and job scheduling, memory management: paging, segmentation, and virtual memory; management of asynchronous processes; interrupt procedure calls, process stateword and automatic switch instructions, semaphores, concurrency; security and recovery procedures. PREREQUISITE: COMP 2150, and either COMP 3410 or EECE 4278, or permission of instructor. (F, Sp)

COMP 4272 - System Admin and Unix Prog (3)
Fundamental of UNIX and operating systems principles; principles and practices of systems administration and management; network file systems; account management; OS installation; startup and shutdown, booting, backup, restore; system administration tools; web administration; duties and responsibilities of a system administrator. PREREQUISITE: COMP 4270, or permission of instructor. (Sp)

COMP 4302 - Web Service/Internet (3)
Design and implementation of web services; internet architecture and protocol layering; client-server application design; peer-peer application design; World Wide Web programming using HTML, XML, Java and advanced scripting languages; security issues. PREREQUISITE: COMP 3115, or permission of instructor. (Sp)

COMP 4310 - Wireless Mobile Comp (3)
Internet architecture and design; IPv4 and IPv6 ; routing algorithms, TCP congestion control; peer-to-peer applications, wireless LAN, mobile IP, mobile ad hoc networks; wireless sensor networks. PREREQUISITE: COMP 3825. (F)

COMP 4410 - Computer Security (3)
Confidentiality, integrity, availability, methods and protocols in cryptography, digital signature, authentication, bit commitment; security in computing, programs, databases, operating systems; secure communication, secure channel, public key infrastructure, certificates; digital evidence, forensics tools; monitor and response; legal and ethical issues; risk management, security administration. PREREQUISITE: COMP 3825. (F)

COMP 4601 - Models of Computation (3)
Computer models as basis for the understanding and analysis of programming, computation and complexity; machine models (finite-state, stack and Turing machines); linguistic models (grammars, lambda calculus, predicate calculi); biologically-inspired models (e.g. neural nets or genetic algorithms); unsolvability, universality, decidability, feasibility. PREREQUISITE: COMP 4030, or permission of instructor. (F, Sp)

COMP 4720 - Intro Artificial Intelligence (3)
(Same as EECE 4720). Fundamentals of programming in LISP; central ideas of artificial intelligence, including heuristic search, problem solving slot-and-filler structures; knowledge representation. PREREQUISITE: COMP 4040, or permission of instructor. (F)

COMP 4730 - Expert Systems (3)
(Same as EECE 4730). Fundamentals of programming PROLOG, central ideas of expert system development, including knowledge representation, control structures, tools, knowledge acquisition, and knowledge engineering. PREREQUISITE: COMP 2700 and COMP 4030, or permission of instructor. (Sp)

COMP 4731 - Data Visualization (3)
(Same as EECE 4731). Introduction to the terminology, methodology, and applications of data visualization. Methods for visualizing data from a variety of engineering and scientific fields including both static and time varying data and methods for generating both surface and volume visualizations. PREREQUISITE: EECE 3221 or COMP 2150, or permission of instructor. (F)

COMP 4745 - Intro to Machine Learning (3)
Overview of machine learning. Hypotheses spaces, concept learning, supervised, unsupervised and reinforcement learning; classification and clustering; Bayesian methods; active learning. PREREQUISITE: COMP 2150, or permission of instructor.

COMP 4882 - Capstone Software Proj (3)
Development of significant team project; continuation of COMP 4081; software project management; risk assessment. software requirements and specifications; software design; software validation; professional and ethical responsibilities. PREREQUISITE: COMP 3115, 4030, and 4081, or permission of instructor. (Sp)

COMP 4901 - Ind Study Computer Science (1-3)
Directed individual study of selected areas of computer science. May be repeated by permission for a maximum of 6 hours credit. PREREQUISITE: permission of instructor.

COMP 4911 - Internship Computer Science (1-6)
Practical experience in computer science. Students placed for some time with governmental or private organizations. Project must be approved and supervised by department faculty. Academic credit granted upon certification of the cooperating agency and acceptance by supervising faculty of student's written report. May be repeated for up to a total of 6 hours credit. PREREQUISITE: permission of supervising faculty member. (S/U).

COMP 4920 - Wireless and Mobile Security (3)
Security issues and solutions in wireless and mobile networks. Prerequisite: COMP 4310 or COMP 6310.

COMP 4930 - Digital Forensics (3)
Introduces the process of forensic investigation, digital storage and network traffic. Lab exercises will use the tool and techniques of forensics investigators. Prerequisite: COMP 3825 and 4270 or permission of instructor.

COMP 4932 - Secure Coding and Testing (3)
Programming practices necessary to develop applicatons against attacks and exploits.

COMP 4980 - Senior Thesis (3)
Research conducted under the supervision of faculty member and with permission of Department of Computer Science Undergraduate Curriculum Committee.

COMP 4991 - Molecular Biol/Bioinfor (3)
Topics are varied and in online class listings. PREREQUISITE: permission of instructor.