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 be a programming-based, learn-by-doing-oriented course focused on applying foundational principles in security to real systems and networks . You will implement several real attacks and take advantage of several recreated vulnerable systems in order to understand the modern landscape of network and systems security. We will also be looking at various case studies of attacks and defense strategies, including known exploit proofs-of-concept, published papers, and documents from security agencies and cyber-security research firms.
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.
Big data is the area of informatics focusing on data sets whose size is beyond the ability of typical database and other software tools to capture, store, analyze, and manage. This course provides a rapid immersion into the area of big data and the technologies that have recently appeared to manage it. Students may not receive credit for both CS 554 and CSP 554.
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 discusses the architectures, technologies and techniques used in the development of the object-oriented enterprise web applications using technologies such as AJAX, Servlets, Java Server Pages, HTTP protocol, XML/HTML, Sessions/Cookies, JDBC, and Multithreading. Multitier architectures, application servers, client-server model and MVC architecture will be discussed and analyzed. The course also discusses the application architecture and the process to store the transactional data in document-oriented or relational database engines and how to connect the application servers to social media websites to collect the data for further analysis using Python/Pandas and use the results of the analysis in effective marketing campaigns, sentiment analysis, and focused advertisement.
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.
This course will present to students a system design methodology rooted in making the user part of the process. The course will begin by introducing the concepts of user-centered design, and will then take the students through the various aspects of systems design, including technical approaches and user-experience implications. The course will equip students with tools and methods for better understanding the needs of users and will teach them to translate these requirements into an effective design as measured by user situation awareness.