GRADUATE PROGRAM
Fall Semester
| Course code | Title | Hours |
|---|---|---|
| CSC 700 | Foundations of Modern Programming | 3 |
| CSC 701 | Modern Programming Methods and Systems | 3 |
| CSC 711 | Advanced Computer Architecture | 3 |
| CSC 712 | Advanced Programming Languages | 3 |
| CSC 714 | Advanced Software Development | 3 |
| CSC 716 | Distributed Computing | 3 |
| CSC 717 | Distributed Architecture | 3 |
| CSC 719 | Practicum in Software Development | 3 |
Spring Semester
| Course code | Title | Hours |
|---|---|---|
| CSC 721 | Hardware, Software, and Troubleshooting Personal Computers | 3 |
| CSC 723 | Web-Based Resources in Educational Settings | 3 |
| CSC 724 | Networking and Telecommunications in Educational Settings | 3 |
| CSC 725 | Image Processing | 3 |
| CSC 727 | Computer Graphics | 3 |
| CSC 728 | Methods of Optimization | 3 |
| CSC 729 | Data Mining | 3 |
Summer Classes
| Course code | Title | Hours |
|---|---|---|
| CSC 731 | Artificial Intelligence | 3 |
| CSC 734 | Computer Speech, Music and Images | 3 |
| CSC 735 | Computer Networks | 3 |
| CSC 736 | Wireless Networks | 3 |
| CSC 742 | Computing for Bioinformatics | 3 |
| CSC 737 | Advanced Topics in Computer Science | 3 |
COURSE DESCRIPTION
CSC 700: Foundations of Modern Programming: Modern Programming Methods and Systems:-
This course presents the fundamental principles of object-oriented programming. Students will learn how to write reusable and better-maintained software, and integrate this knowledge with laboratory assignments and projects. Topics include: Fundamental principles and models of object-oriented programming, UML class diagrams and design principles that promote reusability and maintainability of software. Also studied are stacks, queues, linked lists, and trees, using the Java programming language..
CSC 711: Advanced Computer Architecture:-
This course presents the methods, principles, and metrics of computer systems architecture. The interactions of hardware components, system architecture, and software algorithms are the basis for evaluating the performance and characteristics of a range of advanced computing systems. Topics include pipelined and multiprocessing architecture, parallel processing, distributed processing, case studies, and comparisons of existing systems.
CSC 712: Advanced Programming Languages:-
This course considers advanced topics in programming language design with emphasis on formal methods and abstraction mechanisms. Topics include data and control abstraction, formal specification of syntax and semantics, proofs of program correctness, non-deterministic programming, advanced control structures, and study of specific languages.
CSC 714: Advanced Software Development:-
This course considers the current methods and practices for good design of software systems. Topics include: software design patterns, frameworks, architectures, and designing systems to apply these multi-level abstractions.
CSC 716: Distributed Computing:-
This course studies the issues, methods, and techniques for creating multi-computing distributed systems across networked or more tightly coupled interconnect systems. Topics include communication, protocol, and synchronization, performance, and the architecture of server, client/server, multi-tier, and mobile agent distributed object systems. Software issues of portability, extendibility, and interpretability are also studied.
CSC 717: Distributed Architecture:-
This course will focus on enterprise architecture principles, patterns and design considerations. We will investigate how to implement an object model in a distributed application environment using distributed technologies such Enterprise JavaBeans (EJB) and see how such technologies allow us to build robust and scalable enterprise applications that include object persistence, remote accessibility, security, transactions etc.
CSC 719: Practicum in Software Development:-
In this practicum course, students perform computer-related tasks in a technical
professional position. The tasks performed may be in the design and development of new systems or the application of existing systems for specific purposes. Practicum job descriptions are formulated by the employer and the student, and require approval in advance by one of the graduate faculty of the department, in consultation with the practicum supervisor where the student is placed.
CSC 721: Hardware, Software, and Troubleshooting Personal Computers:-
An introduction to the installation, maintenance, troubleshooting, upgrading, simple repair, and management of personal computers found in educational settings. This course will provide numerous laboratory experiences providing hands-on experience with the goal of enabling students to support personal computer laboratories found in PK-12 schools.
CSC 723: Web-Based Resources in Educational Settings
An introduction to the design, implementation, and management of World Wide Web resources over the Internet and Intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance. The objective of the course is to know tools (HTML, JavaScript, and Java applets, and Internet Server software, and Navigator/Internet Explorer software packages), and their applicability in WWW design and management in PK-12 school settings.
CSC 724: 610 Networking and Telecommunications in Educational Settings:-
An introduction to networking and data communications from an educator's perspective. The course will examine the necessary computer hardware, software, and personnel resources relevant to networking and data communication requirements in various educational settings. Local Area Networks, Wide Area Networks, Network Interconnections, and the Internet will be addressed.
CSC 725: Image Processing:-
The subject that will be covered are- Fundamentals of digital imaging, Image enhancement in the spatial domain (e.g., contrast brightness and gray level transformations, histogram and its equalization, spatial filtering: blurring, sharpening, median), Image enhancement in frequency domain (Fourier transform, convolution theorem, filtering in frequency domain), Image restoration (from blur and noise), Color spaces, color processing, morphological image processing, image segmentation (including edge detection, Hough transform, segmentation by thresholding, by split-and-merge and by watershed), Image compression-main structure of JPEG and MPEG, some on pattern recognition. Also- learning to work with MATLAB language.
CSC 727: Computer Graphics:-
An introduction to computer graphics, with an emphasis on application programming. Algorithms for two dimensional graphics, including windowing, clipping, and transformations; algorithms for three dimensional graphics, including viewing, transformations, and removal of hidden lines and surfaces. Data structures for graphics and interactive techniques will be stressed.
CSC 728: Methods of Optimization:-
Convex sets, classical optimization of functions, constrained optimiution, search techniques, linear and nonlinear optimization, applications to applied problems.
CSC 729: Data Mining:-
This course studies the emerging technology of data mining - the automated extraction of patterns and information from data. The focus will be on understanding the algorithms underlying data mining and on the practical use of those algorithms. Students will use data mining software to analyze collections of data.
CSC 731: Artificial Intelligence:-
Techniques of artificial intelligence, including study of expert systems, natural language processing, search strategies, computer vision and robotics.
CSC 734: Computer Speech, Music and Images:-
This is an applied course focusing on the technical aspects of computer-based multimedia-speech, music, audio, and video. In any given semester, the focus may be more on audio or image processing, or it may be equally balanced between the two. Topics include multimedia data capture and representation, methods of data compression, multimedia information retrieval, and multimedia standards.
CSC 735: Computer Networks:-
An introduction to the theory, concepts and techniques upon which modern computer networks and telecommunication systems are based. The emphasis will be on layered network architectures, the design frameworks for both local and wide area networks and communication protocols.
CSC 736: Wireless Networks:-
An introduction to the fundamental theory, concepts and techniques of wireless communication, wireless networks, network architecture, and wireless applications. Students will gain an understanding of the significance that wireless systems and user mobility have on the construction and handling of a data or telecommunications network. Topics include wireless and ad hoc networks, enabling technologies, multiplexing, protocol design, network security, and quality of service.
CSC 742: Computing for Bioinformatics:-
This course focuses on computational techniques used in bioinformatics. Topics will include nucleotide and amino acid data representation, sequence alignment, coding sequence prediction, and use of statistical models. Students will learn to use bioinformatics libraries with a script language such as Python or Perl.
CSC 737: Advanced Topics in Computer Science:-
Detailed consideration of advanced topics in the field of Computer Science. Topics will change, and this course may be repeated with differing topics.
