

Accreditation

Mission Statement

Undergraduate Admissions

Tuition and Fees

Financial Aid

Academic Regulations

Campus Resources

Academic Programs

General Education Requirements

Departments and Courses

General Information

|
 |
Chair: Cornelia Breuning
|
Professor: |
Suban Krishnamoorthy
|
|
Associate Professor: |
Robert Chen |
|
Assistant Professors: |
Cornelia Breuning, Jeff Gao, David Keil
|
COMPUTER SCIENCE MAJOR
The
Department offers courses leading to a Bachelor of Science in Computer Science
with concentrations in Software Engineering and Information Systems, and a
minor in Computer Science. The goal of these programs is to train graduates
for successful careers in industry and to prepare students for graduate
studies. Students are encouraged to do cooperative work with local companies
for up to one year, receiving up to four course credits, job experience, and
(normally) compensation in the process. Such experience is also beneficial in
seeking postgraduate employment.
The General Education Requirement:
All students
must satisfy a general education requirement consisting of twelve (12)
courses. See page 60 of this catalog.
Course Prerequisites
Courses may
have specified conditions for enrollment, such as prior completion of less
advanced courses, permission of the instructor, or appropriate placement test
scores. Students should refer to course descriptions in the department
listings for prerequisite requirements.
CONCENTRATION IN SOFTWARE ENGINEERING (CSS)
The software
engineering concentration prepares students for careers in software
development.
Required
Computer Science courses (11):
63.152
Computer Science I Using Java
63.252
Computer Science II Using Java
63.258
Introduction to Operating Systems Using UNIX™
63.266
Digital Logic, Organization, and Assembly Language
63.271 Data Structures
63.347 Analysis of Algorithms
63.355 Computer Architecture
63.362 Software Engineering
63.460 Theory of Computing
63.465 Operating Systems Internals
63.477 Computer Networking
Two (2)
Computer Science electives from the following:
63.265
Computer and Network Security
63.306
Introduction to .NET Using Visual Basic
63.320
Windows Server & Client Management
63.340 UNIX™
System Administration
63.359
Object Oriented Programming Using C++
63.360 Database Management
63.373 Advanced Web Technologies
63.404 Seminar in Computer Science
63.428 Software Quality Assurance
63.455
Human-Computer Interaction Four (4) required Mathematics courses
43.117
Introduction to Statistics (Goal 2)
43.219 Calculus I (Goal 2)
43.220 Calculus II
43.292 Discrete Mathematics I
Two (2)
science courses. Software Engineering majors must meet a two-semester
laboratory science requirement. The following course sequences qualify:
53.211
Principles of Physics I (Goal 6) and
53.212
Principles of Physics II
33.107
Principles of Chemistry (Goal 6) and
33.108
Principles of Chemistry and Quantitative Analysis (Goal 6)
73.231
Physical Geology (Goal 6) and
73.232
Historical Geology (Goal 6)
23.160
Introduction to Organismal Biology and
23.161
Introduction to Cell and Molecular Biology
CONCENTRATION IN INFORMATION SYSTEMS (CSI)
This
concentration trains students for technical careers in information systems
such as database administration, network administration, systems analysis and
design, and software quality assurance.
Required
Computer Science courses (8):
63.108 HTML,
JavaScript Programming, and Web Site Development
63.120
Introduction to Information Technology
63.152 Computer Science I Using Java
63.252 Computer Science II Using Java
63.258
Introduction to Operating Systems Using UNIX™
63.360 Database Management
63.373 Advanced Web Technologies
63.376 Networking Technologies
Three (3)
required Mathematics courses:
43.117
Introduction to Statistics (Goal 2)
43.219 Calculus I (Goal 2)
43.292 Discrete Mathematics I
Five (5)
required Business Courses:
12.101
Principles of Macroeconomics (Goal 10)
or
12.102
Principles of Microeconomics (Goal 9)
12.121
Introduction to Managerial Accounting
12.280
Applied Organizational Theory and Management
12.385
Business Systems Analysis and Design
12.477
Management Issues in Information Technology
Three (3) courses from at least two (2) of the following categories. Network
and System Administration:
63.265
Computer and Network Security
63.320
Windows Server and Client Management
63.340 UNIX™
System Administration
General
Information Systems Electives
63.230
Principles of Information Technology Operations
63.266
Digital Logic, Organization, and Assembly Language
63.306
Introduction to .NET Using Visual Basic
63.404 Seminar in Computer Science
63.428 Software Quality Assurance
63.455
Human-Computer Interaction
63.490
Directed Study in Computer Science
Computer Graphics and Technical Writing
21.286 Professional Writing
21.471 Business Writing
21.472 Technical Writing
84.140
Introduction to the Internet, Graphics and Multimedia
Students may
need to take additional math courses if their math placement score does not
qualify them for Calculus. These would be taken as free electives.
MAJOR IN BUSINESS AND INFORMATION TECHNOLOGY (ITB) (SEE PAGE 139)
MINOR IN COMPUTER
SCIENCE (5 COURSES)
Required Courses (4):
63.120
Introduction to Information Technology
63.152
Computer Science I Using Java
63.252
Computer Science II Using Java
63.258
Introduction to Operating Systems Using UNIX™
Elective (1):
One other course from the Computer Science Department.
MINOR IN INFORMATION SYSTEMS (5 COURSES)
Required
Courses (5) – Select from any courses offered through the Computer Science
Department. This includes 84.140 Introduction to the Internet, Graphics, and
Multimedia. At least one (1) of these courses must be at the 200-level or above.
MINOR IN INFORMATION
TECHNOLOGY (SEE PAGE 53)
COURSE DESCRIPTIONS
63.108 HTML, JavaScript Programming, and Web
Site Development
An introduction to various
features of HTML and JavaScript languages such as tags, images, buttons, forms,
and animation files. Students learn to program using these languages to create
interactive Web pages. Students create a complete Web site using various tools
including a browser and image editor.
63.120 Introduction to Information
Technology
An overview of computer concepts
and Information Technology (IT). Applications of IT in various disciplines are
illustrated and the role of information technology in contemporary society,
including issues of intellectual property, ethics, privacy and security is
discussed. Students are introduced to windowed environments, file management,
problem-solving tools and a high-level programming language. Advanced concepts
of word processing, spreadsheets, and presentation software required for
effective communication, analysis, and design are explored. Note:
Students cannot receive credit for both this course and 63.151 Personal Computer (PC)
Fundamentals and Applications. Students in the IT minor who have taken 63.151
Personal Computer (PC) Fundamentals and Applications should take
63.108 HTML, JavaScript
Programming and Web Site Development in lieu of 63.120 Introduction to
Information Technology.
63.135 Information Technology and
Society
An exploration of the impact of
computing and information technology (IT) on individuals and society in the
United States and the world. The course addresses the impact of IT on areas such
as: digital technology at home; personal devices; rapid unregulated spread of (mis)information;
political processes of dissemination and polling capabilities; empowering
individuals and families with information included in medical and other
databases; personal and work place communication; the networked information
economy and globalization. Other topics may include the interaction of IT with
intellectual property, privacy, ethics, security concerns and freedom of
expression.
63.152 Computer Science I Using
Java
An introduction to problem
solving using the Java programming language. The course stresses algorithms,
object-oriented programming in graphical environments, documentation, testing,
and debugging. Topics include hardware basics and number systems, classes,
methods, control structures, types, virtual-machine concepts, Internet and
client-server computing, human-computer interaction, social, professional, and
ethical issues, and general features of programming languages. Corequisite:
43.123 College Algebra or
minimum score of 2 on the math
placement examination.
63.230 Principles of Information
Technology Operations
A study of operations in various
information technology areas used at workplaces. Areas covered include managing
storage, troubleshooting, printing and faxing, small local networks, connecting
to the Internet, protection against viruses, popups, and malware, backup and
restore, and email clients. Prerequisite: 63.120 Introduction to Information
Technology
63.252 Computer
Science II Using Java An
intermediate programming course that emphasizes debugging, documentation, and
modular and object-oriented design with tools such as the Unified Modeling
Language. Topics include event-driven programming, string and array
manipulation, sorting and searching, file operations, dynamic memory allocation,
inheritance, polymorphism, and exception handling. Prerequisites: 43.200
Precalculus (may be taken concurrently) and 63.152 Computer Science I Using
Java.
63.258 Introduction to Operating
Systems Using UNIX™
An introduction to the basics of
networking and operating systems. Topics include the evolution and overview of
operating systems, operating system principles, interfaces (GUI, command line,
and API), command processors and utilities, file systems, access control,
processes, programming and scripting, user accounts and authentication, OSI
model, Internet Protocol, networking utilities, net computing, client-server
model, FTP, and network file systems. The UNIX™ operating system is used as a
primary reference for illustration and hands-on experience. Prerequisite: 63.120
Introduction to Information Technology or
63.152 Computer Science I Using
Java
63.259 Object-Oriented Programming
Using C++
A presentation of advanced
features of programming with an emphasis on class construction and
object-oriented design and programming. Topics covered include namespaces,
encapsulation, function and operator overloading, templates, collection classes,
containers, iterators, inheritance, polymorphism, and exception handling. Course
touches on Standard Template Libraries (STL). Prerequisite: 63.252 Computer
Science II Using Java.
63.261 Computer Organization and Assembly
Language Programming
Introduction to computer
organization and assembly language programming. Representation of data,
addressing modes, CPU instructions, and pseudo-instructions. Discussion of I/O
and interrupt programming. Prerequisite: 63.252 Computer Science II Using Java.
63.265 Computer & Network Security
A detailed study of the concepts
and principles of computer and network security. Topics may include: physical
and organizational security, cryptography, public key infrastructure, system and
services security, networking fundamentals and protocols, worms and viruses,
attacks, prevention, detection and recovery, law, ethics, and privacy. The
Windows and UNIX operating systems are used for illustrations.
63.266 Digital Logic, Organization, and Assembly
Language
An introduction to digital logic
components and their organization in computer systems. Topics include the
realization of logic components such as decoders, ALUs, registers and how they
are combined to form CPUs and controllers. The course discusses the software
interface, including machine instructions, the interrupt system, and sample I/O
interfaces. The course also covers assembly language and the organization of
lowlevel software to control the computer, including representation of data,
addressing modes, CPU instructions, and pseudo-instructions. Note:
Students who have taken both 63.261 Computer Organization and Assembly Language
Programming and
63.321 Digital Electronics cannot receive credit for 63.266 Digital Logic,
Organization, and Assembly Language. Prerequisite: 63.252 Computer Science II
Using Java
63.271 Data Structures
An in-depth presentation of
recursion, collections and iterators, fundamental techniques in graphics, and
threading. Students implement linked lists, stacks, queues, trees, heaps,
graphs, hash tables and related algorithms. Students implement a significant
programming project. Prerequisites: 43.200 Precalculus and
63.252 Computer Science II Using
Java.
63.306 Introduction to .NET using
Visual Basic
An introduction to the .NET
programming environment and the object oriented programming model using the
Visual Basic .NET programming language. Topics include object-oriented
programming, Visual Basic .NET objects such as forms and controls, code
construction, functions and subroutines, parameter passing, looping and other
programming structures, persistence of data using text files and database
tables, error handling, and debugging of programs. Note:
Students cannot receive credit
for both 63.306 Introduction to .NET using Visual Basic and 63.205 Introduction
to .NET using Visual Basic. Prerequisite: 63.252 Computer Science II using Java.
63.320 Windows Server & Client Management
Designed to teach students how to
plan, set up,
and configure Windows server and
client workstations with TCP/IP enterprise
protocol; monitor
and control security within the
systems network;
administer user accounts, system
disks, file system,
mail, print and remote access
services; and recover
from server failures.
Prerequisite: 63.252 Computer
Science II Using
Java.
63.321 Digital Electronics
An introduction to the techniques
of designing and constructing digital circuits with emphasis on understanding
the logic circuits of a digital computer. Topics discussed include: application
of Boolean algebra to logic design; operation of diodes and transistors;
construction of IC logic gates; characteristics of TTL, ECL and CMOS logic
families; using Karnaugh Maps to design combinatorial circuits; decoders;
priority encoders; multiplexers; parity circuits; adders, subtracters and ALU’s;
latches and flipflops; counters; shift registers, and the design and analysis of
synchronous state machines. Includes a weekly threehour laboratory
period. Prerequisite: 63.152
Computer Science I Using Java.
63.330 Java Programming
A comprehensive
study of object-oriented programming using Java. Topics include objects, core
Java classes, writing Applets and Applications, Servlets, thread control,
networking, RMI, inputoutput streams, Java User Interface, Abstract Windows
Toolkit, working with URLs, security, and error handling using exceptions.
Prerequisite: 63.259 Object-Oriented Programming Using C++.
63.340 UNIX™ System Administration
A comprehensive coverage of UNIX™
system administration and management. Topics include system setup, booting and
shutdown, management of user accounts, file systems, disk management and serial
device management, backup and restore, print and network configuration,
security, system logs, performance monitoring, and maintenance. Prerequisite:
63.258 Introduction to Operating Systems Using UNIX™.
63.347 Analysis of Algorithms
A presentation of asymptotic time
and space complexity of sequential and parallel algorithms, using big-O and
related notation. Complexity classes P and NP (tractable and intractable
problems) and verification of algorithms by formal methods are also discussed.
Prerequisites: 63.271 Data Structures and
43.292 Discrete Mathematics I.
63.355 Computer Architecture
A study of the architecture of
computer systems, the relationship between user applications and computer
architecture as well as the relationships between operating systems, system
software, and computer architecture. Topics covered: computer organization,
user-oriented aspects of computer structure, register transfer operations,
computer control with strong emphasis on micro-programming, and operating system
level of computer architecture. Advanced topics including multilevel computers,
program portability, virtual machines, and high level language-oriented
machines. Prerequisites: 63.266 Digital Logic, Organization and Assembly
Language and 63.271
Data Structures.
63.360 Database Management
A comprehensive coverage of
database concepts, design, and implementation. Topics include systems analysis,
data modeling, relational databases, logical design, normalization, user
interfaces, query processing including SQL, database administration, security,
backup and restore, and performance evaluation. Popular databases are
referenced. Note:
Students cannot receive credit for both 63.360 Database Management and 63.467
Data Base Management Systems. Prerequisite: 63.258 Introduction to Operating
Systems Using UNIX™.
63.362 Software Engineering
Principles of
systematic program design and implementation. Structured programming and
top-down segmented program development. Stepwise program development.
Chief Programmer Team, HIPO, and other programming techniques. Decision tables.
Program correctness and verification. Software reliability. Prerequisite: 63.271
Data Structures.
63.373 Advanced Web Technologies
An introduction to
dynamic database-driven Web site development. Students learn about clientand-server-side
scripting, maintaining persistent information on the Web, and user-interface
design concepts. Prerequisites: 63.108 HTML, Java-Script Programming, and Web
Site Development, 63.152 Computer
Science I Using Java and
63.360 Database Management.
63.376 Networking Technologies
An introduction to
net-centric computing, communication and networking, network security, network
management, client-server computing, wireless and mobile computing, and network
applications. Various LAN and WAN networking technologies such as Ethernet,
Token Ring, wireless network, virtual private network, personal area network,
Storage Area Network, Internet, ATM, telecommunication networks, multimedia data
technologies, and internetworking are covered. Business aspects of computer
networks are also covered. Note:
Students cannot receive credit for both 63.376 Networking Technologies and 63.476 Networking Technologies.
Prerequisite: 63.258 Introduction
to Operating
Systems Using UNIX™
63.404 Seminar in Computer Science
An exploration of an advanced
topic in computer
science. The particular topic is
announced at least
one semester in advance.
Prerequisite: Permission of the
instructor.
63.428 Software Quality Assurance
A study of software quality
assurance processes and test tools. Topics include requirements analysis, test
specifications, test schedule development, installation and test tools,
standalone product testing, systems integration testing, interoperability,
problem reporting and tracking, product development and quality assurance
processes, QA management, product life cycle, software metrics for quality, and
product release. Prerequisite: 63.258 Introduction to Operating Systems Using
UNIX.
63.455 Human-Computer Interaction
A survey of the field of
Human-Computer Interaction (HCI). Emphasis is placed on design strategies for
creating and refining an effective user interface throughout the software
product life cycle. Task analysis, approaches to user interface design,
modeling, and user interface standards are covered as student groups develop a
user interface for a software product. Prerequisites: 63.152 Computer Science I
Using Java and
63.360 Database Management.
63.460 Theory of Computing
An introduction to
theoretical computer science and some key applications. Course examines models
of computation, including finite automata, transducers, pushdown automata, and
Turing machines. Concepts of formal language theory are applied to lexical
analyzer and compiler construction in programming-language translation. The
course will include an introduction to the notions of computability and
computational complexity, concepts used in parallel computation, and some
aspects of artificial intelligence. Prerequisites: 43.292 Discrete Mathematics I
and
63.271 Data Structures.
63.465 Operating Systems Internals
An in-depth coverage of operating
system principles and internals such as processes, threads, CPU scheduling,
concurrency and process synchronization, deadlock, inter-process communication,
memory management, virtual memory, file systems, I/O systems, distributed
systems, and protection and security. Several of the concepts are implemented
through a programming project. Prerequisites: 63.258 Introduction to Operating
Systems Using UNIX™, 63.271 Data Structures, and
63.355 Computer Architecture.
63.477 Computer Networking
An introduction to
the seven layers of the OSI model. General topics include network topologies;
introduction to Local Area Networks, such as Ethernet, Token Ring, and FDDI; and
internetworking. Special topics include TCP/IP and FTP protocols, socket
interface, Remote Procedure Call (RPC), and client-server architecture.
Prerequisite: 63.271 Data Structures or equivalent computer industry experience
including strong programming skills in C or C++.
63.481 Microsoft Windows Programming
A study of Windows programming
and application development for experienced C++ programmers. Topics include:
using Windows programming models, Windows development environments, Windows
classes, objects, and messages; the Windows API; painting and text output;
keyboard and mouse input; Windows timer and memory management; Windows
resources, menus and dialogue boxes; and elements of graphics device interface.
Additional topics are chosen from the following: clipboard usage, dynamic data
exchange, object linking and embedding, multiple document interface, printer
management, fonts, dynamic link libraries, application framework tools, and
client/server applications. Prerequisites: 63.261 Computer Organization and
Assembly Language Programming and
63.271 Data Structures.
63.490 Directed Study in Computer Science
Under the direction of a faculty
member, the student researches a topic or topics in computer science. Students
should make arrangements with the faculty member who is to direct their work one
semester in advance of the work.
63.495 Cooperative Program in
Computer Science (credit-two courses)
A cooperative program in which
students are placed in computer positions in corporate or government settings.
Students are expected to work a minimum of 25 hours per week. These positions
are normally compensated. Upon completion of the course, students will provide
written documentation concerning their work projects. Prerequisite: Upperclass
standing in computer science with at least a 3.0 average in computer courses
or permission of
instructor.
63.496 Cooperative Program in
Computer Science (credit-two courses)
A cooperative
program in which students are placed in computer positions in corporate or
government settings. Students are expected to work a minimum of 25 hours per
week. These positions are normally compensated. Upon completion of the course,
students will provide written documentation concerning their work projects.
Prerequisite: Upperclass standing in Computer Science with at least a 3.0
average in computer courses or permission of instructor. This course may not be taken
concurrently with 63.495.
|
Previous |
Next
|
|