This minor provides computing students with a firm foundation in networking and/or systems administration. Computer networks and the systems attached to these networks have become ubiquitous. Therefore, knowledge of how computer networks function, their administration, and the administration of the systems attached to them can be of value to every computing professional since their work is impacted in some way by computer networks and computer systems. Students may choose between two tracks: networking or system administration.
Notes about this minor:
This minor is closed to students majoring in computing and information technology or those majoring in computing security who have chosen the system administration track.
Posting of the minor on the student's academic transcript requires a minimum GPA of 2.0 in the minor.
Notations may appear in the curriculum chart below outlining pre-requisites, co-requisites, and other curriculum requirements (see footnotes).
Students choose a two course introductory programming sequence*
Computer Science I
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
Computer Science II
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
Computational Problem Solving in the Information Domain I
A first course in using the object-oriented approach to solve problems in the information domain. Students will learn to design software solutions using the object-oriented approach, to visually model systems using UML, to implement software solutions using a contemporary programming language, and to test these software solutions. Additional topics include thinking in object-oriented terms, and problem definition. Programming projects will be required.
Computational Problem Solving in the Information Domain II
A second course in using the object-oriented approach to solving problems in the information domain. Students will learn: basic design principles and guidelines for developing graphical user interfaces, and use of the Event Model to implement graphical interfaces; algorithms for processing data structures; multithreading concepts and use of the Multithreading Model to design and implement advanced processing methods. Additional topics include the relational model of information organization, and the Client-Server model. Individual implementation projects are required. A team implementation exercise is used to provide students an opportunity to apply basic software development and project management practices in the context of a medium-scale project.
Computational Problem Solving in the Network Domain I
A first course in using the object-oriented approach in the network domain. Students will learn to design software solutions using the object-oriented approach, to implement software solutions using a contemporary programming language, and to test these software solutions. Topics include thinking in object-oriented terms, problem definition, designing solutions using the object-oriented approach, implementing solutions using a contemporary programming language, and testing software solutions. Programming projects will be required.
Computational Problem Solving in the Network Domain II
A second course in object-oriented problem solving in the network domain. Students will learn to develop software for the applications layer of the protocol stack. Topics include data structures, network processes, network protocols, and network security. Programming projects will be required.
Game Software Development I
This course introduces students within the domain of game design and development to the fundamentals of computing through problem solving, abstraction, and algorithmic design. Students will learn the basic elements of game software development, including problem decomposition, the design and implementation of game applications, and the testing/debugging of their designs.
Game Software Development II
This course furthers the exploration of problem solving, abstraction, and algorithmic design. Students apply the object-oriented paradigm of software development, with emphasis upon fundamental concepts of encapsulation, inheritance, and polymorphism. In addition, object structures and class relationships comprise a key portion of the analytical process including the exploration of problem structure and refactoring. Intermediate concepts in software design including GUIs, threads, events, networking, and advanced APIs are also explored. Students are also introduced to data structures, algorithms, exception handling and design patterns that are relevant to the construction of game systems.
Computational Problem Solving I
This is the first course in a two-course sequence in computational problem solving of engineering and scientific problems. The problems solved will stress the application of sequence, selection, repetitive, invocation operations, and arrays. The development of proper testing procedures to ensure computational accuracy will be stressed. Students, upon successful completion of this course, will be able to analyze introductory engineering and scientific problems, design, code, test, and document procedural software solutions.
Computational Problem Solving II
This is the second course in a two-course sequence in computational problem solving of engineering and scientific problems. The problems solved will stress the application of data structures and object oriented classes. Data encapsulation, data management, and design robustness will be stressed. Students, upon successful completion of this course, will be able to analyze complex engineering and scientific problems, design, code, test, and document objected-oriented software solutions.
Computer Systems Concepts
This course teaches the student the essential technologies needed by NSSA majors, focused on PC and mainframe hardware topics. They include how those platforms operate, how they are configured, and the operation of their major internal components. Also covered are the basic operating system interactions with those platforms, physical security of assets, and computing-centric mathematical concepts.
Introduction to Routing and Switching
This course provides an introduction to wired network infrastructures, topologies, technologies, and the protocols required for effective end-to-end communication. Basic security concepts for TCP/IP based technologies are introduced. Networking layers 1, 2, and 3 are examined in-depth using the International Standards Organization’s Open Systems Interconnection and TCP/IP models as reference. Course topics focus on the TCP/IP protocol suite, the Ethernet LAN protocol, switching technology, and routed and routing protocols common in TCP/IP networks. The lab assignments mirror the lecture content , providing an experiential learning component for each topic covered.
Students choose one track and complete all three courses
This course is designed to provide the student with an understanding of the protocols, principles and concepts of radio communication as they apply to wireless data networking (802.11) for local area networks and peripherals. As its basis it uses the fundamental concepts and technologies learned in Introduction to Routing and Switching, and expands upon them to include other contemporary and emerging technologies. Topics including WLANs, wireless network operation, network integration, construction and network design will be discussed. Modulation techniques, measurement standards, nomenclature, equipment and theory behind transmissions in this portion of the electromagnetic spectrum will be examined.
VoIP and Unified Communications
Students will explore the issues associated with migrating to newer systems and implement their own IP based voice networks. These networks will be designed to carry real time data, including IP telephony and video. Topics will include codecs, protocols and the changing nature of the industry.
Mobile Adhoc and Sensor Networks
This course will help students to identify the major challenges in deploying mobile adhoc and sensor networks. Students will explore current ad-hoc/sensor technologies by researching key areas such as algorithms, protocols and applications. Students will learn to investigate how some of the challenges are addressed by researching publications. At the end of this course students will gain knowledge on the latest technological advances in wireless ad hoc and sensor networks, their significance in multiple applications and solutions to challenges that still require to be addressed.
Task Automation with Interpretive Languages
An introduction to the Unix operating system and scripting in the Perl and Unix shell languages. The course will cover basic user-level commands to the Unix operating system, followed by basic control structures, and data structures in Perl. Examples will include GUI programming, and interfacing to an underlying operating system. Following Perl, students will be introduced to the basics of shell programming using the Unix bash shell. Students will need one year of programming in an object-oriented language.
Systems Administration I
This course is designed to give students an understanding of the role of the system administrator in large organizations. This will be accomplished through a discussion of many of the tasks and tools of system administration. Students will participate in both a lecture section and a separate lab section. The technologies discussed in this class include: operating systems, system security, and service deployment strategies.
This class will take the students through the evolution of virtualization. The class begins with virtual network topologies such as VLANs, trunks and virtual routing and forwarding. The class will examine the various desktop virtualization platforms (Type 1) such as VirtualBox and VMWare workstation. Midway through the class students will transition into bare metal hypervisors (Type 2) and server virtualization. Elements of software defined networking, storage (ex. iSCSI) and cloud computing will also be discussed.
* An equivalent sequence may be approved by an adviser.