Skip Navigation

Spring 2013 Courses

CIS 105 Explorations in Computing
Overview of basic ideas and areas of computer science: includes algorithms, hardware, machine organization, programming languages, networks, artificial intelligence, and associated ethical issues.
CIS 110 Fluency with Information Technology
Introduction to information technology (IT), the study of computer-based information systems. Basics of the Internet and World Wide Web. Students create websites using XHTML and CSS.
CIS 111 Introduction to Web Programming
Project-based approach to learning computer programming by building interactive web pages using JavaScript and XHTML. Programming concepts including structured and object-oriented program design.
CIS 115 Multimedia Web Programming
Intermediate web programming with an emphasis on HTML5 multimedia: two-dimensional graphics, image processing, animation, video, user interaction, geolocation. Continuing JavaScript, DOM, Ajax, and JSON use, programming fundamentals, and debugging techniques.
CIS 122 Intro to Programming and Problem Solving
Computational problem solving, algorithm design, data structures, and programming using a multi-paradigm programming language. Introduces techniques for program design, testing, and debugging.
CIS 199 Making and Breaking Codes
Throughout recorded history, cryptographers (code makers) have been engaged in a fierce rivalry with cryptanalysts (code breakers), and the cracking of supposedly "unbreakable" codes has even changed the course of wars. Today, the demand for secure communication in the information age has further intensified the challenge to cryptographers: for electronic commerce, the means of encoding is usually public, yet only the authorized receiver knows the secret for decoding. This seminar will trace the history and structure of codes from ancient times through the present. Students will design codes of both classical and modern forms, challenging their classmates. They will also construct "public keys" for receiving messages that they alone can decode.
CIS 211 Computer Science II
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
CIS 212 Computer Science III
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
CIS 315 Intermediate Algorithms
Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity.
CIS 399 Programming Challenge
CIS 407 Seminar on CIS Careers and Internships
This seminar focuses on careers and internships for CIS students. It will cover resume preparation and polishing, interviewing skills, and will have talks by local companies on work environments, career choices, internship opportunities, and how best to prepare for a career in Computer Science. We will also read articles about the current job market and CS related job prospects.
CIS 410/510 Probabilistic Methods
Probabilistic and statistical methods are revolutionizing many areas of artificial intelligence (and computer science in general), including machine learning, natural language processing, computer vision, bioinformatics, robotics, planning, and more. This course will cover the fundamental techniques for representing problems as probability distributions, performing inference, and learning from data. Specific topics include Bayesian networks, Markov networks, mixture models, the EM algorithm, Markov chain Monte Carlo, belief propagation, hidden Markov models, and decision theory.
CIS 413/513 Advanced Data Structures
Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression.
CIS 415 Operating Systems
Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security.
CIS 423/523 Software Methodologies II
Application of concepts and methodologies covered in
CIS 425 Principles of Programming Languages
Syntax and semantics. Scope rules, environments, stores, denoted and expressed values, procedures, and parameters. Definitional interpreters. Types, overloading, parametric polymorphism, and inheritance. Varieties of abstraction.
CIS 441/541 Intro Computer Graphics
Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems.
CIS 452/552 Database Issues
Covers central database issues such as access methods, security, tuning, and concurrency control. Examines alternative database models.
CIS 453/553 Data Mining
Databases, machine learning, artificial intelligence, statistics, and data visualization. Examines data warehouses, data preprocessing, association and classification rule mining, and cluster analysis.
CIS 461/561 Introduction to Compilers
Lexical analysis, parsing, attribution, code generation.
CIS 490/590 Computer Ethics
Addresses ethical issues and social impacts of computing. Topics include crime, hacking, intellectual property, privacy, software reliability, employment, and worldwide networks.
CIS 607 Embedded Systems and Security
Embedded computing is the most prevalent type of computing in the world. Hundreds of millions of embedded processors exist in every variety of product, from toys to cyber-physical systems and critical infrastructure. This seminar will provide an introduction to embedded systems with some forays into control systems and logics. We will complement traditional lecture material with papers dealing with security in embedded and cyber-physical systems, as well as hands-on experience with embedded devices, from small-scale microcontrollers to full-fledged Android development boards. The aim is that by the end of the course, students will have a better understanding of these ubiquitous but little-understood devices, the decisions that guide their design and implementation, and the security vulnerabilities that they exhibit. We will use Android as a case study in the latter part of the course, examining how the platform and operating system interact with the middleware and the security ramifications of this design.
CIS 607 Systems Introspection, Awareness, and Adaption
The evolution and integration of complex systems incorporating parallel computing, distributed systems, networking, clouds infrastructure, energy efficient computing, high-performance I/O, and more is challenging the way these systems are being programmed, managed, optimized, and controlled. There is growing interest in regarding such systems as dynamic environments that should adapt their behavior to meet operating requirements and optimize objective functions. However, to do so, additional components must be added to the system to assess system state at runtime (observation, monitoring), process and analyze state information (introspection), inform actuators of system events and data (feedback), and control SW/HW to change operating conditions (adapt).

In this seminar, we will review research in the last several years on introspective, adaptive, autonomic, and feedback computing.

CIS 610 Software Defined Networking
This is a graduate level class that provides technical, hands-on experience about Software Defined Networking (SDN) for students.
CIS 622 Theoretical Foundations
Selected topics from computability and complexity theory. Repeatable twice when topic changes for maximum of 12 credits.
CIS 633 Advanced Network Security
Classic and state-of-the-art research topics in network security; threats and attacks, defense algorithms and mechanisms, measurement and evaluation of both security problems and solutions. Offered alternate years.
CIT 281 Web Applications Development I
Fundamentals of web application development using open-source software tools and technologies (Unix, Git), client-side frameworks, server-side programming (Node.js, PHP), model-view-controller pattern, data storage and APIs, cloud hosting.
CIT 383 Networking Fundamentals
Fundamentals of data communication and networks. Network management and security.