Skip Navigation

Spring 2018 Courses

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 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 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 with
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 with
CIS 315 Intermediate Algorithms
Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity.
CIS 330 C/C++ & Unix
Practical software design and programming activities in a C/C++ and Unix environment, with emphasis on the details of C/C++ and good programming style and practices.
CIS 399 Topics in Data Science
Focuses on text analytics and natural language processing. These are areas of data science that have important applications in today’s world, including detecting fake news, looking for errors in published papers, analyzing product reviews, and detecting similarities among gothic novels. It is hard to think of an academic or professional field that does not deal with text in some form. Students will use python and its libraries.

The course will use a hybrid instructional format.

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 Advanced Functional Programming
This course covers the use of functional programming languages and techniques for the development of software. Emphasis is placed on how type systems, equational reasoning, and control of side effects can help design and maintain programs.
CIS 415 Operating Systems
Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security.
CIS 422/522 Software Methodology
Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects.
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 427/527 Introduction to Logic
Basic notions of logic: propositional logic, first-order logic, Hilbert systems, sequent calculus, natural deduction. Soundness, completeness, undecidability. Current research in logic frameworks, automated deduction, Curry-Howard isomorphism.
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 473/573 Probabilistic Methods
Fundamental techniques for representing problems as probability distributions, performing inference, and learning from data. Topics include Bayesian and Markov networks, variable elimination, loopy belief propagation, and parameter.
CIS 607 Big Data and Deep Learning
Introduction and discussion of two interesting research areas, Big Data and Deep Learning, and their potential overlap.
CIS 607 Parallel Systems Modeling and Simulation
Parallel systems are among the most complex machines humankind has ever invented. Understanding how parallel system function and perform is challenging. Empirical-based techniques allow us to measurement and analyze real parallel system environments. However, it requires access to those environments for experiments. Modeling and simulation can overcome some of these limitations, as well as allow us to predict behavior and performance in scenarios not easily realized in practice (like millions of cores!). This seminar will look at the state-of-the-art research, techniques, and tools for parallel systems modeling and simulation.
CIS 621 Algorithms and Complexity
Design and analysis of algorithms, strategies for efficient algorithms, introduction to complexity theory including NP-completeness.
CIS 631 Parallel Processing
Advanced topics in parallel processing including massively parallel computer architecture, supercomputers, parallelizing compiler technology, performance evaluation, parallel programming languages, parallel applications.
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.