INFO.2670 C Programming
Introduces students to the techniques of programming in C. The language syntax, semantics, its applications, and the portable library are covered. This course is not an introductory course in programming. However, it will teach some of the basics in the first few weeks. Students should have a working knowledge of at least one high-level programming language. 3 credits. Students may not receive credit for both the INFO.2110/INFO.2120 sequence and INFO.2670
This course qualifies for
free MSDNA software!
Prerequisites:
Previous programming experience
INFO.2680 C++ Programming
This course will cover the C++ language and show the student how to use the language. We will cover class construction, operator overloading, virtual functions, templates, and introduce the student to the IO streams. Inheritance and its use in creating extendible libraries will be presented. Object-oriented concepts will be presented in the context of the C++ language and its support for object-oriented programming. 3 credits.
This course qualifies for
free MSDNA software!
Prerequisites:
INFO.2670 or INFO.2120; requires C++ compiler software
INFO.2690 Advanced C++
Serves as a continuation of INFO.2680, with emphasis on Object Oriented Programming with C++. Design issues and programming guidelines will be discussed. Inheritance, dynamic binding, overloaded operators, abstract classes, and class hierarchies will be covered in more detail, with course projects concentrating on these areas. 3 credits.
This course qualifies for
free MSDNA software!
Prerequisites:
INFO.2680, experience with Data Structures.
INFO.3110 Introduction to the Linux/Unix Operating System
Addresses manipulating and maintaining files within the UNIX file system; creating and editing text files using the vi and ed editors; using pipes, redirection, and filters; using advanced text processing utilities; using electronic mail; writing and debugging shell scripts; submitting and executing processes. 3 credits.
INFO.3120 Shell Scripting
Teaches the students the techniques of programming in the high-level programming language of the Bourne, Korn, and BASH Shells. The course covers the building blocks necessary to create protable shell scripts that can be used as new utilitis for computers running either UNIX, Linux, or the Cygwin environment on Windows. 3 credits.
Prerequisites:
INFO.3110, and INFO.2670 or INFO.2120
INFO.3130 Linux/UNIX Internals Overview
Focuses on the fundamentals of UNIX kernel architectures. Topics covered in this course are: the file system, process creation, signals, process scheduling, context switching, memory management, virtual memory device driver basics and the I/O subsystem, system boot, the init process. 3 credits.
Prerequisites:
INFO.3120.
INFO.3160 UNIX System Administration
Addresses the fundamentals necessary to set up/adjust a UNIX system to produce an efficient and secure operating system environment. System starting and shutdown, file system partitioning and maintenance, user and group administration, backup and recovery, setting up terminals, printers and communications devices are topics which will be discussed. 3 credits.
Prerequisites:
INFO.3120
INFO.3180 Advanced UNIX Internals/Tuning
This course provides an overview of performance and tuning principles and tools in the UNIX operating system. The course covers principles of performance analysis and usage of performance measurement tools, such as sar, iostat, and nfsstat. Coverage is given on how to identify memory, I/O, and CPU bottlenecks, and it tives recommended solutions. Since knowledge of several of the major OS kernal subsystems is required to understand the information provided by the performance monitoring tools, the course provides an in-depth view of the operating system's major kernel subsystems. These include virtual memory system, process lifetime cycles and scheduling and the UNIX file system. The course will describe the kernel subsystems of a typical UNIX operating system and as needed, add the differences between the different flavors of UNIX, such as BSD and SYSTEM V. The course will also include some simple rules of thumb to guide the tuning process. Pre-requisite: 90.313 3 credits.
Prerequisites:
INFO.3130.
INFO.3190 Introduction to Linux
Course addresses management of the Linux file system and utilities; file editing; file permissions; pipes, redirection, and filters; text handling utilities; mail facility; BASH shell, variables, and basic scripts; process management; and shell programming basics. Course content mirrors 90.311 but focuses on usage of Linux as an alternative UNIX-based operating system. Students will be exposed to Linux principles through hands-on labwork utilizing a Linux server. 3 credits.
INFO.3210 Linux/Unix System Administration
The course will start by exploring the booting and setting up stand-alone system. Students will learn how to set up and manage user accounts, how to manage other resources such as disk space, CPU usage and user access to shared resources with maximization of security in mind. Since virtually all systems are networked today we will proceed to learn about e-mail (POP and SMTP protocols), Web servers and networking services. The course will present the following Internet services: DNS, FTP, telnet, HTTP (Apache Web Server), SSH. The intranet topics will be discussed including Network File System (NFS), Network Information Services (NIS) and interoperability with Windows system via Samba. At the conclusion of the course students will explore topics in networking: network configuration, security and interoperability. 3 credits.
Prerequisites:
Shell Scripting experience; required software with tex
INFO.3600 Intro. to Data Structures with C
This course introduces students to the fundamental concepts of data structures such as stacks, queues, linear and linked lists, trees, graphs, hashing, etc., using the C programming language. Algorithms for manipulating these structures, such as sorting and searching techniques, will also be covered. 3 credits.
This course qualifies for
free MSDNA software!
Prerequisites:
INFO.2670 or INFO.2120, and INFO.3640