CSC Course Information

Click Here For Undergraduate Course Offering Schedule

CSC 1000: The Practice of Computing
Credits: 3    Level: nonmajor    Prerequisites: None

Anatomy of a computing system including tiny systems such as cell phones; resource management-memory, processes, file structure; network analysis-network topology, performance, privacy, security; application scripting-concepts and practices of programming.

CSC 1010: Programming for All
Credits: 3    Level: nonmajor    Prerequisites: None

Programming fundamentals using the Python programming language: data, variables, selection, loops, arrays, input/output, basic graphics and functions; Object-oriented design: encapsulation, objects, classes and methods

CSC 1020: Computing and the Web
Credits: 3    Level: nonmajor    Prerequisites: None

Information representation and manipulation; file systems and directories; compatibility and data exchange; security and privacy; elements of computer architectures and operating systems; computer networks, the Internet, and the World Wide Web; web site design principles and creation; PC based examples and illustrations.

CSC 1024: Computing for Scientists
Credits: 1    Level: nonmajor    Prerequisites: None

Active learning of computing skills necessary for scientists: datagraphing, regression analysis, animation, symbolic computing, information search techniques, scientific report writing, web page construction, fundamentals of programming.

CSC 1030: Problem Solving with Computers
Credits: 3    Level: nonmajor    Prerequisites: None

Using the microcomputer as a problem solving tool; system use; general purpose language programming; spreadsheet analysis and modeling; retrieving information from the Internet; strengths and weaknesses of computer based problem solutions.

CSC 1035: Databases for Many Majors
Credits: 3    Level: nonmajor    Prerequisites: None

No background in computing necessary. Design and implementation of your own database as a group project. Cooperative learning techniques to demystify key concepts: the relational model, normalization, the Entity-Relationship model and SQL.

CSC 1040: Computing with Images
Credits: 3    Level: nonmajor    Prerequisites: None

Image processing as an introduction to broader computing concepts; computational approaches to image processing and representation; multimedia tools.

CSC 1043: Laptop Instruments
Credits: 3    Level: nonmajor    Prerequisites: None

Deep inside your laptop is the digital-analog converter. It's the chip that takes strings of bits and converts them to the music or other audio you hear from the speakers. But how do you get the right strings of bits to make a clarinet or aguitar or a snare drum? This course combines the study of music structure and theory with an exploration of the programming structures, algorithms and language so that you can create music on your laptop. By the end of the course, the VLORK (Villanova Laptop Orchestra) should be in full voice.

CSC 1045: Algorithms, Cartoons, and Animation
Credits: 3    Level: nonmajor    Prerequisites: None

Computer-assisted animation & its programming dialects; cartoon creation from story-boarding to product delivery; algorithms - efficiency, correctness, understanding via animation.

CSC 1051: Algorithms and Data Structures I
Credits: 4    Level: crossover    Prerequisites: None

Object-oriented design: objects, classes, methods, encapsulation; programming fundamentals: data, variables, selection, loops, arrays, input/output; basic graphics and exceptions.

CSC 1052: Algorithms and Data Structures II
Credits: 4    Level: undergraduate    Prerequisites: CSC 1051 C or better

Object-oriented design: inheritance, interfaces, polymorphism; problem analysis; recursion; abstract data types; dynamically linked structures; data structures: stacks, queues, lists, collections, trees.

CSC 1300: Discrete Structures
Credits: 3    Level: undergraduate    Prerequisites: None

Mathematical concepts that support computer science: sets, functions, relations, combinatorics, recurrences, boolean logic, mathematical proofs, matrices, graphs and trees.

CSC 1600: Operating Systems
Credits: 3    Level: undergraduate    Prerequisites: CSC 2400 or ECE 2042

System software design and implementation; process and resource management; concurrency, scheduling, and deadlock; memory management; file systems and security.

CSC 1700: Analysis of Algorithms
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 and CSC 1300

Efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms. Major algorithm design techniques: brute force, divide-and-conquer, decrease-and-conquer, transform-and-conquer, space and time tradeoffs, greedy approach, dynamic programming, backtracking and branch-and-bound. Introduction to NP-completeness, approximation algorithms. Applications to a wide variety of computational problems: sorting, searching, string processing, graphs, arithmetic, linear algebra.

CSC 1800: Organization of Programming Languages
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 and CSC 1300

High level language features: data types, control structures; formal lexical and syntactical analysis; operational semantics; language translation.

CSC 1930: Explorations in Computing
Credits: 3    Level: undergraduate    Prerequisites: None

Emerging technologies & their applications; computing in support of investigations & applications in the humanities & social sciences. May not be enrolled in Engineering or Computer Science.

CSC 1990: Enrichment Seminar in Computing
Credits: 1    Level: undergraduate    Prerequisites: None

The catalog description of this course will be posted soon.

CSC 2020: Web Development & Technologies I
Credits: 3    Level: nonmajor    Prerequisites: None

Design of web content, utilization of web tools, configuration of supporting technologies. Emphasis on client-side services: HTML, style sheets, JavaScript, Document Object Model,DHTML.

CSC 2025: Web Development & Technologies II
Credits: 3    Level: nonmajor    Prerequisites: None

Design of web content, configuration of supporting web technologies. Emphasis on server-side services: databases and forms, CGI, Perl, PHP, XML, AJAX, cookies and session management, security issues.

CSC 2053: Platform Based Computing
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052

Topics include maps, hash tables, graphs, concurrency / interference / synchronization, internet programming and security.

CSC 2300: Statistics for Computer Science
Credits: 3    Level: undergraduate    Prerequisites: CSC 1051 and CSC 1300

Probability, counting, discrete and continuous distributions, descriptive and inferential statistics, experimentation, reading of scientific papers -- all taught from the point of view of computer science. Some programming may be required.

CSC 2400: Computing Systems I
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 and CSC 1300

Architecture of computer systems: representation of data; processor, memory and I/O organization. Assembly language programming. C programming language constructs and their relationships to the underlying architecture. Basics of operating systems: interrupts, concurrency, process scheduling, security, networking.

CSC 2405: Computing Systems II
Credits: 3    Level: undergraduate    Prerequisites: CSC 2400

Processes, threads and concurrent programming. Scheduling and Dispatching. Linking and Relocating. Memory management. Virtual memory. System level I/O device management. File systems. Security and protection in depth. Real time and embedded systems. System performance evaluation.

CSC 2500: Survey of Information Science
Credits: 3    Level: undergraduate    Prerequisites: None

Brief introductions to several areas in which problems in information use are important. Examples are business, law, biology, medicine, electronic commerce, and libraries.

CSC 2993: Internship in Computing
Credits: 3    Level: undergraduate    Prerequisites: Junior standing and 3.0 overall GPA

Internship in computer science open to second semester sophomores and above. Most likely, intern will participate in computer system development, maintenance, or evaluation in an environment which supports sound software engineering techniques.

CSC 3070: Emerging Technology Trends
Credits: 3    Level: crossover    Prerequisites: Junior Standing

Investigate new technologies and current applications. Explore when and how to apply new technologies with sensitivity to feasibility, financial viability, and overall effectiveness. Culminates in team-driven exploitation of a new technology.

CSC 3080: Information Security and Protection
Credits: 3    Level: crossover    Prerequisites: CSC 2400

Explores the criticality of protecting information's availability, accuracy, authenticity, confidentiality, and integrity. Analysis of topics to include redundancy, backup and recovery, business continuity, security technologies, and controls such as audit, change management and testing.

CSC 3150: Game Development
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 or ECE 2620

Theory of game development, game programming, artificial intelligence, state machines, 2D/3D assets, visual communication, game mechanics, navigation meshes, path planning.

CSC 3400: Information Retrieval
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 and CSC 1300

Theory and practice of location, organization, and rendering of meaningful content from largely unorganized sources.

CSC 4140: Theory of Information
Credits: 3    Level: undergraduate    Prerequisites: CSC 1300

Information and coding theory, data compression, cryptology.

CSC 4170: Theory of Computation
Credits: 3    Level: undergraduate    Prerequisites: CSC 1700

Finite automata and regular expressions; push down automata and context-free grammars; Turing machines; Church's thesis; computability; NP-completeness.

CSC 4181: Compiler Construction
Credits: 3    Level: undergraduate    Prerequisites: CSC 1600 or CSC 2405

Lexical and syntactical analysis; code generation; error recovery; recursive descent compilation; handling a run time environment.

CSC 4280: Parallel Algorithms and Architecture
Credits: 3    Level: undergraduate    Prerequisites: CSC 1700 and CSC 2405

Design and analysis of parallel algorithms for arithmetic, matrix operations, sorting, simulation, combinatorial and graph problems, and Fast Fourier Transforms; taxonomies of parallel architectures; interconnection networks, meshes, trees, and hypercubes; scalability and speed-up.

CSC 4300: Computer Graphics
Credits: 3    Level: undergraduate    Prerequisites: CSC 2400

Hardware and software systems in computer graphics, graphics programming languages, (PHIGS, VRML), modeling in 3D, development of interactive software, animation.

CSC 4380: Information Visualization
Credits: 3    Level: undergraduate    Prerequisites: CSC 2053 and CSC 2300

The presentation of information; visual cognition, scientific visualization, illustration presentation, color theory, motion dynamics, image processing.

CSC 4450: Digital Forensics
Credits: 3    Level: undergraduate    Prerequisites: CSC 2400

In-depth study of digital evidence presentation, digital forensic techniques, and data analysis. Password cracking, encryption/decryption, volatile data extraction and network forensics of advanced forensic tools, legal and ethical issues related to forensics and security management techniques required for resiliency in today's digital workplace.

CSC 4480: Principles of Database Systems
Credits: 3    Level: undergraduate    Prerequisites: CSC 1051 and CSC 1300

Concepts and technology of database management systems and data modeling with an emphasis on the relational model; database querying and normalization; physical data organization. A group project to design and implement a database is a key aspect of this course.

CSC 4490: Data Warehousing and Mining
Credits: 3    Level: undergraduate    Prerequisites: CSC 4480 and (CSC 2300 or MAT 2310 or MAT 4310)

Tools and techniques, theory and practice for storage and effective use of massive data sets.

CSC 4500: Artificial Intelligence
Credits: 3    Level: undergraduate    Prerequisites: CSC 2053

The nature of intelligence and the question of its computer implementation; search algorithms; knowledge representation; automated deduction; natural language understanding; planning; problem solving.

CSC 4510: Machine Learning
Credits: 3    Level: crossover    Prerequisites: CSC 1052 and CSC 2300

The nature of intelligence and the question of its computer implementation; the nature of learning and how it might be cast as an algorithm; the design of software systems that adapt to new circumstances in their environments.

CSC 4598: Machine Translation
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052

Exploration of the broad field of machine translation; automated computer systems that translate human language using statistical approaches; digital representation transformations, such as readability and sentiment analysis, spam filtering, plagiarism detection, and other natural language processing techniques; building machine translation systems using real-world data; formulating and investigating research questions in machine translation; typically includes collaboration with a non-Computer Science course on interdisciplinary, team-based student projects.

CSC 4600: Distributed Processing Systems
Credits: 3    Level: undergraduate    Prerequisites: CSC 2405

Data concurrency; distributed file systems and databases; distributed operating systems; security; interprocess communication; directory services; process migration; process vulnerability to partial failure.

CSC 4630: Software Development and Systems
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052

Operating system structures; system calls; system libraries; interprocess communication; user-interface programming environments; software utilities; software portability.

CSC 4700: Software Engineering
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052

Management and production of software systems; the software life cycle; software design techniques and methodologies; participation in a team software development project.

CSC 4710: Information Systems Project Management
Credits: 3    Level: crossover    Prerequisites: CSC 1052

Principles and techniques of information systems project management; qualitative and quantitative essentials to include project integration, scope, schedule, cost, quality, human resources, communications, and risk. Practical experience managing a project with complex technology issues.

CSC 4730: Human Computer Interaction
Credits: 3    Level: undergraduate    Prerequisites: CSC 1052 and (CSC 2300 and MAT 2310 or MAT 4310)

Design of the user/system interface; measurement of human-computer interaction; models of the user and user communities; design criteria for the interface; user interface management systems (UIMS); test and evaluation strategies and tools.

CSC 4790: Senior Projects
Credits: 3    Level: undergraduate    Prerequisites: CSC 4700

Capstone course centered around a semester long software development or research project; project planning; requirements elicitation and specification; teamwork; oral presentations required of all students.

CSC 4797: Information Systems Capstone
Credits: 3    Level: undergraduate    Prerequisites: Senior standing; Information Systems majors only

Student driven project on the application of an emerging technology that demonstrates learned project management, system design and communication skills. A cumulative experience to complete a student's portfolio of expertise in information systems.

CSC 4800: Web Application Development
Credits: 3    Level: undergraduate    Prerequisites: CSC 2053

Theory and design of web-based applications: stylesheets, applets, HTML, CGI programming, web server design, web site design, security, multimedia representations, encryption, compression.

CSC 4900: Computer Networks
Credits: 3    Level: undergraduate    Prerequisites: CSC 2405

Underlying principles of computer networks; OSI and TCP/IP architecture; LAN technologies; interconnecting devices: hubs, bridges, switches, routers, gateways; IP addressing and forwarding; routing protocols; transport protocols: error, flow, and congestion control; client-server communication; authentication and authorization; security threats and solutions.

CSC 5900: Seminar in Computing
Credits: 3    Level: undergraduate    Prerequisites: Varies with the topic

Study and discussion of selected topics in computing with presentations by individual students. May be repeated for credit if topics are different.

CSC 5930: Topics in Computer Science
Credits: 3    Level: crossover    Prerequisites: Varies with the topic

Lecture presentation of selected topics in computer science. May be repeated for credit if topics are different.

CSC 5940: Topics in Information Science
Credits: 3    Level: undergraduate    Prerequisites: Varies with the topic

Lecture presentation of selected topics in information science. May be repeated for credit if topics are different.

CSC 5993: Independent Study
Credits: 3    Level: undergraduate    Prerequisites: None

Reading, research and/or projects in a selected area of computer science under the direction of a member of the staff. May be repeated for credit.

CSC 7000: Algorithms and Programming
Credits: 3    Level: graduate    Prerequisites: None

Algorithm design and refinement; loop and selection control; recursion; arrays, pointers, records and strings; abstract data types: linked lists, stacks, queues, binary trees, elementary searching and sorting.

CSC 7100: Computer Systems
Credits: 3    Level: graduate    Prerequisites: None

Fundamental concepts in computer architecture and operating systems. Information representation, gates and digital logic, ALU and central processing organization, instruction sets, basics of pipelining, processes, memory management and file systems.

CSC 8000: Foundations of Algorithms and Data Structures
Credits: 3    Level: graduate    Prerequisites: None

Programming in Java or another object-oriented language. Program design with an emphasis on the object paradigm. Classic algorithms and data structures. Significant programming assignments are required.

CSC 8100: Technology for Human Organizations
Credits: 3    Level: graduate    Prerequisites: None

Leading-edge technologies and their applications in a variety of organzational settings. Presumes literacy in basic computer applications: word processing, desktop publishing, spreadsheets and communications.

CSC 8200: Health Informatics and eHealth Systems
Credits: 3    Level: Graduate    Prerequisites: None

Evolution, current status, and emerging trends of US and global computerized health information systems, architectures, technical standards, regulations, including administrative and clinical applications, clinical decision support and data-analytics systems, electronic medical and personal health record systems/tools, personal health/fitness and medical device integration solutions, rapidly emerging mobility/tablet/smartphone/app, product/system interoperability concepts, issues, and implications (aka mHealth, pHealth, and uHealth), and overarching population health patient safety, and health quality/outcome goals, gaps, and challenges.

CSC 8210: Healthcare Safety, Security, Law and Ethics
Credits: 3    Level: Graduate    Prerequisites: None

US and relevant international health and data security and privacy laws/regulations, HIPAA and HITECH compliance for EHR software and medical devices, federal and state patient privacy and health data access rights, electronic transmission of health data, health insurance, FDA rules and regulations, unauthorized access, vulnerabilities, unsecured wireless access, inadequate encryption, authentication failures, and other access control vulnerabilities, security risk assessment, privacy and security gaps in health information exchanges, federal and state privacy breach notification laws and related civil and criminal penalties, and successful security compliance audit and management strategies.

CSC 8220: Software Engineering and Health Informatics
Credits: 3    Level: Graduate    Prerequisites: None

An introduction to software engineering covering development life-cycle models, requirements analysis and specification, design concepts and methods, UML, testing, maintenance, CASE tools and management concerns, middleware and data/function integration, medical device/system interoperability.

CSC 8230: Database Systems and Health Informatics
Credits: 3    Level: Graduate    Prerequisites: None

Architecture of a database system; conceptual and implementation models; query languages; integrity, security, and concurrency; hands-on experience with selected US government EMR/PHR/MRS/HIS systems; SQL and NoSql DBs; Big Data in eHealth; database access via web services; data representation standards such as XML, JSON, HL7.

CSC 8301: Design and Analysis of Algorithms
Credits: 3    Level: graduate    Prerequisites: None

Fundamental strategies for algorithm design; mathematical and empirical techniques for analysis of nonrecursive and recursive algorithms, with applications such as sorting, searching, string processing and graphs; NP-complete problems and approximation algorithms.

CSC 8310: Linguistics of Programming Languages
Credits: 3    Level: graduate    Prerequisites: None

Organization, characteristics, constructs and design principles of programming languages; syntax, semantics, and pragmatics; language implementation issues; different programming paradigms such as imperative, functional, object-oriented, and logic programming.

CSC 8400: Computer Systems
Credits: 3    Level: graduate    Prerequisites: None

Study of computing systems from the point of view of the programmer. Topics include information representation, processor architecture, computer performance, storage management, security and concurrent programming.

CSC 8410: Operating Systems Concepts
Credits: 3    Level: graduate    Prerequisites: CSC 8400

Principles and techniques required for creating and understanding operating systems, including the areas of: system services, concurrent programming, process and resource control; deadlock detection, recovery, and prevention; memory management; file systems; protection and security.

CSC 8470: Computer Graphics
Credits: 3    Level: graduate    Prerequisites: CSC 8301

Interactive program development in 2D/3D graphics; event handling, real-time data sampling, and strategies in programming computer games; 2D/3D modeling; perspective viewing; object transformation; graphical user interface design.

CSC 8490: Database Systems
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8410

Architecture of a database system; conceptual and implementation models; query languages, design theory; integrity, security, and concurrency; discussion of some commercial systems.

CSC 8491: Data Mining and Database Programming
Credits: 3    Level: graduate    Prerequisites: None

The catalog description of this course will be posted soon.

CSC 8500: Formal Grammars and Programming Language Theory
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8310

Machines; nondeterminism; simulation; finite machines and regular languages; grammars; stack, counter, and tape machines; computability.

CSC 8505: Compiler Construction
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8310

Finite state methods for lexical and syntactical analysis; symbol-table construction, run-time code organization for block-structured languages, intermediate code generation, and pseudo-object machines; LR(k) and LL(k) parsers. Programming assignments and exercises are given.

CSC 8510: Theory of Computability
Credits: 3    Level: graduate    Prerequisites: None

Automata theory: deterministic and non-deterministic finite automata, pushdown automata, regular languages, context-free grammars, pumping lemma. Computability and recursion theory; Turing machines and their variations, decidability and recursive enumerability, mapping reducibility and Turing reducibility, undecidability of the halting problem, logical theories and Godel's incompleteness theorem. Complexity theory: time complexity, space complexity, major open problems on computational complexity.

CSC 8520: Artificial Intelligence
Credits: 3    Level: graduate    Prerequisites: CSC 8301

Problem-solving methods; knowledge representation; search; predicate calculus; automated theorem proving; natural language processing.

CSC 8530: Distributed Systems
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8410

An introduction to distributed systems; distributed system architecture and design goals; networks and distributed protocols; distributed/network operating systems, including distributed resource control and management, concurrency and interprocess communication; remote procedure calling; client/server techniques and issues; reliability of distributed systems; security and authentication.

CSC 8540: Software Engineering
Credits: 3    Level: graduate    Prerequisites: None

An introduction to software engineering covering development life-cycle models, requirements analysis and specification, design concepts and methods, testing, maintenance, CASE tools and management concerns. Additional topics may include reuse, metrics, experimentation, reengineering, development environments, and standards. The student may be required to write a research paper and/or give an in-class presentation.

CSC 8541: Requirements Engineering
Credits: 3    Level: graduate    Prerequisites: CSC 8540

Students will practice current techniques of requirements engineering. This class will focus on developing excellent oral and written technical communication skills. Topics may include: requirements elicitation and analysis; requirements specification; test driven development; system modeling; requirements validation; requirements management.

CSC 8542: Software Design and Evolution
Credits: 3    Level: graduate    Prerequisites: CSC 8541

Students will be introduced to both "high level" and "low level" design concepts. High level design concepts include client/server and web architectures, mobile computing, the use of common frameworks (e.g. J2EE and .NET), and strategies for evolving software. Low level design concepts include analysis patterns, design patterns, and refactoring approaches. Students will receive a specification, and will design and evolve a solution. This class will continue to emphasize oral and written technical communication skills.

CSC 8550: Concepts of Data Communications
Credits: 3    Level: graduate    Prerequisites: CSC 8400

Analog and digital transmission; media; communication channels; digital IDN carriers: T1, T3, SONET. Asynchronous and synchronous transmission; link protocols; multiplexing; switching: circuit and packet; voice and data PBXs; X.25, frame relay, ATM, ISDN; local area networks; OSI model; routing and transport; management.

CSC 8560: Computer Networks
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8410

Computer networks as an application development platform; services required by and provided to distributed applications; electronic mail systems enhancement; access to remote file systems; integration of remote resources such as components of the Web into applications; security; data compression and encryption; transport protocols; network addressing and routing; LAN and MAN medium access control; bridging; Wireless and mobile networking; evolution of network technology on the Internet, Multi-media protocols.

CSC 8570: User/System Interface Design
Credits: 3    Level: graduate    Prerequisites: None

The design and measurement of human-computer interfaces, with the objectives of developing models of user communities, summarizing current research in user-oriented design, defining design criteria for the user/system interface, and constructing test strategies for interactive software systems.

CSC 8580: Network Management and Performance
Credits: 3    Level: graduate    Prerequisites: CSC 8530 and CSC 8560

Monitoring and management of computer networks and network services; SNMP, CMIS, CMIP network management protocols and services; Management Informtion Base (MIB) development; performance analysis including queuing models; comparison of channel access protocols; other related topics as selected by the class. This course is frequently run as a seminar requiring a significant paper or project, consistent class preparation and participation.

CSC 8590: Advanced Software Engineering
Credits: 3    Level: graduate    Prerequisites: CSC 8540

In-depth coverage of software engineering topics such as: resue, metrics, CASE tools, design methodologies, reengineering, experimentation, automatic programming, software safety, development environments, reliability theory, risk management, and standards. The student may be required to write a research paper and/or give an in-class presentation.

CSC 8600: Object-Oriented Design and Programming
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8410

Introduces the theoretical and practical issues underlying the object-oriented paradigm, including classes, encapsulation, inheritance and polymorphism. Primary topics also include object-oriented analysis and design, databases and technology transfer. The use of an object-oriented programming language, such as Java or C++, is an integral part of the course. Problems involving program design and implementation will be assigned. The student may be required to write a research paper and/or give an in-class presentation.

CSC 8610: Multimedia Technology
Credits: 3    Level: graduate    Prerequisites: None

Theory and practice of multimedia content, representation, compression, storage, and delivery. Content types include text, audio, images, graphics, animations, and video. Student projects and presentations are generally an integral part of the course.

CSC 8700: System Programming in UNIX and C
Credits: 3    Level: graduate    Prerequisites: CSC 8301 and CSC 8410

The UNIX operating system: command interpreters, shell programming, process structure, file system, utilities like grep, sed, awk, and perl. C programming: file processing, libraries, program environment, system calls.

CSC 8710: Advanced System Programming
Credits: 3    Level: graduate    Prerequisites: CSC 8700

The UNIX kernel: architecture, inodes, process control, memory management, I/O subsystem. System calls in C: execution environment, memory management, terminal control, locking, file management, process management, interprocess communication. C ibraries. Program development and debugging tools.

CSC 8720: System Administration Concepts
Credits: 3    Level: graduate    Prerequisites: CSC 8700

UNIX login process. Standard root, device and user directories and files. File system construction and management. Disk status and partitions. Monitoring system performance. Networking and communication.

CSC 8750: Expert Systems
Credits: 3    Level: graduate    Prerequisites: CSC 8520

Knowledge representation and reasoning techniques; forward and backward chaining; semantic net and frame systems; uncertainty, automated knowledge acquisition; practical guidelines for implementing expert systems.

CSC 8800: Applied Computer Science I
Credits: 3    Level: graduate    Prerequisites: Permission of Instructor

Mathematical analysis, probability, statistics, optimization, queuing theory, digital signal processing; software engineering; UNIX, C, C++.

CSC 8810: Applied Computer Science II
Credits: 3    Level: graduate    Prerequisites: CSC 8800

Software engineering: object-oriented analysis and design, database management, graphical user interfaces, system engineering.

CSC 8820: Applied Computer Science III
Credits: 3    Level: graduate    Prerequisites: CSC 8810

Client-user services; computer networking; communications link dynamics; astrodynamics.

CSC 8990: Graduate Computing Practicum
Credits: 1    Level: graduate    Prerequisites: CSC 9020

Work experience in computing. CSC graduate program approval required for a specific work opportunity. Required for the practicum option of the MSCS degree.

CSC 8991: Graduate Computing Practicum Continuation
Credits: 0    Level: graduate    Prerequisites: CSC 8990

The catalog description of this course will be posted soon.

CSC 9000: Guided Study
Credits: 3    Level: graduate    Prerequisites: None

Faculty directed study for one or a small number of students on a topic of mutual interest. Requires permission of the faculty sponsor and the director of the graduate program.

CSC 9010: Special Topics
Credits: 3    Level: graduate    Prerequisites: Varies with the topic

Advanced elective study of topics of current interest and importance in the computer field. May be repeated for credit if topics are different.

CSC 9020: Independent Study
Credits: 3    Level: graduate    Prerequisites: CSC 8520

Individual research project in an advanced area of computer science, conducted under the guidance of a faculty member.

CSC 9021: Independent Study Continuation
Credits: 0    Level: graduate    Prerequisites: CSC 9020

Continuation beyond the first semester for students who have registered for Grand Challenges.

CSC 9025: Grand Challenges of Computing
Credits: 3    Level: graduate    Prerequisites: None

Individual or group research/development project involving an advanced area of computer science, conducted under the guidance of a faculty member.

CSC 9030: Thesis
Credits: 3    Level: graduate    Prerequisites: CSC 9025

Expanded independent study in which the student makes an original contribution to the computer science field. For more information about graduate thesis please see "".

CSC 9080: Thesis Continuation
Credits: 0    Level: graduate    Prerequisites: CSC 9030

Continuation beyond the first semester for students who have registered for the thesis (CSC 9030).

ECE 8429: Topics in Intelligent Systems
Credits: 3    Level: graduate    Prerequisites: None

The catalog description of this course will be posted soon.

ECE 8471: Software Reliability
Credits: 3    Level: graduate    Prerequisites: None

Introduction to concepts of software reliability within the context of software systems development. The course will be useful to managers who require a broad understanding of the topic as well as to software designers, programmers and testers who may need to apply these concepts in detail. Topics: a selection of classical software reliability models. In addition, some of the broader issues impacting software reliability, such as software design and testing, will be studied.

MAT 4310: Statistical Methods
Credits: 3    Level: undergraduate    Prerequisites: MAT 1505

Data displays and summarization, probability distributions, point and interval estimation, hypothesis testing, categorical data analysis, regression and correlation.

MSE 2000: Evolution and Learning in Computational and Robotic Agents
Credits: 4    Level: crossover    Prerequisites: None

Ever wonder how iTunes' Genius option figures out what music or movies you might like based on your purchase history? Can home-based medical-care robots learn how to respond to their human patients' emotional patterns? This course explores how software designers and artificial intelligence researchers draw inspiration from biology and learning theory to design programs and robotic agents that learn and adapt to changes in their environment. No prior programming experience is required.

PHI 2180: Computer Ethics
Credits: 3    Level: undergraduate    Prerequisites: None

Codes of professional ethics, unauthorized access, ownership of software, and the social responsibility of computing professionals.

PHY 2601: Computational Phy Lab I
Credits: 3    Level: crossover    Prerequisites: None

Computational Physics