University Seal
 
 

 

COURSES

 

Undergraduate Course Titles

Graduate Course Titles

Undergraduate Course Descriptions

Graduate Course Descriptions

Undergraduate Courses

CS 1310  Intro to Computer Programming
CS 1401  Introduction to Computer Science
CS 1420  Computer Programming Science / Engineering
CS 2401  Elem. Data Structures / Algorithms
CS 2402  Data Structures
CS 3190 Special Topics in Programming
CS 3195 Junior Professional Orientation
CS 3320 Comp Arch II: Adv. Design/Imp
CS 3331 Adv. Object-Oriented Programming
CS 3335 Systems Programming
CS 3350 Automata/Computability/Formal Lang
CS 3360 Design/Implementation Programming Language
CS 3370 Computer Graphics
CS 3432 Comp Arch I: Comp Org/Design
CS 4181 Undergraduate Seminar
CS 4191
Introduction to Computer Science Research
CS 4195 SR Professional Orientation
CS 4310 Software Engineering I
CS 4311 Software Engineering II
CS 4316 Computer Networks
CS 4320 Artificial Intelligence 
CS 4351 Computer Security
CS 4352 Compilers and Interpreters
CS 4342 Database Management
CS 4365 Topics in Soft Computing
CS 4371 Computer Science Problems
CS 4375 Theory of Operating Systems
CS 4390 Scientific & Programming Visualization
CS 4390 Human-Computer Interaction
CS 4390 Cryptography
CS 4390 Software Design
CS 4390 Robotics
CS 4390 Usability
CS 4390 Computer Security
CS 4392 Research Methods in Computer Science
CS 4393 Senior Project

Graduate Courses

CS 5303 Logical Foundations of Computer Science
CS 5310 Computer Graphics
CS 5314 Artificial Intelligence I
CS 5315 Theory of Computation 
CS 5317 Human-Computer Interaction
CS 5318 Topics in Interactive Systems 
CS 5319 Topics in Language Processing
CS 5322 Topics in Advanced Database Systems
CS 5333 Logic Programming 
CS 5334 Parallel And Concurrent Programming
CS 5336 Scientific and Program Visualization
CS 5337 Topics in Advanced Interconnection Networks
CS 5340 Advanced Operating Systems 
CS 5341 Advanced Computer Architecture
CS 5350 Advanced Algorithms
CS 5351 Interval Computations 
CS 5352 Computer Security 
CS 5353 Topics in Emerging Computing Paradigms 
CS 5354 Topics in Intelligent Computing
CS 5356 Validation Analysis and Interval Computations for Bioinformatics
CS 5381 Topics in Software Design 
CS 5382 Topics in Software Development
CS 5383 Topics in Software Assurance 
CS 5390 Special Topics 
CS 5391 Individual Studies 
CS 5392 Graduate Research Methods 
CS 5394 Graduate Research 
CS 5694 Graduate Research 
CS 5396 Graduate Projects 
CS 5397 Graduate Projects
CS 5398 Thesis 
CS 5399 Thesis 

Doctoral Courses

CS 6194 Doctoral Research
CS 6294 Doctoral Research
CS 6394 Doctoral Research
CS 6694 Doctoral Research
CS 6390 Special Topics
CS 6391 Individual Studies
CS 6398 Dissertation;
CS 6399 Dissertation;

Undergraduate Course Descriptions

  • CS 1310-Introduction to Computer Programming (3-0) (TCCN COSC 1301)Fundamentals of computers, including software, hardware, impact on society, and beginning programming in a high-level language, such as FORTRAN, BASIC, LOGO, and Python. Designed for students not engaged in mathematically oriented studies. (HOMEPAGE/SYLLABUS)
  • CS 1401-Introduction to Computer Science (3-3) (TCCN COSC 1430)First course for students majoring in Computer Science. Introduction to problem solving with computers, including representation, control structures, and software development methods; closed laboratory and programming assignments in a high-level language; programming environments; social and ethical aspects of computing. Prerequisite : MATH 1508 with a grade of “C  (HOMEPAGE/SYLLABUS)
  • CS 1420-Computer Programming for Scientists and Engineers (3-3)Introduction to computers and problem solving with digital computers. A procedural programming language will be utilized to solve scientific and engineering oriented problems. Visualization methods will also be used to provide an experimental approach to problem solving. Prerequisite : MATH 1508 with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 2401-Elementary Data Structures and Algorithms (3-3) (TCCN COSC 1418)Second course for students majoring in Computer Science. Fundamental computing algorithms, including searching and sorting; elementary abstract data types including linked lists, stacks, queues and trees; introduction to algorithm analysis. Prerequisite : CS 1401 with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 2402-Data Structures (3-3)(TCCN COS 2318)The definition and implementation of abstract data types; representation of data using sets, lists, trees, and graphs; the design and implementation of traversal, search, and sort algorithms; and the space and time analysis of algorithms. Prerequisite: CS 2401 and MATH 2300 each with a grade of “C” or better. (Homepage)
  • CS 3190-Special Topics in Programming (1-0)Essential constructs and usage of either a programming language (e.g., C, PROLOG, Haskell, C++, Perl), an operating system (e.g., Unix), or advanced topics within a particular language or OS (e.g., CGI programming, Java GUI programming, Windows GUI programming, Intended to allow advanced students to acquire working proficiency quickly. The language/OS will vary. May not be counted toward the major in Computer Science. May be repeated for credit when the topic differs. Prerequisite: CS 3360 with a grade of “C” or better. 
  • CS 3195-Junior Professional Orientation (1-0)Introduction to the Computer Science profession with a special emphasis on professional ethics. Required of all students prior to graduation. (HOMEPAGE/SYLLABUS)
  • CS 3320-Computer Architecture II: Advanced Computer Design and Implementation (3-0)The organization and structure and the major hardware components of computers; the mechanics of information transfer and control within digital computer systems. Prerequisite: CS 3432 and EE 2369 each with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 3331-Advanced Object-Oriented Programming (3-0) An in-depth exposure to the object-oriented programming paradigm, which builds upon programming experience gained in lower-level computer science classes. Emphasis on programming in an object-oriented language with which students are already familiar, and on requirements, testing, code reading, and comprehension. Prerequisite: CS 2402 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 3335-Systems Programming (3-0) The design and implementation of the programming environment including editors, compilers, loaders and linkers, debuggers and operating systems. Prerequisite: CS 2402 with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 3350-Automata, Computability, and Formal Languages (3-0)Theoretical computing models and the formal languages they characterize: Finite state machines, regular expressions, pushdown automata, context-free grammars, Turing machines and computability. Capabilities and limitations of each model, and applications including lexical analysis and parsing. Prerequisite: CS 2402 with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 3360-Design and Implementation of Programming Languages (3-0) Design features of modern programming languages including flow control mechanism and data structures; techniques for implementation of these features. Prerequisite: CS 3331 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 3370-Computer Graphics (3-0) An introduction to representation and display of graphical information including line, character, and curve generation. Emphasis on two-dimensional techniques. Prerequisites: CS 2402 and MATH 3323 each with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 3432-Computer Architecture I: Basic Computer Organization and Design (3-3) Compile and assembly processes; machine organization; fetch/decode/execute process; symbolic coding of instructions and data, including instruction types, formats, and addressing modes; implementation of data and control structures, subroutines, and linkage; and input/output handling at the assembly level, including memory-mapped I/O and interrupt and exception handling. Prerequisites: CS 2402 and EE 2369 each with a grade of “C” or better. (HOMEPAGE/SYLLABUS)
  • CS 4181-Undergraduate Seminar (1-0) Advanced topics in computer science. Presentation and discussion of various topics in computer science by faculty, students, speakers from other institutions and from industry.
  • CS 4191-Introduction to Computer Science Research (0-0-1) Introduction to the basic skills needed for research, including oral presentation skills, report writing skills, comprehension, critiquing and feedback skills, teamwork skills, and research skills such as formulating a problem, planning research efforts, and managing time. These skills are taught in a group environment as part of a research project. Participation requires departmental approval and permission of the faculty member(s) supervising this research. Prerequisite: Department approval.
  • CS 4195-Senior Professional Orientation (1-0) Continuation of CS 3195.Further introduction into the Computer Science profession with emphasis on job placement. Senior standing required. May not be counted toward the major in Computer Science. (HOMEPAGE/SYLLABUS)
  • CS 4310-Software Engineering: Requirements Engineering (3-0) Methodologies, approaches, and techniques associated with software requirements analysis and definition; process for defining requirements of a system including feasibility study, requirements elicitation, formal specification, modeling, validation, verification, and documentation; other topics include cooperative teamwork and project management; first semester of a two-semester capstone project in which students work with a customer. (HOMEPAGE/SYLLABUS)
  • CS 4311-Software Engineering: Design and Implementation (3-0) Methodologies, approaches, and techniques associated with software design, implementation, and testing of a software system; other topics include cooperative teamwork, project management, and documentation; second semester of a two-semester capstone project in which students design and implement a real-world application specified in CS 4310.Prerequisite: CS 4310 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 4316-Computer Networks (3-0)Introduction to data communications. Covered topics include: data transmission, link control, encoding, multiplexing, switching, network topologies, internetworking, address resolution, protocol layering, routing methods, data security, and distributed systems.  Prerequisites: CS 2402 and EE 3384 each with a grade of “C” or better.
  • CS 4317 Human-Computer Interaction -- Models and methods of human-computer interaction. Theory of human-computer interaction. Development methods for interfaces such as user-centered design, prototyping, and participatory design. Evaluation and testing techniques, such as heuristic evaluation, the cognitive walkthrough, and usability testing. User-interface programming. Ethical and societal issues. (HOMEPAGE)
  • CS 4320-Artificial Intelligence (3-0) Introduction to basic concepts and techniques of artificial intelligence including knowledge representation, search strategies, symbolic logic, expert systems, and applications. Prerequisite: 2402 with a grade of “C” or better. (HOMEPAGE)
  • CS 4342-Database Management (3-0) Introduction to data base concepts, hierarchical, network and relational data models, data description and query languages, file and index organization, and file security and integrity. Prerequisite: 2402 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 4351-Computer Security (3-0) General concepts and applied methods of computer security,especially as they relate to confidentiality, integrity, and availability of information assets. Topics include system security analysis; access control and security models; identification and authentication; protection against external and internal threats; communication protocols;
    Internet security. Prerequisite: CS 3331 with a grade of "C" or better. (HOMEPAGE/SYLLABUS)
  • CS 4352-Compilers and Interpreters (3-0) The structure of compilers and interpreters: lexical syntax and semantic analysis, formal description of programming languages, parsing techniques, intermediate languages, optimization and code generation. Prerequisite: CS 3350 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 4365-Topics in Soft Computing (3-0) Introduction to basic concepts and techniques of soft computing, including neural, fuzzy, evolutionary, and interval computations, and their applications. This course may be repeated for credit when topic varies. Prerequisites: EE 3384 or STAT 3330, and MATH 4329.
  • CS 4371-Computer Science Problems (0-0-3) Original investigation of special problems selected by the student in consultation with the instructor and with the permission of the Chairperson of the Computer Science Department. May be repeated for credit. Prerequisites: Senior standing in Computer Science and department approval.
  • CS 4375-Theory of Operating Systems (3-0) Process and thread management, concurrency, memory management, processor scheduling, I/O management and disk scheduling, and file management. Prerequisite: CS 3320 with a grade of “C” or better.(HOMEPAGE/SYLLABUS)
  • CS 4390-Special Topics in Computer Science (3-0) Selected topics of current interest in Computer Science. May be repeated for credit when topic varies. Prerequisites: Senior standing in Computer Science and department approval.
  • CS 4392-Research Methods in Computer Science (3-0) An advanced course in the skills needed for research in Computer Science, including a survey of the various research paradigms and experimental protocols used across the field. Within a particular research area of the student’s choice, a student will learn to: judge whether a question is a research question; design an appropriate experiment to answer a research question; interpret the results of an experiment, including selection and application of appropriate statistical tests; present and defend their research orally and in writing. (HOMEPAGE/SYLLABUS)
  • CS 4393-Senior Project (0-0-3) Research and analysis leading to a new publishable theoretical result or a new useful sophisticated piece of software. Includes formal project proposal, generation of a well-documented report, and a presentation of the results to faculty and students. Intended to allow advanced undergraduate students to actively and productively participate in research. A research topic must be selected by the student in consultation with the instructor and with the permission of the Chairperson of the Computer Science Department.

Graduate Course Descriptions

  • CS 5303 Logical Foundations of Computer Science -- A presentation of fundamental tools required in advanced computer science, including topics such as propositional and first-order logic, topological properties of networks, managing tasks in parallel systems using graphs as well as modeling, simulation and queuing processes. (HOMEPAGE/SYLLABUS)
  • CS 5310 Computer Graphics -- Computer representation and display of graphical information including line, character and curve generation, two and three dimensional graphical techniques, interactive methods, and advanced topics. Prerequisite: CS 3370 or equivalent.
  • CS 5314 Artificial Intelligence I -- A study of first-order logic, including an introduction to Prolog, knowledge representation including semantic networks and logical representations, query answering, and reasoning methods. Prerequisite: CS 4320 or equivalent.
  • CS 5315 Theory of Computation -- A review of formal languages and models of computation such as Turing machines, followed by an in-depth study of undecidability, computational complexity theory, and intractability. Prerequisite: CS 3350 or equivalent. (HOMEPAGE/SYLLABUS)
  • CS 5317 Human-Computer Interaction -- Models and methods of human-computer interaction. Theory of human-computer interaction. Development methods for interfaces such as user-centered design, prototyping, and participatory design. Evaluation and testing techniques, such as heuristic evaluation, the cognitive walkthrough, and usability testing. User-interface programming. Ethical and societal issues. (HOMEPAGE)
  • CS 5318 Topics in Interactive Systems -- Advanced study of human-computer interaction.  In-depth treatment of topics such as theoretical models of interaction, evaluation of interfaces, dialogue modeling, next-generation interfaces, user interface management systems, participatory design, groupware, and design of procedures and documentation. May be repeated for credit when the topic varies. Prerequisite: CS 5317.
  • CS 5319 Topics in Language Processing -- Concepts and techniques of computational processing of human language. Topics may include natural language processing, spoken language understanding, natural language generation, machine translation, and dialogue systems. May be repeated for credit when topic varies. Prerequisite: CS 3350 with a grade of “B” or better. (HOMEPAGE/SYLLABUS)
  • CS 5322 Topics in Advanced Database Systems -- A review of relational algebra followed by a study of DATALOG and its extensions (negation as failure, aggregates), query optimization, dependencies, and object-oriented databases. Prerequisites: CS 5303 and CS 4342, each with a grade of "B" or better.
  • CS 5333 Logic Programming -- This course will include advanced logic programming technique as well as an in-depth study of the semantics of Prolog, more advanced logic programming systems, and deductive databases. Prerequisite: CS 5314 or equivalent.
  • CS 5334 Parallel And Concurrent Programming -- The study of software and hardware architectures for parallel and distributed systems, including techniques for task partitioning and allocation, interprocess communication and synchronization, load balancing, and performance issues, in particular, task granularity, locality, and scalability. Prerequisite: CS 2402 with a grade of “C” or better or department approval. (HOMEPAGE/SYLLABUS)
  • CS 5336 Scientific and Program Visualization -- In-depth treatment of scientific and program visualization techniques, including a survey of visualization, fundamentals of visualization and visualization systems, applications of color to visualization, and applications of data and program visualization techniques. 
  • CS 5337 Topics in Advanced Interconnection Networks -- An in-depth treatment of both electrical and optical interconnection networks that may be used for parallel processing algorithms and systems. Topics covered include interconnection architectures, switching and routing techniques and algorithms, and metrics. 
  • CS 5340 Advanced Operating Systems -- A review of process synchronization, deadlocks and memory allocation paradigm, followed by in depth coverage of distributed systems, computer security and queuing theory.  Prerequisites: CS 4375 and instructor approval. (HOMEPAGE/SYLLABUS)
  • CS 5341 Advanced Computer Architecture –- A review of the fundamentals of computer design and instruction set principles, followed by the study of the basic principles underlying the design of today’s computers, including advanced pipelining, instruction-level parallelism, memory-hierarchy design, storage systems, interconnection networks, and multiprocessors. Real examples, measurements on real machines, cost/performance tradeoffs, and good engineering design are emphasized. (HOMEPAGE/SYLLABUS)

Graduate Course Descriptions

  • CS 5350 Advanced Algorithms – A review of mathematical techniques for analysis of computer algorithms, techniques for design of efficient algorithms, description and analysis of both well-established and recently developed algorithms. Prerequisites: CS 2302 or permission of instructor.
  • CS 5351 Interval Computations -- An overview of interval computations that take into account how input uncertainties influence the computation result. A review of the main ideas behind interval computations, main interval techniques, and applications to practical problems such as robotics, computer graphics, control, and bioinformatics. (HOMEPAGE)
  • CS 5352 Computer Security -- General concepts and applied methods of computer security, especially as they relate to confidentiality, integrity, and availability of information assets. Topics include system security analysis, access control and various security models, identification and authentication, protection against external and internal threats, communication protocols and Internet security. (HOMEPAGE/SYLLABUS)
  • CS 5353 Topics in Emerging Computing Paradigms -- Introduction to emerging, revolutionary computing paradigms. Topics may include quantum, chemical, and biological computing. May be repeated for credit when topic varies. (HOMEPAGE/SYLLABUS) (SECOND HOMEPAGE/SYLLABUS)
  • CS 5354 Topics in Intelligent Computing --Introduction to advanced concepts and techniques of intelligent and soft computing and their applications. Topics may include neural computations, fuzzy computations, evolutionary computations, intelligent control and intelligent web design. May be repeated for credit when topic varies. (HOMEPAGE)
  • CS 5356 Validation Analysis and Interval Computations for Bioinformatics - Introduction to numerical algorithms with automatic results verification and to interval computations-methodology that provides guaranteed error estimates for the results of indirect measurement and data processing. Topics include reliable methods for equation solving, global optimization, etc. All topics are illustrated by bioinformatics examples (such as protein folding).
  • CS 5381 Topics in Software Design -- The study of methods and approaches to software design. Topics may include advanced object-oriented design, meta-object protocols, software architectures, and design patterns. May be repeated for credit when topic varies. Prerequisites: CS 4311 or instructor approval.
  • CS 5382 Topics in Software Development -- The study of the production of high-quality software systems. Topics may include process improvement models, deductive and inductive program synthesis, clean-room programming, and software project management. May be repeated for credit when topic varies. (HOMEPAGE/SYLLABUS)
  • CS 5383 Topics in Software Assurance -- The study of methods and approaches to software quality assurance particularly as it applies to high-assurance, high-consequence, and safety-critical systems. Topics may include software specification methods, formal methods of software development, formal methods in software verification, and high-assurance software engineering and system safety. May be repeated for credit when topic varies. Prerequisites: CS 5303 and CS 4311. (HOMEPAGE/SYLLABUS)
  • CS 5390 Special Topics -- Advanced topics of contemporary interest in Computer Science. May be repeated for credit when topic varies.  Prerequisite: Department approval.
  • CS 5391 Individual Studies -- Individual variable-credit research, design or analysis on advanced phases of computer science problems conducted under the direct supervision of a faculty member. A maximum of 3 credit hours may be applied towards the M.S. degree.  Prerequisite: Instructor approval.
  • CS 5392 Graduate Research Methods -- Introduction to research methods, including research paradigms and methodologies across computer science, research question formulation, design of research approach, literature search and presentation of related work, analysis of results, verbal and written presentation skills, and research ethics. Students prepare and defend a thesis proposal or project proposal in an area of their choice. (HOMEPAGE/SYLLABUS)
  • CS 5394 Graduate Research -- Individual variable-credit research of contemporary topics in Computer Science.  Prerequisite: Permission of Graduate Advisor.
  • CS 5694 Graduate Research -- Individual variable-credit research of contemporary topics in Computer Science.  Prerequisite: Permission of Graduate Advisor.
  • CS 5396 Graduate Projects -- Individual research, design, or analysis on advanced phases of Computer Science conducted under the direct supervision of a faculty member. The courses, including a written report, are required of all students in the non-thesis option. Prerequisite: instructor approval.
  • CS 5397 Graduate Projects -- Individual research, design, or analysis on advanced phases of Computer Science conducted under the direct supervision of a faculty member. The courses, including a written report, are required of all students in the non-thesis option. Prerequisites: CS 5396 and instructor approval.
  • CS 5398 Thesis –- Initial work on the thesis.
  • CS 5399 Thesis –- Continuous enrollment required while work on thesis continues. Prerequisite: CS 5398.

Doctoral Course Descriptions

  • CS 6194 Doctoral Research Individual doctoral research in computer science. Prerequisite: Department approval
  • CS 6294 Doctoral Research - Individual doctoral research in computer science. Prerequisite: Department approval
  • CS 6394 Doctoral Research - Individual doctoral research in computer science.  Prerequisite: Department approval
  • CS 6694 Doctoral Research - Individual doctoral research in computer science.  Prerequisite: Department approval.
  • CS 6390 Special Topics --- Advanced topics of contemporary interest in computer science.  May be repeated for credit when topic varies. Prerequisite: Department approval.
  • CS 6391 Individual Studies - Individual study of a specific topic advanced in computer science under the direct supervision of a faculty member.  A maximum of three credit hours may be applied toward the Ph.D. degree. Prerequisites: Department Approval.
  • CS 6398 Dissertation - Initial work on the dissertation. Prerequisite: Department approval
  • CS 6399 Dissertation - Taken continuously during preparation of the dissertation. Prerequisite: CS 6398

Back To Top