Computer Science Undergraduate Courses
These are the course descriptions for undergraduate Computer Science classes. You may want to learn about the undergraduate CS program on the Bachelor of Science in Computer Science page.
For further information, send e-mail to daimikj@udmercy.edu
Course Descriptions
CSC 171 Introduction to Computer Science I 3 cr.
Co requisite: MTH 141 or permission of instructor.
Overview of Computer Organization, Algorithm Design, Introduction to Programming in C++, Input / Output Statements, Arithmetic Expressions, Assignment Statements, Logical expressions, Conditional Statements, Control Statements, Functions and Function Calls, Math Library, I/O Library, Character Library, Introduction to Arrays and Pointers, Program Testing and Debugging.
CSC 172 Introduction to Computer Science II 3 cr.
Prerequisite: CSC 171.
Built In and User Defined Data Types, Arrays, Lists, Strings, Arrays, Records, Classes and Data Abstraction, C++ Object Oriented Software Developments, Inheritance, Composition, Dynamic Binding and Virtual Functions, Pointers, Dynamic Data, Reference Data Types, Recursion.
CSC 271 Assembly Language 3 cr.
Prerequisite: CSC 171
Basic PC Architecture, Computer Number Systems and Codes, Basic Components of Assembly Language, Assemblers, Directives, Linking and Executing Programs, Addressing Techniques, Symbolic Instructions, Writing .COM Programs, Logic and Control, Processing String Data, Processing Binary Data, Processing ASCII and BCD Data, Defining and Processing Tables, Macros.
CSC 315 Software Engineering 3 cr.
Prerequisite: CSC-172 or Equivalent
Software Processes, Software Requirements Engineering, System Models, Architectural Design, Object-Oriented design, Software Reuse, Verification and Validation, Software Testing, Software Cost, Quality management, Process Improvement.
CSC 317 Linux Systems Programming 3 cr.
Prerequisite: CSC 172 or Equivalent
The Linux Programming Toolkit, Input and output, Files and Directories, Process Control, Threads, Accessing System Information, Memory Management, Interprocess Communications, TCP/IP and Socket Programming, UDP, Multicast Sockets, Non-Blocking I/O, Programming the User Interface, Shell Programming, Device Drivers, Package Management, Projects.
CSC 341 Computer Graphics 3 cr.
Prerequisite: CSC172 or Equivalent, and MTH 141
Graphics Systems Software, Graphics Systems Hardware, Object Transformation, Viewing Transformation, Rotation, Translation, Scaling, Compositions of Transformations, Line Clipping, Polygon Clipping, Graphics Data Structures, Animation Techniques, Shading, Curves Representations, Surface Representations, Texture, Image Manipulation.
CSC 345 Object-Oriented Software Construction 3 cr.
Prerequisite: CSC 172
Object-oriented Programming Techniques, Encapsulation, Constructors, Destructors, Overloading, Single and Multiple Inheritance, Polymorphism, Composition, Templates, Iterators, Member Function Access, Data Hiding, Abstract Classes, Exception Handling, Projects.
CSC 354 Database Systems and Programming 3 cr.
Prerequisite: CSC 172 or CSC 345
Database Management, Database System Architecture, Relational Databases, SQL, Domains, Relations, Relational Algebra, Relational Calculus, Integrity, Views, Normalization, Database Security, Database Connectivity, Database Programming, Projects.
CSC 413 Internet Programming with Java 3 cr.
Prerequisite: CSC 172 or CSC 345
Java Applications, Java Applets, Control Structures, Methods, Arrays, Strings and Characters, Object-Oriented Programming, Graphics and Java 2D, Basic Graphical User Interface Components, Exception Handling, Files and Streams, and Java Utilities.
CSC 417 UNIX Systems Programming 3 cr.
Prerequisite: CSC 172 or CSC 345, and CSC 449
UNIX Organization, UNIX Commands, The Bourne Shell, The Korn Shell, The C Shell, Pattern Matching, The Emacs Editor, The Vi Editor, The Ex Editor, The AWK Scripting Language, Text Formatting, Macros, Preprocessors, The Source Code Control System (SCCS), Revision Control System (RCS), UNIX Networking.
CSC 441 Object Oriented Programming 3 cr.
Prerequisite: A year of computer programming in a procedural language
This course is designed to introduce object oriented programming to students who have had a background in traditional, procedural programming. Topics include Object oriented Programming Techniques, Encapsulation, Constructors, Destructors, Overloading, Single and Multiple Inheritance, Polymorphism, Composition, Templates, Iterators, Member Function Access, Data Hiding. The implementation language will be C++. The course will begin with a description of that part of C++ that is simply part of C (called the kernel language) and then present objects and their implementation in C++..
CSC 442 Comparative Programming Languages 3 cr.
Prerequisite: CSC 172 or CSC 345
Comparison of the Principles of High-Level Programming Languages, Binding of Variables, Storage Allocation, Parameter Passing, Procedure Linking, Program Structures and the Program Environment, Computer Projects.
Prerequisite: CSC 172, CSC 345, or Equivalent
Review of Object Oriented Principles, Standard Data Structures, Big O Notation, NP Completeness, Stacks, Queues, Generic Data Types, Dynamic Memory, Recursion, Linked Lists, Circular Lists, Doubly Linked Lists, Trees, Binary Search Trees, Heaps, Graphs, Sorting Algorithms, Searching Algorithms, Object Oriented Language Implementation of Data Structures and Algorithms.
CSC 445 Numerical Analysis 3 cr.
Prerequisite: CSC 172 or CSC 345
Recommended: MTH 372 and MTH 402.
Iterative Methods, Equations in One variable, Polynomial Approximation, Numerical Integration and Differentiation, Polynomial Approximation of Functions, Numerical Methods in Matrix Algebra, Least Squares Method, Numerical Methods in Differential Equations including Initial Value Problems, Computer Projects.
CSC 449 Operating Systems 3 cr.Prerequisite: CSC 172 or CSC 345
Review of Batch Processing Systems including their Components, Operating Characteristics, User Service and Limitations, Implementation Techniques for Parallel Processing of Input / Output and Interrupt Handling, Overall Structure of Multiprogramming Systems Techniques, Memory Management, File System Design and Management, System Accounting and other User Related Services, Traffic Control, Interprocess Communications, Design of System Modules and Interfaces, System Updating, Documentation and Operation, Computer Projects.
Prerequisite: CSC 413
Advanced Graphical User Interfaces, Multithreading, Java Beans, Java Networking, Java Database Connectivity (JDBC), Java Servlets, Java Security, Remote Method Invocation (RMI), Java Native Interface (JNI), Java 2 Micro Edition, Java Programming with CORBA.
CSC 454 Computer Security 3 cr.
Prerequisite: CSC 172 or CSC 345
Recommended: CSC 443 and MTH 415
Computer Security Software, Cryptanalysis Techniques, Shannon's Theory, The Data Encryption Standard, Public Key Cryptography, Factoring Algorithms, Discrete Log Problems, Bit Security of Discrete Logs, Signature Schemes, Cryptography and Hash Functions, Key Distribution and Agreement, Identification Schemes, Authentication Codes, Secret Sharing Schemes.
CSC 455 Introduction to Artificial Intelligence 3 cr.
Prerequisite: CSC 172 or CSC 345, and CSC 443
Introduction to Artificial Intelligence (AI), Intelligent Agents, Solving Problems by Searching, Informed Search Methods, Agents that Reason Logically, First-Order Logic, Inference in First-Order Logic, Planning, Planning and Acting, Uncertainty, Probabilistic Reasoning, Learning from Observation, AI Programming Languages, Projects.
CSC-457 Software Project Management 3 cr.
Prerequisite: CSC 172 or CSC 345, and CSC 443
Project Management Concepts, Project Metrics, Project Planning, Risk Analysis and Management, Project Scheduling, Project Tracking, Software Quality assurance, Software Configuration Management, Communicating Project Information, Critical Paths, Case Studies, and Term Project.
CSC-459 Computer Simulation and Modeling 3 cr.
Prerequisite: CSC 172, CSC 345, and CSC 443
Basic simulation modeling such as in single-server queuing systems, inventory systems, parallel and distributed simulation, continuous and discrete simulation, and Monte Carlo simulation. Modeling of complex systems such as time-shared computer model, multi-teller bank with jockeying, differential equation systems (difference, ordinary, partial), and job-shop models. Discussion of simulation software, review of basic probability and statistics needed in simulation, selecting input probability distributions, and building valid simulation models. Simulation programs will be written and studied.
CSC 461 Introduction to Data Mining 3 cr.
Prerequisite: CSC 172 and CSC 354
Introduction to Data Warehousing, Data Preparation for Data Mining, Classification, Association, Clustering, Prediction, Data Mining Applications, Data Mining Projects.
CSC 463 Introduction to Formal Languages 3 cr.
Prerequisite: CSC 172 and CSC 443
Introduction to Computation Theory, Finite Automata, Regular Languages and Grammars, Context Free Languages, Pushdown Automata, Turing Machines, Unrestricted Grammars, Recursive Languages.
CSC 464 Parallel Programming 3 cr.
Prerequisite: CSC 172 and CSC 445
Overview of Parallel Hardware and Software, Parallel Programming Tools, Parallel Numerical Integration Example, Collective Communication, Grouping Data for Communication, Dealing with I/O, Debugging Parallel Programs, Design and Coding of Parallel Programs, Performance, Advanced Point-to-Point Communication, Parallel Algorithms.
CSC 465 Win32 Programming 3 cr.
Prerequisite: CSC 172 or CSC 345
Development of Graphical User Interface Windows applications, using class Libraries and Applications Frameworks, Menus and Toolbars, Drawing in a Window, Creating Documents and Improving Views, Dialogs and Controls, Writing Personal DLLs, Connecting to Data Sources, OLE Documents, ActiveX Controls, Computer Projects.
CSC 466 Embedded Systems Programming 3 cr.
Prerequisite: CSC 172 and CSC 271
Embedded Systems Technology, Embedded System Example, Compiling, Linking, Locating, Downloading, Debugging, Hardware Requirements, Memory, Peripherals, Operating Systems, Code Optimization.
CSC 467 Distributed Computation 3 cr.
Prerequisite: CSC 172 and CSC 443
Theory of Distributed Computing, Basic Algorithms for Message Passing Systems, Leader Election in Rings, Mutual Exclusion in Shared Memory, Fault-Tolerant Consensus, Causality and Time, Formal Models for Simulations, Broadcast and Multicast, Distributed Shared Memory, Fault-Tolerant Clock Synchronization.
CSC 469 Seminar in Computer Science 3 cr.
Students prepare and present paper(s)/project related to their primary area of interest with approval from instructor. Computer science majors should take this course in their final year of study.
Will cover some topic of current interest in Computer Science. Topics will vary from semester to semester.












Print-friendly