CSC Course Information

Click Here For Undergraduate Course Offering Schedule


Course Descriptions - Undergraduate

CSC 1000 — The Practice of Computing

3 Credits Format: lecture/lab Level: nonmajor

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

3 Credits Format: lecture/lab Level: nonmajor

A unified view of the powerful tools for manipulating text and the algorithms they implement; complexity and security of operations on text; locating and searching online text databases and bibliographies via the Internet; alternative text structures: hypertext, multimedia; alternative input techniques: scanning, voice.

Prerequisites: None

Course Outcomes:

  • Explore a unified view of tools for manipulating text and the algorithms that implement them.
  • Explore techniques for locating and searching online text databases and bibliographies.
  • Explore alternate text structures, including hypertext and multimedia
  • Explore alternate input techniques, including optical text recognition and voice input.
  • Explore text operations, focusing on their complexity and security.

Elective For:

  • Non-Majors

CSC 1020 — Computing and the Web

3 Credits Format: lecture/lab Level: nonmajor

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.

Prerequisites: None

Course Outcomes:

  • Explore the underlying organization of computing systems, networks, and the World Wide Web.
  • Explore various web-based application technologies, including HTML and JavaScript.
  • Explore the concepts of good web site design, demonstrated by a large term project.

Required For:

  • Information Systems Major
  • Media & Technology Major

Elective For:

  • Non-Majors

CSC 1024 — Computing for Scientists

1 Credits Format: lecture Level: nonmajor

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.

Prerequisites: None

Course Outcomes:

  • Explore active learning of computing skills necessary for scientists, including data graphing, regression analysis, animation, symbolic computation, and search techniques.
  • Explore techniques for web page design and implementation.
  • Explore fundamental programming concepts and tools.
  • Explore the craft of high-quality scientific writing.

Required For:

  • Comprehensive Science Major
  • Mathematics Major

Elective For:

  • Non-Majors

CSC 1030 — Problem Solving with Computers

3 Credits Format: lecture/lab Level: nonmajor

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.

Prerequisites: None

Course Outcomes:

  • Explore various ways in which the computer can be used to solve problems, including spreadsheet analysis and forecasting models.
  • Explore basic programming concepts and statements.
  • Explore the strengths and weaknesses of computer-based problem solutions.

Elective For:

  • Non-Majors

CSC 1035 — Databases for Many Majors

3 Credits Format: lecture/lab Level: nonmajor

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.

Prerequisites: None

Course Outcomes:

  • Explore database concepts.
  • Provide experience in designing and implementing a database.
  • Explore computer technology in general, especially as it relates to database principles.
  • Provide a cooperative peer-based learning environment.
  • Explore techniques for communicating knowledge, facts, and understanding, both orally and in writing.

Elective For:

  • Non-Majors

CSC 1040 — Computing with Images

3 Credits Format: lecture Level: nonmajor

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

Prerequisites: None

Course Outcomes:

  • Explore software tools for image creation and processing.
  • Explore pictoral essay composition, visual expression, and multimedia presentations.
  • Explore image processing as an introduction to broader computing concepts.
  • • Understand the basics of color theory

Required For:

  • Media & Technology Major

Elective For:

  • Non-Majors

CSC 1043 — Laptop Instrument

3 Credits Format: lecture/lab Level: nonmajor

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.

Prerequisites: None

CSC 1045 — Algorithms, Cartoons, and Animation

3 Credits Format: lecture/lab Level: nonmajor

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

4 Credits Format: lecture Level: crossover

Algorithm design and programming fundamentals: data, variables, selection, loops, arrays, input/output; object-oriented design: objects, classes, methods, encapsulation; design and use of classes

Prerequisites: None

Course Outcomes:

  • Establish an understanding of fundamental object-oriented software concepts, including objects, classes, and encapsulation.
  • Establish an understanding of core programming issues, including algorithms, data storage, control structures, and method invocation.
  • Students should be able to design and implement a small application that makes use of library classes and one or two student created classes.
  • Establish a fundamental proficiency in programming using the Java programming language.

Required For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Cognitive Science Concentration
  • Information Systems Major

Elective For:

  • Non-Majors
  • Cognitive Science Minor
  • Comprehensive Science Major

CSC 1052 — Algorithms and Data Structures II

4 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1051 or ECE 1620

Course Outcomes:

  • Reinforce and expand on the material of CSC 1051, with an even stronger emphasis on object-oriented design, and problem analysis and solution design.
  • Establish an understanding of interfaces, inheritance, and polymorphism.
  • Establish an understanding of recursion and recursive programming.
  • Establish an understanding of the following data structures, including the specification, implementation, and use of each: stacks, queues, collections, lists, and trees.
  • Establish an understanding of basic algorithm analysis issues, including time/space tradeoffs and algorithm growth rates.

Required For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Information Systems Major
  • Computer Engineering Major

CSC 1300 — Discrete Structures

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: None

Corequisites: CSC 1051 or ECE 1620

Course Outcomes:

  • Understand sets, functions and relations. recurrences, elementary combinatorics, matrices, trees, and graphs.
  • Understand sequences, summations and recurrence relations.
  • Understand and use elementary combinatorics.
  • Understand and apply mathematical reasoning to matrices, graphs and trees.
  • Demonstrate ability to follow logical arguments including those using mathematical induction.

Required For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Information Systems Major
  • Computer Engineering Major

CSC 1600 — Operating Systems

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 2400 or ECE 2042

Course Outcomes:

  • Establish an understanding of the design and implementation of modern operating systems.
  • Establish an understanding of resource management issues, including process scheduling, concurrency, deadlock, memory management, file systems, and security.
  • Introduce students to the design and implementation of multi-tasking software in both Java and C, reinforced by one or more programming projects.
  • Introduce students to basic operations and commands of the UNIX / Linux operating system.

Required For:

  • Information Science Major
  • Computer Engineering Major

Elective For:

  • Computer Science Minor
  • Information Science Minor

CSC 1700 — Analysis of Algorithms

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 2053

Course Outcomes:

  • Establish an understanding of the fundamental techniques for the design and analysis of algorithms.
  • Establish an understanding of efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms.
  • Apply analysis techniques to important problems from various areas of computing, including sorting, searching, string processing, graphs, and arithmetic.

Required For:

  • Computer Science Major
  • Computer Science Minor

CSC 1800 — Organization of Programming Languages

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1052 and CSC 1300

Course Outcomes:

  • Establish an understanding of the design principles underlying high-level programming languages.
  • Explore the definition and structure of various language features, including data types and control structures.
  • Establish an understanding of the issues related to language translation, including formal lexical and syntactic analysis.

Required For:

  • Computer Science Major

Elective For:

  • Computer Science Minor

CSC 1930 — Explorations in Computing

3 Credits Format: lab Level: crossover

Emerging technologies & their applications; computing in support of investigations & applications in the humanities & social sciences.

For the Fall 2010 semester, the course topic is Problem Solving through Puzzles and Games.

CSC 1990 — Enrichment Seminar in Computing

3 Credits Format: special Level: undergraduate

The catalog description of this course will be posted soon.

Prerequisites: None

CSC 2014 — Java Bootcamp

1 Credits Format: lecture Level: undergraduate

Fast-paced coverage of object-oriented programming using Java and the Java API, including packages for creating graphics and applets; Java syntax and control structures; arrays; designing objects, classes, and methods; graphical user interfaces; input streams; exception handling. Audience: Programmers with experience in a language other than Java who would like a fast-paced introduction to Java and object-oriented programming.

Prerequisites: Familiarity with programming: variables, control structures (conditionals, loops, functions), arrays. Commonly, this is obtained by successful completion of an introductory programming course in a high level programming language such as C, C++, or Python.

CSC 2020 — Web Development & Technologies I

3 Credits Format: lecture Level: nonmajor

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

3 Credits Format: lecture Level: nonmajor

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

3 Credits Format: lecture Level: undergraduate

Topics include maps, hash tables, priority queues, graphs, internet programming and security. Additional topics may include event driven programming, MVC pattern, mobile programming, and application programmer interfaces.

Prerequisites: CSC 1052

Objectives:

  • Reinforce and expand on the material of CSC 1052, using even more complex examples.
  • Establish an understanding of the following data structures, including the specification, implementation, and use of each: maps (with hashing), priority queues, graphs.
  • Establish an understanding of how the internet works and the basic underpinnings of network security.
  • Expose students to design/development for alternate platforms, and the tools need to teach themselves when confronted with a new environment.

Required For:

  • Computer Science Major
  • Information Science Major
  • Computer Engineering Major

Elective For:

  • Computer Science Minor
  • Information Science Minor

CSC 2300 — Statistics for Computer Science

3 Credits Format: lecture Level: undergraduate

Students will acquire working knowledge related to probability and statistics to help them lead productive lives and to support their upper level CS classes plus future graduate work. Topics include probability, discrete and continuous distributions, experimentation, hypothesis testing.

Prerequisites: some programming may be required

Course Outcomes:

  • Students will be able to critique a scientific paper which includes a description of an experiment and its numerical analysis
  • Students will understand and apply the scientific method.
  • Students will understand and be able to "apply" the 'law of large numbers'.
  • Students will understand the concept of statistical significance and be able to differentiate between significant results and statistically significant results of an experiment.

Required For:

  • Computer Science Major

CSC 2400 — Computing Systems I

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 1052 and CSC 1300

Course Outcomes:

  • Differentiate between different internal formats to represent numerical data.
  • Explain the role of the basic computer system components (hardware and software) and how they interact with one another.
  • Enhance programming skills through the development, testing and debugging of C programs in Unix.
  • Understand security risks and protection mechanisms for computer systems.

Required For:

  • Computer Science Major
  • Computer Science Minor
  • Information Systems Major

CSC 2405 — Computing Systems II

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 2400

Course Outcomes:

  • Demonstrate working knowledge of thread and process management and concurrency.
  • Demonstrate a thorough understanding of virtual memory, physical memory and cache management.
  • Understand basic operating system services through the implementation of medium-to-large application programs.
  • Develop an ability to identify and analyze the needs and concerns of real-time systems.
  • Demonstrate an understanding of security risks faced by computer systems and security mechanisms designed to protect computer systems.

Required For:

  • Computer Science Major

CSC 2500 — Survey of Information Science

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: None

Course Outcomes:

  • Establish an understanding of information management issues in several distinct problem domains, including business, law, biology, medicine, electronic commerce, and libraries.
  • Provide experience in the organization and delivery of information-rich presentations.

Required For:

  • Information Science Major
  • Information Science Minor
  • Information Systems Major

CSC 2993 — Internship in Computing

3 Credits Format: special Level: undergraduate

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.

For the Fall 2010 semester two sections of the course are being offered:

  • Section 001 - Dr. Beck - Internship in Computing
  • Section 040 - Dr. Beck - Vatican Internship

Prerequisites: Junior standing and 3.0 overall GPA

Course Outcomes:

  • Provide practical experience in computing by working for a real-world organization.
  • Specific goals vary depending on the nature of the internship.
  • Explore the underlying characteristics of the experience using a journal of daily activities and a summary paper.

Elective For:

  • Computer Science Major
  • Information Science Major

CSC 3070 — Emerging Technology Trends

3 Credits Format: lecture Level: crossover

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.

Prerequisites: Junior standing

Course Outcomes:

  • Provide experience in a team-based project exploiting a new technology.
  • Explore state-of-the-art information systems technologies and applications.
  • Establish an appreciation for the effective application of new technologies with respect to feasibilty, financial viability, and overall effectiveness.

Required For:

  • Media & Technology Major

Elective For:

  • Information Systems Major

CSC 3080 — Information Security and Protection

3 Credits Format: lecture Level: crossover

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.

Prerequisites: CSC 2400

Course Outcomes:

  • Establish an understanding of information security issues, including availability, accuracy, authenticity, confidentiality, and integrity.
  • Establish an understanding of practical information management techniques, including redundancy, backups, recovery, audits, and change management.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Systems Major

CSC 3400 — Information Retrieval

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1052 and CSC 1300

Course Outcomes:

  • Establish an understanding of the issues involved in extracting meaningful content from largely unorganized data sources.
  • Establish an understanding of issues related to data management, including location, organization, and rendering.

Required For:

  • Information Science Major
  • Information Science Minor

Elective For:

  • Computer Science Major
  • Computer Science Minor

CSC 3990 — Computing Research Topics

3 Credits Format: lecture/lab Level: undergraduate

Centered around the development of a research project in one of several selected computing topics. Experimentation, data collection, literature review. Standard for written presentation of information. Reports of progress required of all students.

Prerequisites: CSC 2053

Course Outcomes:

  • Students will critically read and synthesize research papers.
  • Students will critically survey the literature on a research topic.
  • Students will critically analyze existing solutions to a research problem.
  • Students will write a literature survey on a computer science research topic.
  • Students will demonstrate an ability to formulate research questions.
  • Students will demonstrate an ability to find, retrieve and apply computer knowledge as needed.
  • Students will successfully develop and write a research plan.
  • Students will write a research proposal on an open computer science research problem.
  • Students will produce regular progress reports on research project status.
  • Students will demonstrate an ability to give good technical presentations.
  • Students will produce a research proposal to an open computer science research problem, or a conference-style research paper that combines literature survey, experimental design and evaluation, and which will be submitted to a computer science conference.
  • Students will demonstrate knowledge of research ethics and responsible conduct in research.

Elective For:

  • Computer Science Major
  • Computer Science Minor

CSC 4140 — Theory of Information

3 Credits Format: lecture Level: undergraduate

Information and coding theory, data compression, cryptology.

Prerequisites: CSC 1300

Course Outcomes:

  • Establish an understanding of the theoretical issues underlying information and its management, including codification, compression, and cryptology.

Required For:

  • Information Science Major

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Minor

CSC 4170 — Theory of Computation

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1700

Course Outcomes:

  • Demonstrate an understanding of the Chomsky hierarchy of grammars and languages.
  • Demonstrate understanding of fundamental concepts of theoretical computer science, such as decidability, undecidability, recognizability, etc.
  • Demonstrate an understanding of basic complexity theory and NP-completeness.
  • Develop skills in generating mathematically rigorous definitions and proofs.

Required For:

  • Computer Science Major

Elective For:

  • Computer Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor
  • Mathematics Minor

CSC 4181 — Compiler Construction

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1600 or CSC 2405

Course Outcomes:

  • Establish an understanding of the concepts and tools used for the development of compilers and other language translation software.
  • Provide experience in the development of a complete, working compiler for a substantial language.
  • Explore the connections between compilers and formal languages, data structures, and computer architecture.

Required For:

  • Computer Engineering Major

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Computer Engineering Minor

CSC 4200 — Advanced Algorithms and Complexity

3 Credits Format: lecture Level: undergraduate

Greedy algorithms, divide-and-conquer; dynamic programming; backtracking; branch-and-bound; linear and integer programming; Fast Fourier Transforms; probabilistic algorithms; NP-complete problems and approximation methods.

Prerequisites: CSC 1700

Course Outcomes:

  • Reinforce and expand on the material of CSC 1700, focusing on algorithms that were not previously covered, including approximation methods, probabilistic algorithms, and Fast Fourier Transforms.
  • Establish an understanding of approaches for proving algorithm optimality.

Elective For:

  • Computer Science Major
  • Computer Science Minor

CSC 4280 — Parallel Algorithms and Architecture

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 1700 and CSC 2405

Course Outcomes:

  • Establish an understanding of the design and analysis of parallel algorithms, including those for arithmetic, matrix operations, sorting, simulations, and graph problems.
  • Establish an understanding of the design of parallel architectures, including interconnection networks, meshes, trees, and hypercubes.

Elective For:

  • Computer Science Major
  • Computer Science Minor

CSC 4300 — Computer Graphics

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 2405

Course Outcomes:

  • Establish an understanding of hardware and software systems for rendering and managing computer graphics.
  • Establish an understanding of the capabilities and processing of graphics programming languages, including GKS, PHIGS, and VRML.
  • Establish an understanding of 2D and 3D graphics, including raster algorithms, object transformation, view control, and scene rendering.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4380 — Information Visualization

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1052

Course Outcomes:

  • Establish an understanding of the issues underlying the visualization of information, including color theory, motion dynamics, and visual cognition.
  • Provide the experience of developing and presenting a project that focuses on envisioning information.
  • Explore software tools that facilitate the visualization of information.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4480 — Principles of Database Systems

3 Credits Format: lecture Level: undergraduate

Concepts and technology of database management systems and data modeling with an emphasis on the relational model; database querying and normalization; physical data organization.

Prerequisites: CSC 1051 and CSC 1300

Course Outcomes:

  • Establish an understanding of database principles and the technologies underlying database management systems.
  • Establish an understanding of data models (with an emphasis on the relational model), physical data organization, data design, normalization, and querying.

Required For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Systems Major

Elective For:

  • Information Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4490 — Data Warehousing and Mining

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 4480 and (MAT 2310 or MAT 4310)

Course Outcomes:

  • Establish an understanding of the issues related to massive data sets, including storage techniques and effective use.
  • Explore the tools and techniques related to data warehouses and data mining.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Information Systems Major

CSC 4500 — Artificial Intelligence

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 2053

Course Outcomes:

  • Establish an understanding of the application areas of artificial intelligence, including search algorithms, natural language understanding, planning, and problem solving.
  • Establish an understanding of the nature of intelligence and knowledge representation techniques, including frameworks, semantic networks, and rule-based systems.

Required For:

  • Cognitive Science Concentration

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Cognitive Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4510 — Machine Learning

3 Credits Format: lecture Level: crossover

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.

Prerequisites: CSC 1051

Course Outcomes:

  • Demonstrate an understanding of the basic mechanics behind how neural networks, decision tree induction, logical-concept learning, and genetic algorithms operate.
  • Adapt at least of the above algorithms to an application area of their choice.
  • Ability to discuss the practical and ethical issues behind the use of the above learning approaches.
  • Ability to read seminal machine learning papers with some dexterity.
  • Students will conduct a 20-minute presentation on a Machine Learning topic.

Elective For:

  • Computer Science Major
  • Computer Science Minor

CSC 4550 — Expert and Knowledge Systems

3 Credits Format: lecture Level: undergraduate

Knowledge representation, uncertainty, automated knowledge acquisition, practical aspects of implementing expert systems.

Prerequisites: CSC 1051

Course Outcomes:

  • Establish an understanding of knowledge repesentation techniques and uncertainty.
  • Establish an understanding of the techniques for automated knowledge acquisition
  • Explore practical aspects of implementing expert systems.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Information Systems Major

CSC 4600 — Distributed Processing Systems

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 2405

Course Outcomes:

  • Establish an understanding of the principles underlying distributed systems, including data concurrecy, security, process coordination, and interprocess communication.
  • Explore various types of distributed systems, including distributed file systems, databases, operating systems, and directory services.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4630 — Software Development and Systems

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 2405 or CSC 1600

Course Outcomes:

  • Establish an understanding of software design and development through the use of software tools and program interoperability.
  • Explore various system-oriented software tools, including command interpreters, system libraries, pattern matchers, and filters.

Required For:

  • Astronomy and Astrophysics Major

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4700 — Software Engineering

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1052

Course Outcomes:

  • Survey the discipline of software engineering, including development processes, life-cycle models, quality issues, requirements analysis, design techniques, testing, and project management.
  • Provide experience as a team member of a medium-scale software development project, focusing on requirements elicitation, specification, and design.
  • Study and practice oral and written communication skills with respect to software development projects.
  • Explore modern software development tools.
  • Gain a strong enough foundation in Software Engineering that it could lead to a career.

Required For:

  • Computer Science Major
  • Information Science Major
  • Information Systems Major
  • Computer Engineering Major

Elective For:

  • Computer Science Minor
  • Information Science Minor

CSC 4710 — Information Systems Project Management

3 Credits Format: lecture Level: crossover

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.

Prerequisites: Junior standing

Course Outcomes:

  • Establish an understanding of project management issues, including integration, scope, scheduling, cost, quality, human resources, communications, and risk.
  • Provide practical project management experience that incorporates complex technology issues.

Required For:

  • Information Systems Major
  • Media & Technology Major

CSC 4730 — Human Computer Interaction

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 1052 and (MAT 2310 or MAT 4310)

Course Outcomes:

  • Establish an understanding of user interface design principles.
  • Establish an understanding of user-centered analysis and experimentation.
  • Establish an understanding of formal methods for specifying and modeling user interfaces.
  • Explore current research issues related to human computer interaction.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor
  • Information Systems Major
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4790 — Senior Projects

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 4700

Course Outcomes:

  • Reinforce and expand on the material of CSC 4700, with an even stronger emphasis on team-based development and communication skills.
  • Provide experience as a team member of a semester-long software development effort using modern development tools and techniques.
  • Manages allotted time and resources to successfully complete a non-trivial project.
  • Effective use of communication tools.

Required For:

  • Computer Science Major

Elective For:

  • Computer Science Minor
  • Information Science Major

CSC 4797 — Information Systems Capstone

3 Credits Format: special Level: undergraduate

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.

Prerequisites: Senior standing; Information Systems majors only

Course Outcomes:

  • Practice oral and written communication skills with respect to Information Systems projects.
  • Provide experience applying an emerging technology in a project that demonstrates project management and system design skills.

Required For:

  • Information Systems Major

CSC 4800 — Web Application Development

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: CSC 1052

Course Outcomes:

  • Establish an understanding of web-based software architectures.
  • Explore a broad spectrum of web technology standards, including XML, XHTML, CSS, and at least one server-side processing technology suite.
  • Explore issues related to web site design, navigation, accessibility, and content.

Required For:

  • Information Science Major

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Minor
  • Information Systems Major
  • Computer Engineering Major
  • Computer Engineering Minor

CSC 4900 — Computer Networks

3 Credits Format: lecture Level: undergraduate

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.

Prerequisites: CSC 2400

Course Outcomes:

  • Students will implement fundamental algorithms supporting networking protocols.
  • Students will have experience with developing programs using network application protocols.
  • Students will understand and be able analyze and apply the tradeoffs in developing network related protocols, algorithms, and services.
  • Student will gain insight into the direction of the current internet.
  • Demonstrate an understanding of network architecture concepts, the OSI reference model and the TCP/IP architecture.
  • Demonstrate proficiency in analyzing LAN technologies (including Ethernet, Token Ring, ATM-based LANs and wireless LANs).
  • Demonstrate proficiency in analyzing and verifying communication protocols (such as IPv6, ICMP, UDP and TCP).
  • Demonstrate an understanding of routing principles and algorithms, and routing protocols used on the Internet.
  • Demonstrate an understanding of application-layer protocols and their interaction with underlying services.
  • Demonstrate proficiency in network programming in C and Java.
  • Establish a thorough understanding of network-related security threats and solutions.

Required For:

  • Information Systems Major

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor

CSC 5900 — Seminar in Computing

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: Varies with the topic

Course Outcomes:

  • Establish an understanding of particular computing topics through interactive discussions and student presentations.
  • Specific goals vary depending on the nature of the seminar.
  • Expose students to computing topics that are not generally found in the rest of the CSC curriculum.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor

CSC 5930 — Topics in Computer Science

3 Credits Format: lecture Level: crossover

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

For the Spring 2008 semester, the course topic is Logic.

For the Fall 2008 semester, the course topic is Multimedia Technology.

For the Spring 2009 semester two sections of the course are being offered:

For the Fall 2009 semester one section of the course are being offered:

For the Fall 2010 semester two sections of the course are being offered:

  • Section 001 - Dr. Way - Computing and the Environment
  • Section 100 - Dr. Kearney - Health Information Management

For the Fall 2011 semester one section of the course is being offered:

For the Spring 2012 semester four sections of the course are being offered:

  • Section 001 - Dr. Gehlot - Mobile Device Programming
  • Section 002 - Dr. Japaridze - Logic
  • Section 003 - Dr. Joyce - Statistics for Computing
  • Section 100 - Dr. Way - Multimedia Technology

For the Spring 2014 semester there are three options.

Prerequisites: Varies with the topic

Course Outcomes:

  • Expose students to computer science topics that are not generally found in the rest of the CSC curriculum.
  • Establish an understanding of particular computer science topics through lecture presentations, research, and projects.
  • Specific goals vary depending on the nature of the topics covered.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor

CSC 5940 — Topics in Information Science

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: Varies with the topic

Course Outcomes:

  • Expose students to information science topics that are not generally found in the rest of the CSC curriculum.
  • Establish an understanding of particular information science topics through lecture presentations, research, and projects.
  • Specific goals vary depending on the nature of the topics covered.

Elective For:

  • Information Science Major
  • Information Science Minor

CSC 5993 — Independent Study

3 Credits Format: special Level: undergraduate

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.

Prerequisites: None

Course Outcomes:

  • Establish an understanding of particular computing topics through research and/or projects under the direction of a faculty advisor.
  • Specific goals vary depending on the nature of the independent study.

Elective For:

  • Computer Science Major
  • Computer Science Minor
  • Information Science Major
  • Information Science Minor
  • Cognitive Science Concentration
  • Cognitive Science Minor

HON 1503 — The Laptop Instrument

3 Credits Format: lecture/lab Level: crossover

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.

HON 4100 — Algorithms and Puzzles

3 Credits Format: lecture Level: crossover

The course introduces students to major problem solving strategies, with the emphasis on algorithmic problem solving. It will strengthen students' problem solving skills by intensive practice of solving puzzles. Students will learn fundamental computer science and mathematical concepts that arise naturally in solving puzzles. No knowledge of programming or of computers required.

MAT 4310 — Statistical Methods

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: MAT 1505

MSE 2000 — Evolution and Learning in Computational and Robotic Agents

4 Credits Format: lecture/lab Level: crossover

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

3 Credits Format: lecture Level: undergraduate

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

Prerequisites: None

Required For:

  • Information Science Major
  • Information Science Minor
  • Information Systems Major
  • Media & Technology Major

Elective For:

  • Computer Science Minor

PHY 2601 — Computational Phy Lab I

1 Credits Format: lab Level: crossover

Computational Physics

Course Descriptions - Graduate Courses

CSC 7000 — Algorithms and Programming

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

CSC 7100 — Computer Systems

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

CSC 8000 — Foundations of Algorithms and Data Structures

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8100 — Technology for Human Organizations

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

CSC 8301 — Design and Analysis of Algorithms

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Computer Science

Elective For:

  • M.S. in Software Engineering

CSC 8310 — Linguistics of Programming Languages

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Computer Science

Elective For:

  • M.S. in Software Engineering

CSC 8400 — Computer Systems

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8410 — Operating Systems Concepts

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8400

CSC 8470 — Computer Graphics

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8490 — Database Systems

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8301 and CSC 8410

Required For:

  • Knowledge-Based Systems Certificate
  • M.S. in Software Engineering

Elective For:

  • M.S. in Computer Science

CSC 8491 — Data Mining and Data Base Programming

3 Credits Format: lecture Level: graduate

CSC 8500 — Formal Grammars and Programming Language Theory

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8301 and CSC 8310

Elective For:

  • M.S. in Computer Science

CSC 8505 — Compiler Construction

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301 and CSC 8310

Elective For:

  • M.S. in Computer Science

CSC 8510 — Theory of Computability

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Computer Science

CSC 8520 — Artificial Intelligence

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8301

Required For:

  • Knowledge-Based Systems Certificate

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8530 — Distributed Systems

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301 and CSC 8410

Required For:

  • Networks Certificate
  • Web Technology Certificate

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8540 — Software Engineering

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • M.S. in Software Engineering

Elective For:

  • M.S. in Computer Science

CSC 8541 — Requirements Engineering

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8540

Required For:

  • M.S. in Software Engineering

CSC 8542 — Software Design and Evolution

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8541

Required For:

  • M.S. in Software Engineering

CSC 8550 — Concepts of Data Communications

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8400

Required For:

  • Networks Certificate

Elective For:

  • M.S. in Computer Science

CSC 8560 — Computer Networks

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301 and CSC 8410

Course Outcomes:

  • Students will implement fundamental algorithms supporting networking protocols
  • Students will have experience with developing programs using network application protocols
  • Students will understand and be able analyze and apply the tradeoffs in developing network related protocols, algorithms, and services
  • Student will gain insight into the direction of the current internet

Required For:

  • Networks Certificate
  • Web Technology Certificate

Elective For:

  • M.S. in Computer Science
  • Systems Programming Certificate
  • M.S. in Software Engineering

CSC 8570 — User/System Interface Design

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8580 — Network Management and Performance

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8530 or CSC 8560

Required For:

  • Networks Certificate

Elective For:

  • M.S. in Computer Science

CSC 8590 — Advanced Software Engineering

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8540

Elective For:

  • M.S. in Computer Science

CSC 8600 — Object-Oriented Design and Programming

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301 or CSC 8410

Elective For:

  • M.S. in Computer Science
  • Systems Programming Certificate
  • M.S. in Software Engineering

CSC 8610 — Multimedia Technology

3 Credits Format: lecture Level: graduate

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.

Prerequisites: None

Required For:

  • Web Technology Certificate

Elective For:

  • M.S. in Computer Science

CSC 8700 — System Programming in UNIX and C

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8301 and CSC 8410

Required For:

  • Systems Programming Certificate
  • Web Technology Certificate

Elective For:

  • M.S. in Computer Science

CSC 8710 — Advanced System Programming

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8700

Required For:

  • Systems Programming Certificate

Elective For:

  • M.S. in Computer Science

CSC 8720 — System Administration Concepts

3 Credits Format: lecture Level: graduate

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.

Prerequisites: CSC 8700

Required For:

  • Systems Programming Certificate

Elective For:

  • M.S. in Computer Science

CSC 8750 — Expert Systems

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8520

Required For:

  • Knowledge-Based Systems Certificate

Elective For:

  • M.S. in Computer Science

CSC 8800 — Applied Computer Science I

3 Credits Format: lecture Level: graduate

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

Prerequisites: Permission of instructor

Required For:

  • Lockheed-Martin Technical Development Curriculum

CSC 8810 — Applied Computer Science II

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8800

Required For:

  • Lockheed-Martin Technical Development Curriculum

CSC 8820 — Applied Computer Science III

3 Credits Format: lecture Level: graduate

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

Prerequisites: CSC 8810

Required For:

  • Lockheed-Martin Technical Development Curriculum

CSC 8990 — Graduate Computing Practicum

1 Credits Format: special Level: graduate

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

Prerequisites: CSC 8301 and CSC 8310 and CSC 8410 and CSC 8510

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 8991 — Graduate Computing Practicum Continuation

0 Credits Format: special Level: graduate

Prerequisites: CSC 8990

CSC 9000 — Guided Study

3 Credits Format: special Level: graduate

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

3 Credits Format: lecture Level: graduate

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

There are two offerings in the Spring of 2010

  • Section 001: Semantic Web, Streit
  • Section 002: Software Project Management, Kellar

There is one offering in the Summer of 2010

There are two offerings in the Fall of 2010

  • Section 001: Web Technology, Nadi
  • Section 002: Software Entrepreneurship

There are three offerings in the Spring of 2011

  • Section 001: Knowledge Based Systems, P. Matuszek
  • Section 002: Web Centric Development, Schragger
  • Section 003: Software Testing, Wise

There is one offering in the Summer of 2011

  • Section 030: SOA Design and Implementation, Schragger

There are four offerings in the Fall of 2011

  • Section 001: Text Mining, P. Matuszek
  • Section 002: Cybersecurity
  • Section 003: Software Project Management, Kellar
  • Section 004: Cloud Computing, Schragger

There are three offerings in the Spring of 2012

  • Section 001: Text Mining, P. Matuszek
  • Section 002: Digital Libraries, Cassel
  • Section 003: Software Testing, Wise

There are five offerings in the Spring of 2014

For the summer of 2014 there is one offering of the course:

For the summer of 2015 there is one offering of the course:

Prerequisites: Varies with the topic

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 9020 — Independent Study

3 Credits Format: special Level: graduate

Individual research project in an advanced area of computer science, conducted under the guidance of a faculty member.
Click here to go to the Graduate Independent Study Page.

Prerequisites: None

Required For:

  • Knowledge-Based Systems Certificate
  • Networks Certificate
  • Systems Programming Certificate
  • Web Technology Certificate

CSC 9021 — Independent Study Continuation

0 Credits Format: special Level: graduate

Continuation beyond the first semester for students who have registered for the independent study (CSC 9020).

Prerequisites: CSC 9020

CSC 9025 — Grand Challenges of Computing

3 Credits Format: lecture Level: graduate

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

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 9030 — Thesis

3 Credits Format: special Level: graduate

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

Prerequisites: CSC 9020

Elective For:

  • M.S. in Computer Science
  • M.S. in Software Engineering

CSC 9080 — Thesis Continuation

0 Credits Format: special Level: graduate

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

Prerequisites: CSC 9030

ECE 7428 — Computer Comm Networks

Credits Format: lecture Level: graduate

ECE 8429 — Topics in Intelligent Systems

3 Credits Format: lecture Level: graduate

Elective For:

  • Knowledge-Based Systems Certificate

ECE 8471 — Software Reliability

3 Credits Format: lecture Level: graduate

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.

Elective For:

  • M.S. in Software Engineering

ECE 8482 — Semantic Web

Credits Format: lecture Level: graduate