Computer Science

CS 5301 (EEGR 5301) Professional and Technical Communication (3 semester credit hours) This course utilizes an integrated approach to writing and speaking for the technical professions. The advanced writing components of the course focus on writing professional quality technical documents such as proposals, memos, abstracts, reports, letters, emails, etc. The advanced oral communication components of the course focus on planning, developing, and delivering dynamic, informative and persuasive presentations. Advanced skills in effective teamwork, leadership, listening, multimedia and computer generated visual aids are also emphasized. Graduate students will have a successful communication experience working in a functional team environment using a real time, online learning environment. (3-0) Y CS 5302 Topics in Computer Science (3 semester credit hours) May be repeated for credit as topics vary (6 semester credit hours maximum). Prerequisite: CS 5343. (3-0) Y CS 5303 Computer Science I (3 semester credit hours) Computer science problem solving. The structure and nature of algorithms and their corresponding computer program implementation. Programming in a high level block-structured language (e.g., PASCAL, Ada, C++, or JAVA). Elementary data structures: arrays, records, linked lists, trees, stacks and queues. Prerequisite: ENCS majors only. (3-0) R CS 5330 Computer Science II (3 semester credit hours) Basic concepts of computer organization: Numbering systems, two's complement notation, multi-level machine concepts, machine language, assembly programming and optimization, subroutine calls, addressing modes, code generation process, CPU datapath, pipelining, RISC, CISC, and performance calculation. Prerequisite or Corequisite: CS 5303. (3-0) R CS 5333 Discrete Structures (3 semester credit hours) Mathematical foundations of computer science. Logic, sets, relations, graphs and algebraic structures. Combinatorics and metrics for performance evaluation of algorithms. Prerequisite: ENCS majors only. (3-0) S CS 5336 Programming Projects in Java (3 semester credit hours) Overview of the objectoriented philosophy. Implementation of object-oriented designs using the Java programming environment. Emphasis on using the browser to access and extend the Java class library. Prerequisite: CS 5303 or equivalent experience. (3-0) R CS 5343 Algorithm Analysis and Data Structures (3 semester credit hours) Formal specifications and representation of lists, arrays, trees, graphs, multilinked structures, strings, and recursive pattern structures. Analysis of associated algorithms. Sorting and searching, file structures. Relational data models. Prerequisite: CS 5303. Prerequisite or Corequisite: CS 5333. (3-0) S CS 5348 Operating Systems Concepts (3 semester credit hours) Processes and threads. Concurrency issues including semaphores, monitors and deadlocks. Simple memory management. Virtual memory management. CPU scheduling algorithms. I/O management. File management. Introduction to distributed systems. Must have a working knowledge of C and Unix. Prerequisite: CS 5330. Prerequisite or Corequisite: CS 5343. (3-0) S CS 5349 Automata Theory (3 semester credit hours) Deterministic and nondeterministic finite automata; regular expressions, regular sets, context-free grammars, pushdown automata, context free languages. Selected topics from Turing Machines and undecidability. Prerequisite: CS 5333. (3-0) S CS 5375 Principles of UNIX (3 semester credit hours) Design and history of the UNIX operating system. Detailed study of process and file system data structures. Shell programming in UNIX. Use of process-forking functionality of UNIX to simplify complex problems. Interprocess communication and coordination. Device drivers and streams as interfaces to hardware