Computer Science Prof Master (CSP)
Through hands-on experience in developing a client-server database project and developing and managing a client-server Internet project, this course teaches advanced skills for effective design and implementation of client-server applications. Students will examine the architectural and functionality decisions, technologies, configurations, languages, and techniques associated with client-server systems. Active/passive client-server technologies, as well as public, enterprise-wide, and inter-enterprise approaches to decision and operation support are discussed and implemented.
This course focuses on the technologies and protocols used by Internet WAN's and LAN's. The fundamental architecture, organization, and routing principles of the Internet are described. Part of the course will focus on emerging Internet technologies.
This course examines the principles for network design. The design process is studied from requirements gathering to deployment. The student will gain experience in estimating application load, network sizing, component choice, and protocol choice. Internetworking between popular components and protocols will be studied. Analytical and simulation techniques are described and used to design several local- and wide-area networks.
This course covers the architectures, protocols, and design issues for multimedia networks. Topics covered include coding, compression, streaming, synchronization, QoS, and adaptation. Current tools for multimedia networking will be surveyed. Issues with multimedia application development will be explored. Students will design and develop multimedia applications.
This course will present an in-depth examination of topics in data and network security such as: Access control, authentication, security assessment, network and data security tools, and security policies. A significant hands-on component includes network incidents to detect and fix.
This course will present the foundation of wireless technologies and examine state-of-the-art wireless systems, services, network technologies, and security.
This course discusses current fundamental concepts and development techniques for distributed applications. Topics covered include multithreaded programs, sockets, message-passing systems, remote method invocation and procedure calls, peer-to-peer networks, and underlying technologies for internet applications.
This course provides a hand-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client-server designs, and application portability.
This required seminar course surveys current applications of data science, bringing in lecturers from industry and academia to discuss real-world problems and how they are addressed within a data analytic framework. Students are required to attend all lectures and to give a short presentation or paper on one of the topics at the end of the semester. Permission is required from the instructor or department.
Surveys industrial and scientific applications of data analytics with case studies including exploration of ethical issues via case studies. Students will work with a variety of real world data sets and learn how to prepare data sets for analysis by cleaning and reformatting. We will also cover a variety of data exploration techniques including summary statistics and visualization methods.
Students will work in small groups to solve real-world data analysis problems for actual scientific or industrial clients. Innovation and clarity of presentation will be key elements of evaluation. Students will also have an option to fulfill course requirements through a data analytics internship with an industry partner.
To learn AI programming algorithms and techniques in common lisp. Time is split between common Lisp topics and discussions of implementation strategies for AI algorithms.
This course introduces the principles of design patterns for Object-Oriented software systems. A catalog of design patterns is shown, to illustrate the roles of patterns in designing and contracting complex software systems. The catalog of design patterns also provides a pragmatic reference to a well-engineered set of existing patterns currently in use. Also discussed is the impact of post-object oriented software development on design patterns.
Students will obtain a significant exposure to the UML technology. This will include exposure to modeling, model-driven development, executable models, and round-trip engineering.
Students will learn methods of software quality management. this will include exposure to software quality assurance, quality measures, and quality control. These quality management methods will be explained at the applications level.