During this course, students will be introduced to the various aspects of website design and construction including image, video and audio formats, HTML and JavaScript. Through the use of interactive, hands-on sessions, students will be able to construct their own website. Prerequisite: Use of software applications.
Beginning with an historical perspective, students will first be introduced to various computer concepts including data and information processing, and networks. Next students will explore various computer-based problem solving strategies such as flowcharting, numerical modeling, data abstraction and algorithm design. Subsequently, students will be introduced to several computer applications that provide the tools necessary to implement these strategies. Satisfies Math/CS Gen Ed requirement. Not for CS major credit. Prerequisite: MAT 100 or appropriate placement.
This is a first course in computer programming using a high-level programming language such as Java, JavaScript, Visual Basic.Net, C#, etc. The registration booklet will indicate the language used in each section of the course. The course emphasizes problem solving and sound programming practices. No previous programming experience is necessary. During this course, students will learn how to construct algorithms and convert them into computer programs using typical flow control statements and data types. Satisfies Math/CS Gen Ed requirement. Not for CS major credit. Prerequisite: MAT 100 or appropriate placement.
This is a first course in programming. No previous programming experience is necessary. Student will learn how to write interactive windows-based programs that solve real problems in their major field. Students will learn how to construct algorithms and convert them into computer programs using all the typical flow control statements, data types, and aggregate data structures. Program interfaces will consist of the common window controls such as menus, buttons, listboxes, combo-boxes, common dialog boxes, scrollbars and multiple forms. Satisfies Math/CS Gen Ed requirement. Not for CS major credit. Prerequisite: MAT 100 or appropriate placement
This course is a continuation of CS 143. The focus will be on object-oriented programming and the sharing of objects between programs. An introduction to Win32 is presented. Applications will be written in the areas of database, multimedia, messaging and the internet. Emerging Microsoft technologies will be studied. Prerequisite: CS 143 with a C+ or above.
An introduction to discrete structures and processes such as counting, algorithms, proof, induction, and recursion through the study of logic, sets, relations and functions. Sufficient theory is introduced for application to graph theory and elementary computer science. Prerequisite: MAT 133 and CS 170 (or co-requisite).
An introduction to a modern programming language (C++) and its use in constructing programs that solve a variety of problems. The software development process is emphasized. The course will include a significant amount of project work. Prerequisite: MAT 100 or appropriate math placement test score and programming experience in high school or college at the level of CS 140 or CS 143.
This course is a continuation of CS 170. It includes an introduction to the abstract data types: stacks, queues, lists, trees and graphs and their implementation. Another major topic area is the development of object-oriented programs where real-world objects and processes are modeled with classes. Prerequisite: CS170 and CS/MAT 165 (or as co-requisite).
This course provides instruction in one specific language, such as PROLOG, SmallTalk, Ada, PHP, C#, Perl. Since the language will vary each time the course is taught, it is up to the student to determine which language is being taught and that a language is not repeated. The course will cover the control structures, input/output, subprogram linkage, language data structures, and program structure. The intent of the course is to provide enough philosophy and detail on the language so that the student can continue with self-study. Prerequisite: CS 144 or CS 171 or CS 250.
An in-depth introduction to information management techniques with emphasis on data modeling and relational database design. Topics include conceptual data modeling, relational database design and normalization, database query languages, schema integration and integrity constraints, physical database design, and database usability issues in a shared environment. Students will design and implement a database application working from the E-R modeling stage through to the actual implementation. Prerequisite: CS 140 or CS 143 or CS 170.
An introduction to logic circuit design, computer hardware, and microprocessors. The study of finite state machines, control units, arithmetic units, main memory, IO systems, interrupts, and computer peripherals. Prerequisite: CS 140 or CS 143 or CS 170.
This course covers the fundamentals of LISP programming, including evaluations, iteration, recursion, property lists and macros. Prerequisite: CS 144 or CS 171 or CS 250.
The study of software concepts and hardware components (at the register level). Students will use all of the software tools (compilers, an assembler, linker, object librarian, debugger, make facility) to write programs which will illustrate low-level implementation of programming concepts and machine control. Prerequisite : CS 171.
This course quickly covers all the fundamental concepts in the Java Language and then concentrates on more advanced topics such as events, various collection classes, the serialization of objects, multi-threaded programming, database connectivity, network programming with sockets, applets, and servlets. Prerequisite: CS 140 or CS 170 or a background in object-oriented programming.
An introduction to the UNIX operating system. Topics will include: the functions of an operating system and how UNIX fulfills that role, the file system, shells, scripts, utilities and system administration/ Not for CS major credit. Prerequisite: CS 143 or MIS 260.
The design, implementation, testing and analysis of various algorithms. Methods such as divide and conquer, dynamic programming as applied to problems in sorting, sets, trees and graphs will be studied. The analysis of algorithms, including questions of correctness, efficiency and complexity, will be studied. Prerequisite: CS 171 and Mat 181.
This course introduces the basic concepts and techniques of artificial intelligence using LISP as the vehicle for implementation. The material covered includes: Symbolic Pattern Matching, Expert systems, Segmented Transition Trees, Search strategies, Frames, compiler design, and other topics of interest. Prerequisite: CS 171 or CS 250, MAT 181, CS/MAT 165.
The fundamentals of computer graphics including typical hardware and software configurations, raster and vector graphics, and common graphics standards.Graphics primitives (both 2D and 3D) and attributes will be used in developing computer programs. Prerequisite: CS 315.
An exploration of the theory and application of computer animation. Students will participate in both a lecture component covering both traditional and computer animation concepts, and a project component consisting of the creation of an animation including of at least two objects in motion, and including one or more advanced concepts presented during the lecture component of the course. Prerequisite: CS/MAT 165 and CS 315.
This course addresses the application of theory, knowledge, and practice for effectively and efficiently building software systems that satisfy the requirements of users and customers. Central topics are software quality, evolution, reuse and cost. The methods introduced are applicable to small, medium, and large-scale systems. The course encompasses all phases of the life cycle of a software system, including requirements specification and analysis, design, construction, testing, and operation and maintenance. Students participate in a team project for development of a medium-size system. Prerequisite: CS 171 and CS 205.
Designed for students who show above average ability and interest in computer science. It allows the student to study advanced topics not included in standard course and Computer Science is required.
Formal definition of programming languages, including specification of syntax and semantics. Types of languages and their uses. Organization of compilers illustrating compilation of simple expressions and statements. Prerequisite: CS 171, CS 240, and MAT 165.
Basic theoretical principles embodied in formal languages, automata and computability. Offered even years, spring semesters. Prerequisite: CS/MAT 165 and MAT 181.
Computer technology both affects and is affected by society in a variety of ways. Therefore, in order to more fully appreciate the use of computers, it’s important to study the societal impact on and by computer technology. In this course, students will be introduced to computers and society from three perspectives: first, an historical perspective, showing how computer technology has evolved; second, a functional perspective, showing how computers impact on various segments of society; third, a human perspective, showing how individuals behave with respect to computers, both legally and ethically. Prerequisite: CS 171 or CS 250 and Junior Standing.
This course requires that each student implement a programming project in an area selected by the student and approved by the instructor. The student will be expected to: 1) investigate the project area in the current literature and 2) make a final oral report at an “open seminar.” The student who passes this course with an ‘A’ and maintains at least a 3.5 average in computer science course at the university will be considered to have graduated ‘With Honors in Computer Science.’ Prerequisite: CS 355 and CS 450 and in all CS/MAT required courses a GPA > 3.5.
Phases of a compiler: scanning, parsing, internal representation, code generation and optimization. Tools for compiler development. A compiler for a simple language will be studied. Programming projects will be required. Prerequisite: CS 240 and CS 350.
A study of processes, interprocess communication, memory management, file systems, input and output, and deadlocks. A study of the interaction of the operating system and the system hardware. Existing operating systems will be explored through case studies and the use of their user command and programming interfaces. Prerequisite: CS 215 and CS 240 and CS 350.
An examination of one or a few related emerging topics in computer science. The topics in this course will be announced by the middle of the previous semester. Prerequisite: CS 350 and Junior Standing.