CS 390 Foundations
of Modern Programming: Modern Programming Methods and
Systems -- Capture the Fundamental Principles of Knowledge
for Greater Success in all Areas
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. This course cannot
be taken for graduate credit, but may be a required prerequisiste
for CS 401 for incoming students who do not pass the qualifying
exam administered to incoming students.
CS 401 Modern
Programming Practices: Current Concepts and Best Practices
in Software Development -- Knowledge is the Basis of Action
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. (2 units)
CS 422 Database
Management Systems
Database management systems organize and retrieve information,
allowing the user to access the desired information easily
and efficiently. Topics in this course include relational,
hierarchical, and network data models; query languages; relational
calculus, data normalization, and schemes; file organization
techniques; data security and integrity; and study of a specific
commercial database management system. (4 units)
CS 425 Software
Engineering
This course introduces the major principles used in the development
of software. General principles and methods are identified,
and their application is located in various phases and models
of software engineering. The focus is on understanding the
organizing power inherent in the underlying concepts, principles,
and processes, rather than any particular developmental method
or model. Topics include: the nature and qualities of software;
types and qualities of specifications; objectives of design;
verification approaches; production process models; and classification
of supporting tools and environments. (4 units)
CS 435 Algorithms
This course presents methods for analyzing the efficiency of algorithms as well as a variety of known efficient algorithms. Topics include graph algorithms, combinatorial algorithms, searching and sorting, numerical and arithmetic algorithms, recurrence relations, computing time and space complexity of algorithms, and NP-complete problems. (4 units)
CS 440 Compiler Construction
Students learn the successive stages and detailed mechanics by which high-level programming languages are translated into machine language by a compiler. Topics include language and grammar specification, compiler structure, compiler generation tools, lexical analysis, parsing, syntax analysis, semantic analysis, intermediate language, code generation and optimization, storage management and linkages, user interface, and a large programming project implementing part of a compiler. (4 units)
CS 450 Computer
Communication Networks
Computers are connected with high-speed communication lines
in local area or wide area networks, for the purpose of sharing
databases and distributing workloads to increase efficiency
and improve service. Topics include sampling and information
theory, error detecting and correction codes, network architecture,
communication protocols and models, protocol analysis, hardware
components, logical and physical topology, message routing
and switching, flow control, local area networks, and data
security. (4 units)
CS 465 Operating
Systems
An operating system controls the central resources of the
computer system and allocates them to individual users. Course
topics include sequential and concurrent processes, mutual
exclusion, resource sharing, process cooperation, deadlock,
resource allocation, processor scheduling, memory management,
segmentation and paging algorithms, timesharing systems, scheduling
algorithms, and resource protection. (4 units)
CS 466 Computer Security
This course goes deeply into the three aspects of computer security: confidentiality,
integrity and confidentiality. Several models for confidential and integrity security
policies are studied. The role of cryptography in assuring confidentiality and
integrity is examined. Other topics include authentication, auditting, penetration testing,
common vulnerabilities and intrusion detection. The course concludes with the case study of a
realistic secure system. Students will be asked to read papers from the security
literature and apply them to material given in the lectures.
CS 467 Secure Coding Practices
This course goes deeply into the three aspects of computer security: confidentiality, integrity and availablitly. Several models for confidential and integrity security policies are studied. The role of cryptography in assuring confidentiality and integrity is examined. Other topics include authentication, auditting, penetration testing, common vulnerabilities and intrusion detection. The course concludes with the case study of a realistic secure system. Students will be asked to read papers from the security literature and apply them to material given in the lectures.
The course examines the 19 issues that account for 95% of the security vulnerabilities that occur in the field. The issues are:
1. Buffer Overflows
2. Format String problems
3. Integer range errors
4. SQL injection
5. Command injection
6. Failure to handle errors
7. Cross-site scripting
8. Failing to protect network traffic
9. Use of "magic" URLs and hidden fields
10. Improper use of SSL
11. Use of weak password-based systems
12. Failing to store and protect data securely
13. Information leakage
14. Improper file access
15. Trusting network address information
16. Race conditions (improper thread programming)
17. Unauthenticated key exchange
18. Failing to use cryptographically strong random numbers
19. Poor usability
The final project of the course will analyze and remove vulnerabilities from a web application.
The course will emphasize that a computer programmer needs both broad comprehension and the ability to focus to produce secure software.
CS 470 Artificial Intelligence
The field of artificial intelligence attempts to create computer programs that reflect the values of human intelligence. Course topics include state-space representations, tree and graph searches, predicate calculus and deduction, heuristics, learning and problem solving, natural language processing, expert systems, and programming languages for artificial intelligence. (4 units)
CS 471 Parallel Programming
To actualize the potential offered by multi-core processors for improved performance, knowledge of parallel programming techniques is required. Through a series of parallel programming projects, students will gain a new level of programming skill. Specific topics include: data parallelism, multiprocessor architecture, synchronous parallelism, parallel algorithms, OpenMP threading standard, computer clusters, Message-Passing Interface (MPI) standard, communication streams. (4 units)
CS 472 Web Programming
This is a project-based course to develop Web 2.0 applications. We will cover the core set of technologies needed - XHTML, CSS, JavaScript, DHTML, PHP, SQL, MySQL, XML, and AJAX. We will also look into design issues. We will consider design strategies to make scalable web sites, access datasets from other web sites, and integrate the analysis of
those datasets. (4 units)
CS 475 Computer Graphics
Recent advances in Computer Graphics hardware and software have made novel applications feasible in fields such as: Computer Games, Scientific Visualization, 3D Medical Imaging, Virtual Reality, and other innovative user interfaces... In this course we will cover the basic algorithms and mathematical concepts underlying the creation of 2D and 3D graphics. Several short projects will be completed using OpenGL and Java3D. The course evaluation will also include one theoretical exam and one project in which teams of students will create an interactive 3D application. Students who take this course will have a plus when sending their resumes to companies working on this growing and exciting field. (4 units)
CS 476 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.
CS 501 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.
(4 units)
CS 505 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. (4 units)
CS 525
Advanced Software Development: The Structures
and Patterns of Software that Embody Knowledge of Good Design
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. (4 units)
CS 545 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. (4 units)
CS 547 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. (4 units)
CS 575 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 specifipurposes. 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. (This course is primarily for
students in the internship or cooperative programs.) (0.5-1 unit per block - may be
repeated.)
SCI-33 Science of Creative Intelligence
The 33-lesson Science of Creative Intelligence (SCI) course presents the interdisciplinary basis of the entire graduate Computer Science program. The course is based on a series of videotaped lectures by Maharishi Mahesh Yogi on the nature, range, qualities, and principles of creative intelligence (as expressed in human consciousness and the laws of nature studied by the sciences). Maharishi also presents the expressions of creative intelligence in individual life and its application in every area of society to realize the highest potential. Because Computer Science like all other disciplines is based in the intellectual understanding and experience of the structures of Natural Law, the general principles brought out in this course provide a unifying theme for all of the more specific principles studied in all other courses in the curriculum.
In addition, during this course students learn the Transcendental Meditation Technique, which enlivens these same underlying qualities of intelligence in them, providing increased creativity, alertness, and intelligence as a basis for increased success in every area of study, their profession, and their life.
Forest Academy
Forest Academy is a 2-week course which is an opportunity
for the students to deepen their understanding of their own
personal growth. Topics include skill in action, higher states
of consciousness, cultural values, mind and body, creativity,
collective consciousness, and world peace.
Note:
The academic content of the M.S. in Computer Science program
is subject to change.
© 2008, Maharishi
University of Management. All rights reserved. ® Transcendental
Meditation, TM, Maharishi Transcendental Meditation, and Maharishi
University of Management are registered or common law trademarks
licensed to Maharishi Vedic Education Development Corporation
and used under sublicense. |