Information Technology Major
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 Computer Science
- 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
- IC470 Software Engineering
- 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 Advanced 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 elective.
- 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
- SI440 Database Organization
- SI452 Advanced Computer Architecture
- 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 Computer Science (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 Student 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.
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 fundamentals 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 Student 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.
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 Student Outcome (c).
- Describe how the data path 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 Student 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.
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 file system from the command-line
- Build application software using a make utility. Supports Student Outcome (i).
- Write simple shell scripts and configure resource files. Supports Student 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.
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 Student 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 Student 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.
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 Student Outcome (a).
- Apply the principles of network layer design to the analysis and evaluation of routing algorithms, congestion control techniques, inter networking 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 Student 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.
IC470 Software Engineering (2-2-3). An introduction to the basic principles of software engineering. Structured, object-oriented, and formal approaches are studied, with emphasis on life cycles, object-oriented techniques and team-oriented software development. Prereq: IC312. [spring]
Students will:- Develop a substantial team-oriented software application using the major aspects of software development: definition/requirements, analysis, planning, design, implementation, testing and deployment. Supports Student Outcomes (IT-k), (IT-n).
- Understand advanced concepts in O-O analysis, planning, design, implementation, testing and deployment of software
- Collaborate in a team environment. Supports Student Outcome (d).
- Demonstrate effective communication orally and in writing. Supports Student 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.
IC480 Research Seminar/Capstone (1-4-3). This is a capstone course that ties together concepts from the information technology and computer science curricula 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 Student Outcomes (i), (IT-n).
- 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 Student Outcome (d).
- Demonstrate effective communication orally, in writing, and via multimedia. Supports Student Outcome (f).
- Understand the professional issues and responsibilities developing a software package for a client.
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 Student Outcome (IT-l)
- Comprehend and describe the importance of web standards. Supports Student Outcome (IT-m)
- 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.
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. Note: students MAY take both IT360 and SI440 for credit. Prereq: IC312, IT350. [spring]
Students will:- Design, create, and query relational databases to satisfy user requirements. Supports Student Outcome (IT-j).
- Design, build and deploy database-backed applications with dynamic website front-end. Supports Student Outcomes (IT-k), (IT-l).
- 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.
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 Student Outcome (IT-m).
- Analyze network security vulnerabilities and apply appropriate defensive mechanisms. Supports Student Outcome (IT-j).
- Understand cryptographic principles and the implications of their use in computer and network security. Supports Student Outcome (a).
- Analyze ethical, legal, social and professional issues relevant to information assurance
- Demonstrate the ability to work in teams in an integrated approach. Supports Student Outcome (f).
- Understand the security issues and responsibilities of freely available hacker tools and its local and global impact on organizations.
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.
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.
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.
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.
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.