Computer Science(COMP) 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
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: COMP 2700 and COMP 3410. (F)
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)
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)
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 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 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 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 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.