SUFFOLK COUNTY COMMUNITY COLLEGE COLLEGE-WIDE COURSE SYLLABUS CS51 (CST I. COURSE TITLE: Windows Scripting and UNIX Shell Programming II. CATALOG DESCRIPTION 2006-2008 Windows scripting and UNIX shell programming techniques are of significance in areas of system/networking administration and cyber security. Most administrative tasks can be accomplished using these techniques in an efficient fashion. Cyber security specialists also often make use of these techniques to prevent and counter cyber attacks. This course introduces key concepts for each of Microsoft’s primary system administration scripting technologies, including: Microsoft® Visual Basic® Scripting Edition (VBScript); Windows Script Host (WSH); the Script Runtime library; Active Directory Service Interfaces (ADSI); and Windows Management Instrumentation (WMI). It covers UNIX Bourne, Korn, and C shell programming. Basic techniques in Perl programming are also discussed. Prerequisite: CS28. III. STUDENT LEARNING OUTCOMES: Upon successful completion of this course, students will be able to: 1. understand basic Windows and UNIX/Linux scripting techniques 2. write scripts for basic system/network administrative tasks, and 3. use scripts for cyber security assessment and implementation. IV. Topics Outlines with Timeline: Weekly Outline Topics to be covered: Introduction to scripting in Windows environment a. Windows architecture and scripting environment Windows Script Host (WSH) and the Script Runtime library a. Overview b. Architecture c. Running WSH scripts d. WSH objects e. Securing scripts Microsoft® Visual Basic® Scripting Edition (VBScript) a. Overview b. Scripting environment Microsoft® Visual Basic® sample scripts a. Introduction to Microsoft Technet script repository b. Sample scripts for system administration Microsoft® Visual Basic® Scripting techniques I 1. 2. 3. 4. 5. a. Working with objects b. Variables c. Constants d. Strings e. Collections 6. Microsoft® Visual Basic® Scripting techniques II a. Looping b. Arrays c. Input/Output d. Error handling 7. Active Directory Service Interfaces (ADSI) and Windows Management Instrumentation (WMI) a. ADSI overview b. ADSI scripting fundamentals c. Active Directory architecture d. ADSI architecture e. WMI overview f. WMI architecture g. Common information model h. WMI scripting library i. Writing WMI scripts 8. Introduction to UNIX/Linux shell programming a. UNIX/Linux shells and kernels b. Text editors: vi and emacs c. The environment and inheritance d. System startup and login shells 9. Bourne and Korn shell techniques I a. The environment b. Metacharacters c. Variables d. Quoting e. Command substitution f. Functions g. Standard I/O and redirection h. Pipes i. The here document and Redirection 10. Bourne and Korn shell techniques II a. The steps in creating a Bourne/Korn shell script b. Reading user input c. Arithmetic d. Positional parameters and command line arguments e. Conditional constructs and flow control f. The case command g. Looping commands h. Functions i. Trapping signals j. The set command and options k. Shell built-in commands 11. Bourne and Korn shell examples 12. C shell techniques I a. The environment b. The command line c. Command line history d. Aliases e. Job control f. Metacharacters g. Expanding the metacharacters h. Redirection and pipes i. Variables j. Special variables k. Command substitution l. Quoting 13. C shell techniques II a. Steps in creating a C shell script b. Reading user input c. Arithmetic d. Debugging scripts e. Command line arguments f. Flow control and conditional constructs g. Loops h. Looping commands i. Interrupt Handling j. Setuid scripts k. Storing scripts l. Built-in commands 14. Basics of AWK, Sed, and Grep a. Variables b. Redirecting and pipes c. Closing files and pipes d. Conditional statements e. Loops f. Program control statements g. Arrays h. The streamlined Editor (Sed) overview i. The grep family 15. Introduction to Perl scripting a. Variables b. Commands c. Functions d. Loops e. Decisions f. Input/Output V. Evaluation of Student performance: To be determined by the instructor. VI. Programs that require this course: VII. Courses that require this course as a prerequisite: CS52 IX. Supporting Information: