Introduction to computing fundamentals. Topics include: history of computing, basic computer architecture, programming languages, problem solving, algorithm development, object-oriented program design and programming and ethical issues involved in computer use.

Prerequisites: MATH 1111 or MATH 1113
Introduction to computing fundamentals. Topics include: history of computing, basic computer architecture, programming languages, problem solving, algorithm development, object-oriented program design and programming and ethical issues involved in computer use.

Prerequisites: MATH 1111 or MATH 1113
Introduction to computing fundamentals. Topics include: history of computing, basic computer architecture, programming languages, problem solving, algorithm development, object-oriented program design and programming and ethical issues involved in computer use.

Prerequisites: MATH 1111 or MATH 1113
Introduction to computing fundamentals. Topics include: history of computing, basic computer architecture, programming languages, problem solving, algorithm development, object-oriented program design and programming and ethical issues involved in computer use.

Prerequisites: MATH 1111 or MATH 1113
A continuation coverage of computing fundamentals. Topics include: basic data structures, basic algorithms, data and procedural abstraction, software design principles, and an introduction to the analysis of the complexity of algorithms.

Prerequistes: CS 1301 with minimum grade of C
An introduction to computer organization and principles of computer design. Topics include digital logic and digital systems, machine level representation of data, assembly level machine organization, memory systems organization, I/O and communication, and CPU implementation.

Prerequisites: CS 1302
Software development methods for large-scale software systems. Management of software development projects. Software engineering standards. Students are expected to complete a large-scale software project.

Prerequistes: CS 3211 and CS 3151
The course covers fundamentals of operating systems. Topics include process management, concurrency, scheduling, device management, file systems and naming, security and protection, and distributed operating systems. Students are expected to complete a project in the administration and maintenance of operating systems.

Prerequisites: CS 3100 and CS 3152
Regular languages, finite-state automata, context-free languages, grammars, push-down automata, Turing machines, Church's thesis, decidability and the halting problem, and computability.

Prerequisiste: CS 3152

NOTE: This course is being offered as an independent study for this term; it is not a regularly scheduled offering for this term.
This course focuses on building Web applications. Topics include: enterprise and system issues; professional grade website-development tools; progamming in markup and scripting languages; networked databases across different platforms; use of distributed objects; and ethical and professional implications of the Internet. Students are expected to complete a project in the development and maintenance of web sites as well as web services.

Prerequisites: CS 3212 and CS 3230 and CS 3260
Computers are an integral part of our lives. They are found in entertainment, education, medicine and business, from DVD players and teaching agents, to medical instruments and gasoline pumps. While providing many benefits, they can be the source of much frustration, if poorly designed from a human use perspective. With this in mind, how should such systems be designed to allow efficient and effective communication between humans and computers?

This course will explore the essentials of effective human computer interaction. Topics such as the use and construction of interfaces, user-centered design methodologies, and the evaluation of human computer interaction will be explored. All to the end of designing interfaces for human use.

Prerequistes: CS 3211 (for 4985); CS 5202 or equivalent (for 6985)

Note: Graduate students taking the course as CS6985 will be expected to complete additional requirements for the course.
Introduction to basic computing fundamentals and software engineering, with emphasis on linear data structures, algorithm development and problem solving. Students are expected to complete a small-scale project in this course.

Pre-requisites: Graduate standing
Advanced computing fundamentals and software engineering, with emphasis on non-linear data structures and computer architecture. Students are expected to complete a medium scale project in this course.

Pre-requisites: CS 5201
An introduction to computer organization and principles of computer design. Topics include: machine language; assembly language programming; organization of the processor, main and secondary memory; representation of data types; linkers, and loaders; addressing methods; machine program sequencing; processing unit; cache; and pipelining.

Prerequisite: CS 5202 (or equivalent)
An introduction to the study of operating systems. Topics include: process management; memory/storage management and organization; and protection and security. Students are expected to complete a project in the administration and maintenance of two operating systems platforms with focus on management & administration of local/remote devices and users as well as activation & maintenance of services such as telnet, ftp, web servers, etc.

Prerequisite: CS 5202 (or equivalent)
Advanced topics in computer networks. Topics include: SONET; HDLC; HTTP; SMTP; PPP; internetworking devices and methodologies; network performance analysis; security and authentication; etc. Students will also be introduced to current professional certification processes and standards.

Prerequisite: CS 6261