
The links below will take you to the catalog description
for the course you have selected. If you would prefer to view
a complete description of the course, including course objectives,
major topics covered, labs, etc., please see the detailed
course descriptions (i.e., the "Yellow Book") by
following the appropriate links below.
View the course matrix for SIT Majors:
The links below will take you to the catalog description
for the Information Technology core course you have selected.
Required Courses
- IC210 Intro to Computing
(SI204 for class of 2009)
- IC211 Object-Oriented Programming
- IC220 Computer Architecture and
Organization
- IC221 Systems Programming
- IC312 Data Structures
- IC322 Computer Networks
- IT350 Web and Internet Programming
- IT360 Applied Database Systems
- IT430 IA & Network Security
- IT440 Systems Analysis & Design
- IC480 Research Seminar/Capstone
Restricted Electives
SIT majors must take at least one of the following courses:
- IT432 Advanced IA & Network Security
- IT452 Advanced Web and Internet Systems
- IT462 Adv. Database Systems
Unrestricted Electives
In addition to selecting one restricted elective, SIT majors must take at least two other electives from the following list:
- Any restricted elective from the above list not already taken as a restricted eletive.
- IT460 Human Computer Interaction
- IT470 Enterprise Computing
-
SI335 Computer Algorithms
-
SI411 Operating Systems
-
SI413 Programming Languages and
Implementation
-
SI420 Artificial Intelligence
-
SI435 Advanced Software
Engineering
-
SI455 Advanced Computer Networks
-
SI460 Computer Graphics
-
SI462 Advanced Computer Graphics
-
SI475 Intelligent Robotics
-
Any IT 485/486/495/496 course, as long as it is at least 3 credits.
-
Any SI 485/486/495/496 course, as long as it is at least 3 credits, and does not have the letter U,V, or W appended (e.g. SI485A is fine but SI485U is not).
Elective courses will be offered based on the preregistration enrollments. Students
should expect that not all the courses listed will actually be offered (due to small enrollments).
Those students will be expected to select an alternate choice if the course is dropped.
Course Descriptions
IC210 Intro to
Computing (3-2-4).
Introduction to algorithmic
development, problem solving and software design. Principles
and concepts to provide foundational knowledge and
experience upon which later computing courses will build.
This is the first course for computer science and
information technology majors. Prereq: None.
[fall]
Students will:
-
Solve problems
using the procedural programming paradigm;
-
Design, develop
source code for, debug, and document programs using
structured programming techniques in order to solve
problems. Supports Program Outcome (b);
-
Determine an
appropriate data structure (such as linked lists, arrays) to
be used in order to solve problems;
-
Understand the
legal issues and responsibilities of copyright law with
regard to information found on the Internet and its local
and global impact on individuals.
[Return to top]
IC211
Object-Oriented Programming (2-2-3).
This
course builds on the procedural programming skills developed
in the prerequisite course and introduces the student to
object oriented programming and design principles using
Java. Object oriented topics such as classes, inheritance,
information hiding, polymorphism and dynamic binding are
presented and used to create robust, reusable, and
maintainable software. The fundaments of Java are presented
along with exception handling, I/O, event driven
programming, simple GUIs and generics. Prereq:
IC210 or SI204. [spring]
Students will:
-
Understand the fundamentals of
object oriented programming;
-
Compare and contrast the
differences between object oriented and procedural
programming;
-
Describe the solution to a
simple software requirement in terms of UML diagrams;
-
Given a problem specification,
apply the principles of encapsulation, inheritance,
polymorphism and information hiding to design and implement
a software solution using Java.
Supports Program
Outcome (c);
-
Demonstrate the appropriate use
of public, private and protected members of a class;
-
Be proficient in the use of an
off-the-shelf Integrated Development Environment (IDE) to
construct and debug a multi-class object oriented
application in Java;
-
Demonstrate the ability to
construct and run a Java program from the command line as
well as in an IDE;
-
Bring data into a program and
present results using command line, GUI and file I/O;
-
Design and construct a simple
GUI consisting of buttons and text fields using Swing;
-
Understand the
social issues and responsibilities of computer gaming with
regard to violence, graphic content and game addition and
its local and global impact on individuals.
[Return to top]
IC220 Computer
Architecture and Organization
(3-0-3).
This
course introduces students to performance metrics,
instruction set architectures, assembly language, logic
design, memory hierarchies, and pipelining. Prereq:
IC210 or SI204
[spring]
Students will:
-
Critically evaluate the
performance of computer systems;
-
Discuss modern trends and
challenges in computer system design;
-
Understand how assembly
language instructions are represented and executed by a
processor;
-
Write short, procedural
assembly language programs;
-
Specify and minimize digital
logic.
Supports Program
Outcome (c);
-
Describe how the datapath and
control work together in a processor to execute a program;
-
Describe the memory hierarchy
and be able to evaluate strategies for improving its
performance.
Supports Program
Outcome (a);
-
Understand the
ethical issues and responsibilities of fair use with regard
to hardware and software and its local and global impact on
organizations.
[Return to top]
IC221 Systems
Programming (2-2-3).
The
study of an application's interface with the operating
system. The operating system is treated as an information
resource, and as a facilitator for information flow between
processes, including those executing on separate machines.
Topics include: process management, multiprogramming, and
the basic concepts necessary to understand the design and
operation of computer communication networks. Prereq:
IC210 or SI204, Coreq: IC220. [spring]
Students will:
-
Understand the operation of the
Unix OS from the user, systems programmer, and application programmer
prospective;
-
Design software on Unix that
uses concurrency to solve problems;
-
Use a UNIX
command shell;
-
Navigate and
manipulate the UNIX filesystem from the command-line;
-
Build
application software using a make utility. Supports
Program Outcome (i);
-
Write simple
shell scripts and configure resource files. Supports
Program Outcome (i);
-
Understand the
security issues and responsibilities of a systems
administrator and the consequence of an insecure system and
its local and global impact on an individual and
organization.
[Return to top]
IC312 Data
Structures (3-0-3). This
course examines abstract data types (ADT), data structures,
data representation and information management including
storage structures, allocation and collection. ADTs and data
structures presented include lists, stacks, queues, trees,
heaps, priority queues, maps, dictionaries and graphs.
Sorting and searching techniques, hashing and graph
algorithm analysis are also covered. Prereq: IC211, Coreq: SM242 [fall]
Students will:
-
Understand the fundamentals of
algorithm analysis (Big-O, Big-Θ, Big-Omega);
-
Possess an understanding of the
concept of abstraction and be able to describe the idea of
separation of implementation and interface;
-
Given a problem specification,
recognize and apply the canonical ADTs (Lists, Queues,
Stacks, Trees, Priority Queues, Dictionaries, and Graphs)
appropriate for solving the problem or designing a
computer-based system that meets the desired specifications.
Supports Program
Outcome (b);
-
Demonstrate the ability to
implement the canonical ADTs with: arrays, linked lists,
binary trees, hash tables, balanced trees, and other similar
structures.
Supports Program
Outcome (c);
-
Be proficient in defining and
coding recursive algorithms, including recognizing when
recursive solutions are appropriate;
-
Understand the
professional issues and responsibilities of a software
development and its local and global impact on an
organization.
[Return to top]
IC322 Computer Networks
(2-2-3).
The
course presents the fundamental theoretical concepts,
characteristics and principles of computer communications
and computer networks, and analyzes and assesses these
foundational concepts with respect to network performance
and network design. Prereq:
IC221, Coreq: SM242. [fall]
Students will:
- Employ the principles of analog and digital data
transmission, transmission media, coding techniques, and
physical communication limits to analyze and design modems
and signaling schemes;
- Evaluate the operation and performance of practical data
link protocols using the principles of framing, error
detection and correction, ARQ and multiple access control.
Supports
Program Outcome (a);
- Apply the principles of network layer design to the
analysis and evaluation of routing algorithms, congestion
control techniques, internetworking and addressing;
- Apply the concepts of addressing
and address resolution, connection establishment, reliable
transport, flow control and congestion control to install a
simple client-server network using multiple stations and
multiple media types.
Supports Program
Outcome (i);
- Understand the legal issues and
responsibilities of the trade off between the user's privacy
and the organization's ownership of the network and its
local and global impact on an organization.
[Return to top]
IT350 Web &
Internet Programming (2-2-3).
Web site design and management, clients and servers,
client and server side scripting languages, web transmission protocols.
Prereq: IC210 or SI204. [fall]
Students will:
-
Successfully complete
team-based projects;
-
Explain how the client-server
model of Internet programming works;
-
Design and develop interactive,
client-side, executable web applications;
-
Design and develop server-side
web applications.
Supports Program
Outcome (IT-c);
-
Comprehend and describe the
importance of web standards.
Supports Program
Outcome (IT-d);
-
Compare the advantages and
disadvantages of the core Internet protocols;
-
Understand the
social issues and responsibilities of customizing online
messages and advertising and its local and global impact on
society.
[Return to top]
IT360 Applied
Database Systems (2-2-3).
This
course introduces the principles underlying Database
Management Systems (DBMS) with a special emphasis on
database management system structure and function when
integrated with web-based database applications. Prereq:
IC312, IT350. [spring]
Students will:
-
Design, create, and query
relational databases to satisfy user requirements.
Supports Program
Outcome (IT-b);
-
Design, build and deploy
database-backed applications with dynamic website
front-end.
Supports Program
Outcome (IT-c);
-
Implement data access control
mechanisms for database and application security;
-
Explain the main functionality
provided by modern database management systems:
transactions, concurrency control, crash recovery;
-
Understand the
ethical issues and responsibilities of records management
and its impact on privacy, discrimination, etc. and its
local and global impact on society.
[Return to top]
IT430 IA & Network
Security (2-2-3).
This
course is an introduction to the theoretical and practical
facets of Information Assurance (IA) to include: Department
of Defense (DoD)/Department of the Navy (DoN) policies and
directives, Trusted systems, Access mediation, Cryptography,
Public Key Infrastructure (PKI), Information Warfare,
Network security and Database security. Laboratory work
will include student exercises demonstrating information
assurance concepts culminating in a vulnerability analysis
of given systems. Prereq: IC322.
[spring]
Students will:
-
Understand and apply principles
and best practices of computer and communications security.
Supports Program
Outcome (IT-d);
-
Analyze network security
vulnerabilities and apply appropriate defensive mechanisms.
Supports Program
Outcome (IT-a);
-
Understand cryptographic
principles and the implications of their use in computer and
network security;
-
Analyze ethical, legal, social
and professional issues relevant to information assurance;
-
Demonstrate the ability to work
in teams in an integrated approach;
-
Understand the
security issues and responsibilities of freely available
hacker tools and its local and global impact on
organizations.
[Return to top]
IT440 Systems
Analysis and Design (2-2-3).
Introduction to concepts and methods used in analyzing and
designing information technology systems. Topics include:
Software Life-Cycle, Software Process, system requirement
definition, requirement analysis, system design, implementation,
testing, project management techniques and tools, and Computer
Aided Software Engineering (CASE) tools and methodologies.
Using a course-long, class-wide project, the students gain
real-life experience in analyzing and designing systems, as well
as working in teams.
Prereq:
IT350, IT360. [fall]
Students will:
-
Construct comprehensive project
plan, including analysis, design, implementation and
maintenance activities using the Software Life Cycle and
accepted Project Management best practices as a model.
Supports Program
Outcome (IT-e);
-
Demonstrate translation of IT
system requirements to IT system specifications.
Supports Program
Outcome (IT-b);
-
Formulate object oriented
models using the Unified Modeling Language;
-
Evaluate the tradeoffs involved
in planning and designing IT systems;
-
Apply S/W principles to a
large-scale, database oriented, group design/development
project;
-
Collaborate in a
team environment. Supports Program Outcome (d);
-
Demonstrate
effective communication orally, in writing and via
multimedia. Supports Program Outcome (f);
-
Understand the
social and ethical issues and responsibilities of the
Software Engineering Code of Ethics and its local and global
impact on an organization and society.
[Return to top]
IC480 Research
Seminar/Capstone (1-4-3).
This
is a capstone course that ties together concepts from the
information technology and computer science curriculums to solve
a practical problem. These team-oriented project solutions will
include the requirements gathering, analysis, design and
development of a computing system involving a large, multi-layer
organization using appropriate information management and
computing technologies. Prereq:
IT440. [spring]
Students will:
-
Apply
information technology and/or computer science to solve a
“real-world” problem;
-
Design and
develop a software-based system using current computing
technology; including but not limited to databases, web
delivery and networked systems.
Supports Program
Outcome (i);
-
Create and
maintain an effective project plan using “best practices”
from IT and CS;
-
Access,
manipulate and display data to aid in effective strategic
decision-making;
-
Identify
and evaluate emerging information technologies and their
impact on the global environment.
-
Collaborate in a team
environment.
Supports Program
Outcome (d);
-
Demonstrate effective communication
orally, in writing, and via multimedia.
Supports Program
Outcome (f);
-
Understand the professional issues and
responsibilities developing a software package for a client.
[Return to top]
IT432 Advanced IA and
Network Security (2-2-3).
This course
provides an introduction to topics in secure system design,
including: cryptography, operating system security, and language
based security. Where the IT430 course focuses primarily on
securing an existing system, this course studies how to design a
system to meet security goals. Students will design and
implement components of a secure system.
Prereq: IT430. [fall]
Students will:
-
Understand and apply system
security techniques to system design problems;
-
Analyze operating systems and
program security vulnerabilities and apply appropriate
defensive mechanisms;
-
Understand cryptographic
algorithms and the implications of their use in computer and
network security;
-
Analyze ethical, legal, social
and professional issues relevant to information assurance.
[Return to top]
IT452 Advanced Web
and Internet Systems (2-2-3).
Web server design and
configuration, search engine design and usage,web
security and authentication, servlet implementations, web
collaboration mechanisms, web services, and knowledge
representation on the web.
Prereq: IT350.
[fall, spring]
Students will:
-
Design and implement a dynamic
servlet program;
-
Select and utilize appropriate
web collaboration systems;
-
Describe the basic operation of
modern search engines;
-
Explain and select among
different kinds of web security mechanisms;
-
Identify and invoke relevant
web services to accomplish an information need;
-
Assess privacy and security
issues related to the remote network storage and retrieval
of documents and communications.
[Return to top]
IT462 Advanced Database Systems (2-2-3).
This course
will discuss advanced issues in database systems, including
parallel, distributed and peer-to-peer databases, data
warehousing and data mining, XML and service-oriented
architectures. The course incorporates hands-on exercises using
commercial database systems and products, as well as a
web-database project.
Prereq: IT360 or SI440. [fall, spring]
Students will:
-
Apply data warehousing and data
mining technologies to decision support;
-
Illustrate and explain the use
of client-server architecture for distributed database
systems;
-
Compare the basic concepts,
data modeling and architectures between relational,
object-oriented, and object-relational databases;
-
Design and implement
database-backed websites using a service-oriented
architecture;
-
Analyze ethical and legal
issues related to peer-to-peer systems.
[Return to top]
IT460 Human Computer Interaction (2-2-3).
An
introductory course emphasizing interactive software design,
development and evaluation using a human-centered approach.
Topics include aspects of human sensation, perception and
cognitive psychology. Prereq: IC312 or IT350.
[fall, spring]
Students will:
-
Understand the scope of issues
affecting human-computer interaction (HCI);
-
Understand some of the
physiological, perceptual and cognitive bases for good
user-interface design;
-
Design a graphical
user-interface and use a UI API to implement a prototype;
-
Evaluate a user-interface using
techniques such as observation, survey, and experiments;
-
Participate in
discussions of situations involving ethical dilemmas related
to HCI.
[Return to top]
IT470 Enterprise Computing (2-2-3).
This course
develops architectures and concepts for the development of
multi-tier (typically 3 tiered) distributed applications for an
entire organization or enterprise. This includes a user
interface called the client tier or tier 1, a server component
which is controlled by the organization and provides for
interaction with and data collection from the user (tier 2) and
a database component that stores transactions and updates client
profiles (tier 3). The course teaches advanced techniques for
network programming as well as server management and
programming. Prereq:
IC322 or
IT340, and IT360 or IT420
. [fall, spring]
Students will:
-
Explain the basic principles of
distributes applications and distributed databases;
-
Understand the evolution of the
application integration and interoperability;
-
Examine the critical elements
involved in application integration, including middleware
and components;
-
Manage the impact of changes in
information systems on the user;
-
Design and implement an
application integration environment.
-
Analyze the role of and reasons
for using commercial off-the shelf (COTS) software products
as an alternative to custom-developed solutions;
-
Appraise the fundamental
criticality of system integration in the emerging Electronic
Business environment;
-
Analyze the social impact of enterprise information systems.
[Return to top]
SI411 Operating Systems (3-0-3).
The study of
the operating system as a resource manager. Topics include
process management, interrupt processing, memory management,
deadlock handling, file systems, multiprogramming,
multiprocessing, data security and protection.
Prereq: IC221, IC312. [fall]
Students will:
-
Understand the organization and architecture of computer
systems at the programming level of system description;
-
Be able
to solve problems in a multi-threaded programming
environment;
-
Analyze
and assess the computing environment foundational concepts
with respect to security from the perspective of the
operating system;
-
Evaluate contemporary legal, social, and ethical issues in
computing professions.
[Return to top]
SI250 Information Systems for the Junior Officer.
The primary emphasis of the course is practical applications of
personal computers and the Internet in the Fleet/Fleet Marine Force (FMF), with
coverage of some special tactical computers as well. Application software is
addressed from a junior officer's viewpoint, as an operational unit
Branch/Division/Company Officer or as a support staff member.
SI283 Programming for Engineers.
An introduction to a structured programming language and its
use in implementing algorithms to solve engineering problems.
|