Bookmark and Share

500 Level Courses in Computer Science

CSC 505 - Fundamentals of Computer Systems 3 sh
This course discusses the design and organization of modern computer systems, including fundamental hardware and software building blocks. The course provides a comprehensive introduction to computer organization and computer communications. Topics related to computer organization include Boolean logic, number systems, data representation and formats, hardware building blocks, processor architectures, memory and storage subsystems, input/output systems, and operating system functions. Topics related to computer communications including synchronous and asynchronous data communication, and local and wide area networks will be studied. Prerequisites: Unconditional acceptance into the graduate program. Note: A student in the combined MS/BS program cannot receive credit for this course if they passed CSC235.
CSC 510 - Advanced Operating Systems 3 sh
This course reviews the basic software components of an operating system, and includes advanced topics, including distributed processing and distributed process management, evaluation of an operating system's performance, networks, operating system security, case studies of particular operating systems. Prerequisites: CSC 505, or unconditional acceptance into the graduate program or permission of instructor.
CSC 512 - Network Architecture and Protocols 3 sh
This course deals with the implementation of all TCP/IP details.  Algorithms at all layers of the TCP/IP architecture will be examined.  Network hardware and management will be explored in detail. Prerequisites: CSC 411 or unconditional acceptance to the graduate program.
CSC 516 - Design and Analysis of Algorithms II 3 sh
More advanced topics in design and analysis of algorithms will be covered.  Included will be branch and bound technique, NP-Hard and NP-Complete problems, approximation algorithms and some well-known case studies. Prerequisites: CSC 415 or its equivalent.
CSC 520 - Advanced Object-Oriented Programming 3 sh
This course introduces the concepts of object-oriented programming languages, object-oriented analysis and design, and design patterns, and demonstrates their use in the development of an object-oriented implementation of a major project. The Unified Modeling Language (UML) is used to develop the project's design and implementation. A current programming language is used throughout the course to illustrate major concepts and implement the project. Prerequisites: Unconditional acceptance into the graduate program or permission of the instructor.
CSC 521 - Advanced Web-Based Software Development 3 sh
This course introduces the students to web-based software development. Using several techniques, and languages such as java and scripting languages), the students will learn how to develop both server and client side applications that employ current technology. The student will design and implement a substantial piece of web-based software. Prerequisites: CSC421 or unconditional acceptance into the graduate program.
CSC 526 - Principles of Compiler Design II 3 sh
This is a project-oriented course in implementation of a compiler of a simple programming language.  Topics studied will include intermediate program representations, code generation and address assignment, register allocation and assignment on general-register machines, run-time storage administration, data-flow analysis, and code improvement. Prerequisites: CSC 425 or permission of the instructor.
CSC 540 - Engineering Enterprise Object Oriented Systems 3 sh
This course explores the life cycle of enterprise object oriented frameworks, including incremental analysis, architecture, design, implementation, documentation and support. The keystone to the course is the maintenance and extension of a framework-based software component system, using current industrial framework technology, that performs useful work for customers and that persists across semesters. Topics include communication with customers and support personnel, requirements collection and analysis, build versus buy decisions for software components, specification-based application generation, rapid prototyping, categories of testing, and software tools for automation of these activities. Prerequisites: CSC 421 or CSC 520 or CSC 521 or permission of the instructor.
CSC 543 - Multiprocessing and Concurrent Programming 3 sh
This course explores the concepts and practices of creating software that makes effective use of modern multiple-processor computers. Emphasis is on partitioning program code and data for safe and efficient execution on multiple processors that share machine resources such as memory. Lab exercises include construction, execution and benchmarking of multithreaded programs on several multicore, multithreaded computers. Prerequisites: Unconditional acceptance into the graduate program.
CSC 548 - Artificial Intelligence II 3 sh
A study of advance topics in artificial intelligence (AI) focusing on those aspects of AI which are most relevant to the design and construction of intelligent agents: control, knowledge acquisition and representation, reasoning with knowledge, planning and carrying out actions. Prerequisites: CSC 447  or permission of instructor.
CSC 552 - Advanced UNIX Programming 3 sh
This course studies the concepts dealing with UNIX system programming.  A lot of emphasis will be placed on working with processes and interprocess communication (IPC).  Details of various aspects of IPC will be explored and   implemented, including pipes, semaphores, sockets, message queues and shared memory. Prerequisites: Unconditional acceptance to the graduate program or permission of the instructor.
CSC 554 - Project Management 3 sh
This course discusses the principles of project management which are considered mandatory for the success of business projects. The focus of discussion is project management in general and information systems project management in particular. Though behavioral and organizational aspects of project management are discussed, the emphasis is more on learning tools and techniques which provide quantitative insight during the project management life cycle. These tools and techniques are required to effectively plan, monitor and control the projects. In this course, students also get the opportunity to work on projects simulating real world situations to practice concepts and techniques learnt in this course. Prerequisites: CSC354 or unconditional acceptance to the graduate program.
CSC 555 - Applied Cryptography 3 sh
An introduction to the computer-based cryptographic systems, focusing on the underlying theory and on the design and application of such systems.  Topics include classical cryptosystems, cryptographic protocols, cryptographic techniques, cryptographic algorithms, cryptanalysis, and real world applications of cryptosystems. Prerequisites: Unconditional acceptance into the graduate program or permission of instructor.
CSC 556 - Database Management Systems II 3 sh
This course introduces design issues involved in the development of a database management system itself. It discusses physical database design, file structures and access methods, query optimization, transaction processing, concurrency control, database recovery, database security, and database administration. It also discusses advanced topics typically distributed databases, data warehousing and data mining. Prerequisites: CSC 456.
CSC 558 - Data Mining and Predictive Analytics II
This course covers advanced study and practice in data mining and predictive analytics. Topics include understanding, configuring, and applying advanced variants of data association, classification, clustering, and statistical analysis engines, analyzing and applying underlying machine learning algorithms, exploring instance-based, support vector, time-series, ensemble, graphical, and lazy learning algorithms, meta-learning, neural nets, genetic algorithms, and validating results. The course examines topics specific to very large data sets. Data cleaning and formatting require some programming in a modern scripting language. Other course activities include using, extending, and customizing off-the-shelf machine learning software systems to accomplish the tasks of data analysis.
Prerequisites:  CSC 458.
CSC 570 - Independent Study and/or Projects in Computer Science 3 sh
This course involves individual independent study in some area of computer science under the direction of a CS group staff member. This study can be made in any of the areas of analog and hybrid computers, artificial intelligence, automate theory, business information systems, computer-aided design, computer-assisted instructions, computer graphics, computer mechanisms and devices, computer systems, computer telecommunication, computer typesetting, information retrieval, linguistic processing, mechanical languages, numerical analysis, programming theory, or switching systems and logical design, and others. A student may register for this course more than once up to a maximum of six hours of credit. Prerequisites: Consent of the student's advisor, instructor and department chairperson.
CSC 580 - Special Topics in Computer Science 3 sh
An in-depth study of a specialized area of computer science.  Content will vary from semester to semester.  May be repeated. Prerequisites: Consent of the instructor, advisor and department chairperson.
CSC 590 - CS Cooperative Internship 3 sh
The internship is designed to give students industrial, supervised practical experience in a Computer Science-related position.  The internship can be done at any company associated with the Computer Science department or one of the intern's choosing.   All arrangements for a cooperative internship are to be made through the Computer Science Department, and approval by both advisor and department chairperson are necessary. Once completed, the employer is required to submit an evaluation of the student. 150 work hours.
CSC 599 - Thesis 3-6 sh

This course is for those MS candidates completing a thesis. Its content is computer science and/or information technology research under the direction of a thesis advisor who is a member of the graduate faculty. A student will ordinarily register for 6 hours of credit to be taken over a period of two semesters; however, other configurations are possible, including one hour for a thesis that is incomplete after six hours with some substantial work remaining. The course is repeatable up to a maximum of 12 total credits for the course.
Departmental guidelines require the student to have successfully completed at least 6 semester hours of courses in the computer science and information technology MS program.

Prerequisites: Acceptance in the graduate program and consent of the student's advisor and the department chairperson.