View: Text-Only | Mobile

 

College of Engineering

Undergraduate Level 100 Courses

CIS 110 three credits
Computer Literacy
An introduction to computers, evolution of computer systems and the impact of computers on the society. In this hands-on laboratory course, students will use Macintosh computers to learn about components of computer systems and study various applications including word processing, spreadsheet, database, presentation and internet browsing software. With the HyperCard, students will learn how to design and program in the multimedia environment. Each student will then use this knowledge to develop an individual final project for the course. Algorithm development, syntax and semantics of the C programming language stressing computer systems concepts. Concepts of the machine model, procedural programming and program development including coding, debugging and testing of programs are covered. The use of libraries, header files and macros are covered. Engineering examples are used. Variables, operators, control, input/output, arrays, structures, functions, pointers and files are covered using engineering examples.

CIS 115 three credits
Computer Programming with C
2 hours lecture; 2 hours laboratory
Algorithm development, syntax and semantics of a high level programming language, debugging and verification of programs. Concepts of structured programming. Arrays, subroutines. Elementary system concepts (compilation, time-sharing).

CIS 120 three credits
Web Page Development
An introduction to the theory and application of creating web pages using HTML and JavaScript. HTML is the underlying structure used by the World Wide Web and will be used in this course along with JavaScript to assist students in building a foundation to become proficient in designing web pages. The primary theme of the course is learning how to create web pages that are attractive, meaningful, and well designed. Assessment of achieving these goals also will be addressed. As time allows, DHTML (Dynamic HTML), XML and Java applets may be used.

CIS 160 three credits
Exploring Computer Programming with Animation
2 hours lecture; 2 hours laboratory
Introduction to computer science and programming. Topics include basic program design and implementation process, simple data types, control structures, introduction to algorithms, debugging techniques, object-oriented and event-driven programming concepts. The course introduces object-oriented design, good software engineering principles and helps the development of fundamental programming skills. The design and the implementation of animation projects in 3D virtuel worls are used as teaching and learning tools in this course.

CIS 161 three credits
Computer Programming BASIC
An elementary programming course in the BASIC programming language, designed for the student with no prior experience in data processing.

CIS 180 four credits
Object-Oriented Programming I
3 hours lecture; 2 hours laboratory
Basic concepts in programming and introduction to the object paradigm. The course emphasizes concepts of the object paradigm including classes, objects, messages, methods, inheritance, polymorphism and late-binding, and teaches how to design and implement simple programs in an object-oriented language. Basic concepts of efficiency and time complexity, including big-O notation, are introduced. The course also covers the basics of how to use a computer and basic software tools, including libraries of components, in the process of developing programs.

CIS 181 four credits
Object-Oriented Programming II
Prerequisite: CIS 180
3 hours lecture; 2 hours laboratory
Software development using advanced object paradigm concepts. This course introduces threads, networking, generic programming, and exception handling. The course covers in depth the advanced topics of object paradigm such as inheritance and polymorphism. These concepts are introduced in the context of developing software using software tools including libraries of components.

CIS 183 four credits
Object-Oriented Paradigm
3 hours lecture; 2 hours laboratory
Introduction to the object paradigm. Software development using advanced object paradigm concepts of inheritance and polymorphism. Introduction to concurrency, and faulty tolerance. Developing software using software tools including the libraries of components. Comparison of procedural and object paradigms. Introduction to programming with multiple processes and with exception handling.

CIS 190 four credits
Introduction to Procedural Programming
Prerequisite: CIS 180
3 hours lecture; 2 hours laboratory
Procedural Programming in C or C++ under UNIX. Macros, function prototypes, standard libraries, file processing, pointers, and dynamic memory management are discussed. The implementation of fundamental data structures and algorithms is emphasized. Data structures covered include structures, unions, linked lists, stacks, and queues. Recursion algorithms are discussed. Code efficiency and time complexity are discussed. Software development tools in the UNIX environment are introduced. Introductory UNIX system programming is also presented.

Undergraduate Level 200 Courses

CIS 210 three credits
Understanding E-Commerce Technologies
An introduction to the technology issues in e-commerce. This course covers major types of e-commerce, the technology infrastructure of e-commerce, e-commerce web sites, security and encryption in e-commerce, payment systems, and B2B e-commerce technologies. Case studies on current e-commerce companies are used to gain insight on related issues. This course is intended to provide students from different majors with an overview and also necessary details of e-commerce technologies. No technical background is assumed.

CIS 220 three credits
Advanced Website Development
Moving from building attractive Web Pages to building fundamentally sound and effective Web Sites. This course extends basic Web page development ideas to constructing effective Web sites through hands-on exercises. The course will cover design conception through storyboarding, navigational flow and fundamentals of well-designed Web sites. A continuation into the theory and application of creating web pages using advanced HTML features while introducing DHTML, XML and JavaScript to extend the students knowledge of Web page development. Working with the JavaScript objects and events will be a major basis of this course. The course will also focus on the use of multimedia to create and maintain state-of-the art web sites.

CIS 261 three credits
Computer Programming, FORTRAN
2 hours lecture; 2 hours laboratory
An intensive course in the FORTRAN programming language.

CIS 265 three credits
Program Design and Data Structures with C
Prerequisite: Any programming course
An intensive course in the “C” programming language with introduction to UNIX for students who are already proficient in another high-level programming language such as BASIC, FORTRAN, or PASCAL.

CIS 266 three credits
Object-Oriented Programming in C++
Prerequisite: Any programming course
Fundamental conceptual tools and their implementation of object-oriented design and programming such as: object, type, class, implementation hiding, inheritance, parametric typing, function overloading, polymorphism, source code reusability, and object code reusability. Object-Oriented Analysis/Design for problem solving. Implementation of Object-Oriented Programming paradigm is illustrated by program development in C++.

CIS 272 four credits
Introduction to Computing Systems
Corequisites: CIS 190, MTH 181
3 hours lecture; 2 hours laboratory
Introduction to major components of computer system software. The course introduces fundamental concepts of computing systems, such as binary arithmetic and data representation, the Von Neumann model for processing computer programs, the operation of memory, instruction set, and machine and assembly language programming. It systematically presents the levels of transformations from machine language to assembly language to high level language. The role of such systems software components as assemblers, compilers, linkers, loaders, and operating systems is studied. The course has a strong project component.

CIS 273 four credits
Computer Organization and Design
Prerequisite: CIS 190, 272
Corequisite: MTH 181 Laws of computer organization and design for RISC architectures.
3 hours lecture; 2 hours laboratory
Interfaces between hardware and software are studied. Influence of instruction set on performance is presented. Design of a processor with pipelining is analyzed. Computer arithmetic is studied. Memory hierarchy and their influence on performance is documented. Elements of interfacing and I/O organization are included. The course has a design, implementation, and analytical components. (Formerly offered as CIS 270)

CIS 280 four credits
Software Specification and Design
Prerequisite: CIS 181
3 hours lecture; 2 hours laboratory
Object-oriented analysis and design: methodologies and tools. The course focuses on methodologies of specification and design of software systems. It addresses the issues of user interface design, software prototyping, and implementation of software designs. The course also presents the state of the art in the tool and environments supporting the front end of the software development cycle.

CIS 298 one to six credits
Experiential Learning
Prerequisites: At least sophomore standing; permission of the instructor, department chairperson, and college dean Work experience at an elective level supervised for academic credit by a faculty member in an appropriate academic field. Conditions and hours to be arranged. Graded CR/NC. For specific procedures and regulations, see section of catalogue on Other Learning Experiences.

Undergraduate Level 300 Courses

CIS 314 four credits
Computer Architecture
Prerequisite: CIS 273, 360
General organization of a computer system. Memory hierarchy. Emphasis on memory organization and management implementation. Local and long distance communication, bus, input-output organization and control. Programmed I/O and I/O processors. Interrupt handling. Processor organization; instruction set; arithmetic-logic unit; parallel and stack processors. Programmed and hardwired, central and distributed control.

CIS 360 three credits
Algorithms and Data Structures
Prerequisites: CIS 181, CIS 190, MTH 182
Comprehensive coverage of all major groups of algorithms, including divide-and-conquer, dynamic programming, greedy, backtracking, branch-and-bound, and parallel algorithms. Discussion of the design and implementation of complex, dynamic data structures. Time and space complexity of algorithms are covered, including Big-O, Theta and Omega notations, Master theorem.

CIS 361 three credits
Models of Computation
Prerequisites: CIS 181, MTH 182
Models of sequential, parallel, and distributed computations. The Chomsky hierarchy of formal languages and their accepting machines are studied in detail. The relationship of these languages and machines to computer programs is presented. Influence of a Turing machine and related formalisms on modern computing are studied. Decidability of decision problems is explained. Several models of parallel and distributed computations are introduced and compared.

CIS 362 three credits
Empirical Methods for Computer Science
Prerequisite: MTH 331
Topics and methods supporting an experimental approach to the study of issues in computer science and software engineering. Course covers the basic principles of experimental design and case study construction. Emphasis in the course is on the use of empirical methods for decision making and the evaluation of research in computer science and software engineering that employ empirical methods.

CIS 370 four credits
Design of Operating Systems
Prerequisite: CIS 273
3 hours lecture; 2 hours laboratory
Principles of modern operating systems and their design. Scientific principles and engineering rules of operating systems are explored. Process and storage management subsystems are analyzed in detail. Protection and security are taken into account in design. An introduction to distributed operating systems is also presented. This is a design and project based course with a laboratory component.

CIS 381 three credits
Prerequisite: Junior standing
Introduction to the social, legal, and ethical issues of computing. Topics include how computer use affects social and work relationships and the uses of computers in society. These will be reviewed in the context of risks, privacy and intrusion, computer crime, intellectual property, and professional decision-making. Students analyze scenarios that allow them to view ethical decision-making as a crucial part of understanding the world of computing.

Undergraduate Level 400 Courses

CIS 410 three credits
Programming Language Design
Prerequisites: CIS 360
Fundamental concepts and general principles underlying current programming languages and models. Topics include control and data abstractions, language processing and binding, the relationship between language design and language implementation. A variety of computational paradigms are discussed: functional programming, logic programming, object-oriented programming, and procedural programming

CIS 411 three credits
Seminar
Prerequisites: Senior CIS standing Advanced topics in Computer Science.

CIS 412 three credits
Artificial Intelligence
Prerequisites: CIS 360 or permission of instructor
Artificial intelligence problem-solving paradigms. The course covers heuristic versus algorithmic methods, rational and heuristic approaches, and description of cognitive processes; and objectives of work in artificial intelligence, the mid-brain problem and nature of intelligence, simulation of cognitive behavior, and self-organizing systems. Examples are given of representative applications.

CIS 421 three credits
Introduction to the Theory of Computing
Prerequisites: CIS 361
3 hours lecture
Several of the most significant models of computation will be reviewed, i.e., Turing machines, 1-calculus, predicate calculus. The traditional undecidibility results will be covered, along with the attempts to overcome the resulting limitations in restricted situations. Mechanical theorem provers will be considered. The resolution and unification predicate calculus methods will be discussed along with appropriate PROLOG programming assignments. The Boyer-Moore approach will be discussed, along with LISP programming assignments.

CIS 422 four credits
Design of Parallel Algorithms
Prerequisites: CIS 360 or permission of instructor
3 hours lecture, 2 hours laboratory
Design and analysis of algorithms for parallel computers with two modes of operation: shared memory, and message passing. Synchronous and asynchronous parallel algorithms for the following problems will be designed and implemented: selection, merging, sorting, searching, generating permutations and combinations, and matrix operations. Parallel computational complexity of these algorithms will be analyzed.

CIS 430 three credits
Data Mining and Knowledge Discovery
Prerequisites: CIS 360
Designed to provide students with a solid background in data mining and knowledge discovery concepts, tools, and methodology, as well as their applicability to real world problems. A variety of data mining techniques will be explored including memory-based reasoning, cluster detection, classification, neural networks, and finding understandable knowledge in large sets of real world examples. Some related topics such as web and multimedia mining will be discussed. Students will gain hands-on experience in data mining techniques using various data mining software packages and tools.

CIS 431 four credits
Human-Computer Interaction
Prerequisites: CIS 362 or permission of instructor
3 hours lecture; 3 hours laboratory
Theory and principles for constructing usable software systems. Cognitive and effective aspects of users. The impact of user characteristics on design decisions. The construction and evaluation of the user interface. Sensory and perceptual aspects of interfaces, task structure, input modalities, screen layout, and user documentation. Individual concerns for systems such as personal productivity tools, real-time control systems, instructional software, and games.

CIS 452 three credits
Database Systems
Prerequisites: CIS 280
Use of DBMS software in the development of an information system. Overview of the ANSI/SPARC Study Group on Database Management Systems model. Relational database model techniques. Emphasis on user views necessary to support data management and retrieval.

CIS 454 three credits
Computer Graphics
Prerequisites: At least junior CIS standing Graphics devices.
Two dimensional and three dimensional image representations and transformations. Graphics systems software architecture; graphics standards; packages.

CIS 455 three credits
Bioinformatics
Prerequisitess: CIS 360 and CIS 362; or permission of the instructor
Introduction to the field of bio-informatics. This course addresses the analysis of information present in biological systems. This course presents an overview of the applications of computing technologies such as analysis of protein sequence, pattern matching, bio-modeling and simulation, and biological data visualization. It also provides algorithms and methods on a selection of computational problems as well as hands-on experience with tools and data.

CIS 464 three credits
Computer Game Design
Prerequisitess: CIS 280, CIS 360, and MTH 112
Science, technology, and art involved in the creation of computer games. A variety of software technologies relevant to games including programming languages, scripting languages, networks, simulation engines, and multimedia design systems are discussed along with underlying scientific concepts from computer science and related fields including simulation and modeling, graphics, artificial intelligence, real-time processing, and game theory. The art and design principles for developing usable and engaging games including software engineering, human computer interaction, thematic structure, graphic design, choreography, music and sound effects, and game aesthetics are introduced and compared.

CIS 465 three credits
Topics in Computer Vision
Prerequisites: CIS 360 or permission of the instructor
Foundations of computer vision. Image formats, projection models, regions, filters, edge detection, segmentation, shape description and representation, object recognition and understanding, and stereo-vision are discussed.

CIS 467 three credits
Image Analysis and Processing
Prerequisites: CIS 360 or permission of the instructor
Fundamentals in image analysis and processing. Topics in image processing such as display and filtering, image restoration, segmentation, compression of image information, warping, morphological processing of images, wavelets, multi-resolution imaging and unitary transforms are discussed.

CIS 471 three credits
Compiler Design
Prerequisites: CIS 361
Organization of a compiler including lexical and syntax analysis, symbol tables, object code generation, error detection and recovery, code optimization techniques, and overall design. Compilation techniques and run-time structures in block-structured language

CIS 475 three credits
Computer Networks
Prerequisitess: CIS 370
Topology of computer networks. Physicaltransmission. Error handling. Protocols.Satellite, packet radio, and local networks.Network interconnection. Security.Applications of computer networks.

CIS 476 three credits
Network Programming
Prerequisites: CIS 370
Introduction to computer networks, and methods for programming network services and applications. The course covers the Internet protocol suite (e.g. IP, TCP, UDP), socket programming, and client-server design (e.g. connectionless, connection oriented, multiprotocol). The course discusses the implementation of real-time applications (e.g. streaming audio and video), and application -level gateways and tunneling. In addition, the course addresses protocol implementation using routing sockets and raw sockets. Programming projects represent a significant component of the course.

CIS 477 three credits
Computer and Information System Security
Prerequisitess: CIS 360 and CIS 370; or permission of the instructor
Introduction to computer and information system security. This course introduces the threats and vulnerabilities in computer and information systems. This course covers elementary cryptography, program security, security in operating systems, database security, network security, web and e-commerce security. It also covers the administration, legal, ethical, and privacy issues in computer security.

CIS 480 four credits
Software Engineering
Prerequisites: CIS 280, 362
3 hours lecture; 2 hours laboratory
Software engineering models and processes; total quality management. The course will address the technical, logistical, and social issues associated with the software development process. It will cover the issues of total quality management at the team and enterprise levels.
Note: Some graduate courses may be open to undergraduates. Please consult your department chairperson. See the Graduate Catalogue for graduate general and program requirements.

CIS 481 three credits
Parallel and Distributed Software Systems
Prerequisites: CIS 280, 370
Parallelism and distribution of processing; software bus concept; patterns in software design. The course provides an in-depth discussion of the software systems wit multiple processes and of the relationship between concurrency and distribution of processes. The concept of the software bus, the existing standards, and the issues associated with their implementation are covered.

CIS 490 three credits
Machine Learning
Prerequisites: CIS 360
Constructing computer programs that automatically improve with experience is the main task of machine learning. The key algorithms in the area are presented. Learning concepts as decision trees, artificial neural networks and Bayesian approach are discussed. The standard iterative dichotomizer (ID3) is presented, the issues of overfitting, attribute selection and handling missing data are discussed. Neural nets are discussed in detail, examples of supervised and unsupervised learning are presented. Instance-based learning, i.e. k-nearest neighbor learning, case-based reasoning are introduced. Genetic algorithms are discussed on introductory level.

CIS 491, 492 three credits each
Honors Project I, II
Prerequisitess: Junior standing, eligible for department honors program
The project courses required for completion of the departmental honors program. A significant experience in developing a computer system (typically), but equivalent alternatives are allowed. This system should require an extensive design effort prior to implementation and a serious effort for this implementation. It should have scholarly and/or practical value and might well profit by being interdisciplinary in nature.

CIS 495 variable credit
Independent Study
Prerequisitess: Upper-division standing; permission of instructor, department chairperson, and college dean Study under the supervision of a faculty member in an area not otherwise part of the discipline’s course offerings. Conditions and hours to be arranged.

CIS 196, 296, 396, 496 three credits
Directed Study
Prerequisitess: Permission of the instructor, department chairperson, and college dean Study under the supervision of a faculty member in an area covered in a regular course not currently being offered. Conditions and hours to be arranged.

CIS 498 four credits
Senior Software Engineering I
Prerequisitess: CIS 280, CIS 362
Two hours lecture and 4 hours laboratory
Part I of a two-semester sequence of team development of a software product for a specific customer. This capstone project utilizes and integrates knowledge and skill acquired through study of software engineering. Provides hands-on experience with large-scale problems form conception to implementation of the solution. The course is conducted in a framework of well-defined low-ceremony software process. The lecture covers software engineering models, quality management, risk management, and provides introduction to software processes. Technical, logistical, and social issues associated with software development are addressed.

CIS 499 three credits
Senior Software Engineering II
Prerequisites: CIS 498
One hour lecture and 4 hours laboratory
Part II of capstone project’s two -semester sequence of team development of a software product for a specific customer. This capstone project utilizes and integrates knowledge and skills acquired through the study of computer science. Provides hands-on experience with large-scale problems form conception to implementation of the solution. The course is conducted in a framework of well-defined low-ceremony software process. The lecture covers advanced software process issues including software process improvement and total quality management at the team and enterprise levels.

Contact Info: