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 block, 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: Students in the combined MS/BS program cannot receive credit for this course if they passed CSC 235.
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 systems performance, networks, operating system security, case studies of particular operating systems. Prerequisites: CSC 235 or unconditional acceptance into the Graduate program.
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 projects design and implementation. A current programming language is used throughout the course to illustrate major concepts and implement the project. Prerequisites: unconditional acceptance in the Graduate program.
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: CSC 237 and CSC 243 or some experience with Java or permission of instructor.
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 its equivalent.
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 321 or CSC 520 or CSC 521.
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 multi-threaded programs on several multicore, multi-threaded 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, and remote procedure calls. Prerequisites: CSC 352 or unconditional acceptance in the Graduate program.
CSC 554 - Project Management 3 sh
This course introduces the essential concepts of project management in the Information Technology environment. Knowledge of both "soft" and "hard" skills is needed for successful project management and will be needed in this course. Soft skills will include communication, team building, leadership, conflict resolution, and decision-making. Hard skills will be embodied in tools and techniques used to writing a Request for Proposal, tool selection and installation, and system installation. Students will have the opportunity to experience these important concepts while working in a team on a software or hardware project. Prerequisites: CSC 354 or unconditional acceptance to the Graduate program.
CSC 555 - Applied Cryptography 3 sh
This course is 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 to the Graduate program.
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 CSC 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: Permission of the students 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: Permission 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