E. Course Descriptions.
For each required or elective computer science course that can be counted for credit in the curriculum being reviewed for accreditation, include a two-page or three-page course outline at this point in the self-study. If your documentation does not exactly follow this format, be sure that all of the indicated information (if applicable) is present, and please in any case adhere to a common format for all course descriptions.
Note: The outline format calls for information on the content of the course in the areas of computer science theory, communications skills development and application, social and ethical implications of computing, and problem analysis and solution design experiences. This is not intended to suggest that every course must have some coverage of each of these topics. For a given course, please include the information from a listed area only if the course has significant content in that specific area.
In addition, similar outlines should also be included for required mathematics and science courses taken by computer science students.
The course outline for each required or elective computer science course must also be included in a display of course materials that is available for study at all times during the program evaluation site visit. The course material display must include at least the following for each computer science course that can be counted in the computer science segment of the curriculum being evaluated.
Textbook and other required material (e.g., manuals, reference booklets, standards documents, and so forth)
Syllabus and course policies
A complete set of assignments, tests, and important handouts Samples of graded student work on all assignments, written reports and other documents, and tests. Examples of excellent, satisfactory, and poor student work should be included.
If some of the above documentation is online (e. g., in an instructor’s web site), please indicate this, and have a computer available at or near the course displays so that the team can view it. Please give here the URL(s) for accessing any such materials:
Department and Course Number
CNS 1250
Course Coordinator
Roger deBry
Course Title
Object Oriented Programming I
Total Credits
4 (moving to 3)
Current Catalog Description: Introduces concepts of Object Oriented Programming. Presents tools, structure, syntax, and basic OOP techniques for designing well formed programs. Studies concepts such as classes, objects, methods, fields, data-types, control structures, data I/O, and exception handling.
Textbook: Absolute C++ by Walter Savitch
References: None
Course Goals: At the completion of the course, students should be able to
- Analyze computing problems and develop object oriented solutions to those problems.
- Describe and use the basic constructs of the C++ programming language.
- Apply an object-oriented methodology to a computing problem to develop an object-oriented solution to the problem.
- Using C++ development tools and appropriate design documents, construct relatively sophisticated programs using C++ libraries and programmer defined classes.
- Test and debug programs to assure quality and workability of completed code.
- Document programs for understandability and maintainability using self documenting code, standardized program and class prologues, and other elements of good programming style.
Prerequisites by Topic: CNS 1000, introduction to Computer Science
MATH 0990, Introductory Algebra
Major Topics Covered in the Course: C++ Syntax, primitive data types, objects, expressions, control structures, functions, parameters and function overloading, streams and file I/O, arrays, structures, classes, pointers, inheritance, polymorphism
Laboratory projects (specify number of weeks on each):
Introductory Lab 1 day
3-4 mini programs 1 week
7 or 8 Projects 2 weeks
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ___________ | ___________ | Computer Organization and Architecture |
___________ | ___________ |
| Algorithms Software Design | _____________ | _____________ | Concepts of Programming Languages | ___________ | ___________ |
Oral and Written Communications
None
Social and Ethical Issues
None
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
| COURSE DESCRIPTION | |||
| Department and Course Number | CNS 1350 | Course Coordinator | Roger deBry |
| Course Title | Object Oriented Programming II | Total Credits | 4 (moving to 3) |
Current Catalog Description: A continuation of Object oriented programming concepts. Covers overloaded operators, templates, friends, the Standard Template Library and exception handling. Introduces graphical User Interfaces.
Textbook: Absolute C++ by Walter Savitch
References: None
Course Goals: At the completion of the course, students should be able to
- Use industry standard OO analysis and design practices to analyze a complex problem and construct an object oriented solution to that problem.
- Describe and use the constructs of the C++ programming language.
- Using C++ development tools and appropriate design documents, construct relatively sophisticated programs using C++ libraries and programmer defined classes.
- Test and debug programs to assure quality and workability of completed code.
- Document programs for understandability and maintainability using self documenting code, standardized program and class prologues, and other elements of good programming style.
Prerequisites by Topic: CNS 1250, Object Oriented Programming I
Major Topics Covered in the Course: Operator overloading, friends, templates, software development process, OO analysis and design, sorting, searching recursion, Standard Template Library, GUI development, Computer Graphics
Laboratory projects (specify number of weeks on each):
3-4 mini programs 1 week
7 or 8 Projects 2 weeks
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
None
Social and Ethical Issues
None
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
| COURSE DESCRIPTION | |||
| Department and Course Number | CNS 1380 | Course Coordinator | Dennis A. Fairclough |
| Course Title | Assembly Language and Computer Architecture | Total Credits | 3 |
Current Catalog Description
Uses assembly language to introduce basic concepts of computer organization. Includes number systems, CPU organization, instruction sets, programming in assembly, memory organization, debugging, program design, and documentation. Covers interrupts, vector tables, and disk I/O.
Textbook
Computer Organization & Architecture, 6th Edition
William Stallings
Prentice-Hall
ISBN 0-13-081294-3
Assembly Language for Intel-Based Computers, 4th Edition
Irvine
Prentice-Hall
ISBN 0-13-091013-9
References
Instructor Class Presentations (Slides)
Internet References
Course Handouts
Course Goals
- Develop, indepth, the theory and concepts of basic computer architecture.
- Reinforce the theory and concepts by written reports and assembly language programs.
- Provide theory and concepts that aid the students to analyze, design, implement, and test programs.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
Major Topics Covered in the Course
- OVERVIEW of Computer Architecture.
- Computer Evolution and Performance.
- THE COMPUTER SYSTEM:
- System Buses.
- Cache Memory.
- Internal Memory Technology.
- External Memory.
- Input/Output.
- Operating System Support.
- THE CENTRAL PROCESSING UNIT.
- Computer Arithmetic.
- Instruction Sets: Characteristics and Functions.
- Instruction Sets: Addressing Modes and Formats.
- CPU Structure and Function.
- Reduced Instruction Set Computers (RISCs).
- THE CONTROL UNIT.
- Control Unit Operation.
- Microprogrammed Control.
- Fundamental Building Blocks
- Digital Logic.
- Number Systems
- Basic Assembly Language Concepts.
- Assembly Language.
- Virtual Machine Concept.
- Data Representation.
- Boolean Operations.
- Machine Architecture.
- General Architecture Concepts.
- Memory Management.
- Components Computer.
- Input-Output System.
- Assembly Language Fundamentals.
- Basic Elements of Assembly Language.
- Assembling, Linking, and Running Programs.
- Defining Data.
- Symbolic Constants.
- Data Transfers, Addressing, and Arithmetic.
- Data Transfer Instructions.
- Addition and Subtraction.
- Data-Related Operators and Directives.
- Indirect Addressing.
- JMP and LOOP Instructions.
- Procedures.
- Linking to an External Library.
- Link Libraries.
- Stack Operations.
- Defining and Using Procedures.
- Program Design Using Procedures.
- Conditional Processing.
- Boolean and Comparison Instructions.
- Conditional Jumps.
- Conditional Loop Instructions.
- Conditional Structures.
- Finite State Machines (Application).
- Assembler Directives.
- Integer Arithmetic.
- Shift and Rotate Instructions.
- Shift and Rotate Applications.
- Multiplication and Division Instructions.
- Extended Addition and Subtraction. ASCII and Packed Decimal Arithmetic (Optional).
- Advanced Procedures.
- Local Variables.
- Stack Parameters.
- Stack Frames. Recursion.
- Creating MultiModule Programs.
- Strings and Arrays.
- String Primitive Instructions.
- Selected String Routines.
- Two-Dimensional Arrays.
- Structures and Macros.
- Structures. Macros.
- Conditional-Assembly Directives.
- Defining Repeat Blocks.
- 16-Bit MS-DOS Programming.
- MS-DOS and the IBM-PC.
- MS-DOS Function Calls (INT 21h).
- Standard MS-DOS File I/O Services.
- Disk Fundamentals.
- Disk Storage Systems.
- File Systems.
- BIOS-Level Programming.
- Introduction. BIOS-Level Keyboard Input (INT 16H).
- Expert MS-DOS Programming.
- Defining Segments.
- Runtime Program Structure.
- Interrupt Handling
- BIOS and MS-DOS Interrupts.
- Overall Interrupt List.
- Interrupt 21H Functions.
- Interrupt 10H Functions.
- Keyboard BIOS INT 16h Functions.
Laboratory projects (specify number of weeks on each)
Students will write 10 programs that will illustrate and reinforce the theory and concepts presented in class.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Discussion on ethics in the course concentrates on copyright and personal property issues.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
- Theory of computer architecture.
- Central Processing Unit.
- Memory.
- Direct Access Storage Devices (DASD).
- Serial Access Storage Devices (SADS).
- Network Attachments.
- Input/Output Peripheral Devices.
- External Buses.
- Theory of Central Processing Units.
- Arithmetic Logic Units.
- CPU Buses.
- Registers and Register Sets.
- Control Units.
- Instruction Sets.
- Cache Memory.
- Interrupts and Vectors.
- Theory of Assembly Language Programming.
- Program Structure.
- Sequential Program Flow.
- Conditional Program Flow.
- Looping Program Flow.
- Procedure Program Flow.
- Interrupt Program Flow.
- Assembler Directives.
- Macros.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 1510
Course Coordinator
S. Jeff Cold
Course Title
Unix Operating System
Total Credits 3
Current Catalog Description
Covers concepts and procedures of the Unix OS using the Linux operating system. Studies the Unix kernel, device drivers, shell and utilities. Covers many user and system utilities.
Textbook
Das, Sumitabha. (2001). Your Unix: The Ultimate Guide New York: Graw-Hill. ISBN 0-07-240500-7.
References
Hughes, Phil. (1998). Linux for Dummies, Quick Reference New York: IDG Books Worldwide, Inc. ISBN 0-7645-0422-3.
Course Goals
Students will become familiar with the Linux operating system to the workstation level. Students will be able to navigate a typical Unix file system, manipulate files by assigning permissions, ownership, group ownership, and installing new software. Students will be familiar with basic shell scripting, awk and perl. Students will have a solid foundation for using Unix/Linux so they can begin to learn how to implement specific Unix/Linux features for their employer.
Prerequisites by Topic
CNS 1250: Object-Oriented Programming I
Major Topics Covered in the Course
- Vi
- Emacs
- UNIX file system
- File attributes
- The shell simple filters
- Processes
- TCP/IP
- X Windows
- e-mail and systems
- Internet services provided by daemons
- Grep and sed
- Environment variables
- Shell programming
- Perl
- System administration
- Network administration
Laboratory projects (specify number of weeks on each)
Each student has the use of a 20GB removeable hard drive. Each student receives Linux Mandrake v8.1 on a two CD set to use in installing their own Linux OS. Every student is given a static IP address in the class subnetwork. Installing and configuring Linux and X-Windows is on-going throughout the 17 week semester. Since students have their own “root,” they are encouraged to experiment and explore with Linux.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ___________ | ___________ | Computer Organization and Architecture |
___________ | ___________ |
| Algorithms Software Design | ___________ | ___________ | Concepts of Programming Languages | ___________ | ___________ |
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Open Source and the GNU General Public License: The first homework assignment (worth 2% of their total grade) requires students to read the GPL and write a one-page paper on what they think the GPL means. Thirty minutes spent in class on this topic.
Extra Credit: Students may earn not more than 10% extra credit by reading “The Cathedral and the Bazaar” by Eric S. Raymond. This book is a compilation of essays by ESR on the benefits and ethics of open source development. No time spent in class on this topic.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Chapter 1: Basic Unix utilities, logging in, Unix history, the Kernel-Shell-user relationship, GNU and the Free Software Foundation. 2.5 hours.
Chapter 2: Internal and external commands, man pages and the format of basic commands, pagers, whatis and apropos. 2.5 hours.
Chapter 3: Terminal manipulation, user accounts and password manipulation, discovering kernel version, basic user operation. 2.5 hours.
Chapter 4: vi editor’s three modes, inserting and replacing text, goto feature, moving and yanking text, search operations, shelling out, using regular expressions. 2.5 hours.
Chapter 5: emacs editor. Using the control and meta keys, kill ring, scratch buffer, working with regions, using multiple windows, using macros. 1.25 hours.
Chapter 6: Using device files, file system organization, absolute versus relative pathnames, file manipulation utilities, using archived and compressed files. 1.25 hours.
Chapter 7: File attribute manipulation, changing permissions, changing ownership, manipulating groups, types of subdirectories, inodes, using find. 1.25 hours.
Chapter 8: Using the shell, the shell’s interpretive cycle, pattern matching, despecializing, redirection, using pipes, splitting streams, shell variables, shell scripts. 1.25 hours.
Chapter 9: Exploring commonly used filters. 1.25 hours.
Chapter 10: Unix processes, initd, job control, kill, at and cron. 1.25 hours.
Chapter 11: TCP/IP, hostnames, telnet and ssh, ftp, dns. 1.25 hours.
Chapter 12: X windows client server architecture, .xinitrc, xdm, xhost, widgets, window managers, KDE themes, OpenGL drivers, XFree86.org, XF86Config-4 file, xkill. 1.25 hours
Chapter 13: e-mail systems: MUA, MTA, MDA, sendmail, majordomo, procmail. 1.25 hours.
Chapter 14: Internet services offered by Unix: ircd, ftpd, httpd, nntpd, the Internet domain tree, HTML, perl and CGI. 1.25 hours.
Chapter 15: grep and sed, using regular expressions. 1.25 hours
Chapter 17: customizing the shell, changing the shell, bash features like command-line completion, bash history. 1.25 hours.
Chapter 21: Mounting and using devices, physical and logical data storage, inode blocks, data blocks, disk block addressing scheme, superblock, fschk. 1.25 hours.
Chapter 22: Init run levels, /etc/rc.d files, shutting down, backup up files, tar, rpm, kernel re-compiling. 1.25 hours.
Chapter 23: TCP/IP networks, subnet masking, IP address classes, inetd, tracepath(trace route), ping, pppd, NFS. 1.25 hours.
Chapter 24: DNS, Bind, named, firewalls, httpd.conf and Apache, sendmail.conf, setting up Unix/Linux servers. 1.25 hours.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Chapter 16: Using awk/gawk, identifying different delimiters, different awk operators, variables, and functions. Students have a homework assignment for this chapter where they have to write an awk program 1.25 hours.
Chapter 18 & 19: Shell programming, students review several sample shell programs as each new concept is discussed. Students have to write a simple shell program to automate retrieving files from an ftp server, as a homework assignment.
Chapter 20: Perl syntax and usage. Students have to write a perl program to that will enumerate the /etc/passwd file.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 2300
Course Coordinator
Ernest Carey
Course Title
Discrete Structures I
Total Credits 3
Current Catalog Description
For CNS majors. Covers algebraic structures applied to computer programming. Includes Logic, sets, relations, graphs, trees, and Boolean Algebra
Textbook
Discrete Mathematics and Its Applications, 4th Edition
Kenneth H. Rosen
McGraw-Hill
References
Course Goals
- development of mathematical maturity
- 2.provide background for advanced mathematical courses
- provide the mathematical background for many of the advanced computer science courses such as CNS32400, Theory of Computing
- provide the mathematical background for solving problems in operations research
Prerequisites by Topic
College algebra provides a sufficient background for all topics. Students must also be able to program in C++ to complete the programming assignments.
Major Topics Covered in the Course
Logic
Propositional Equivalences
Predicates and Quantifiers
Sets & Set Operations
Functions
Sequences and Summations
The Growth of Functions
Algorithms
Complexity of Algorithms
The Integers and Division
Integers and Algorithms
Applications of Number Theory
Matrices
Methods of Proof
Mathematical Induction
Recursive Definitions
The Basics of Counting
The Pigeonhole Principle
Permutations and Combinations
Discrete Probability
Inclusion-Exclusion Relations and Their Properties
n-ary Relations and Their Applications
Representing Relations
Equivalence Relations
Introduction to Graphs
Graph Terminology
Representing Graphs and Graph Isomorphism
Connectivity
Introduction to Trees
Applications of Trees
Tree Traversal
Boolean Functions
Representing Boolean Functions
Logic Gates
Minimization of Circuits
Laboratory projects (specify number of weeks on each)
Students are required to write several programs demonstrating algorithms discussed in the course.
Searching
Matrix multiplication
Probability
Graph representation
Dijkstra’s algorithm/p>
Each program requires 3-5 hours of time except for Dijkstra’s algorithm which requires substantially more.
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least _____ written reports (not including exams, tests, quizzes, or commented programs) of typically _____ pages and to make _____ oral presentations of typically _____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
This is a course in mathematics and, as such, is almost entirely theoretical. A limited amount of time (less than 10%) is spent demonstrating how some of the mathematical principles are used in the world of computer science. Students are required to demonstrate knowledge of certain algorithms and therefore do apply some of theoretical principles in the course.
Problem Analysis
Please describe the analysis experiences common to all course sections.
This is the first course where students are introduced to the mathematical meaning of Big O notation and how it is used to analyze algorithms. Students analyze simple algorithms and identify reasons why algorithms fall into Big O categories.
Solution Design
Please describe the design experiences common to all course sections.
The students are required to design the algorithms used in the programming assignments in an efficient manner.
COURSE DESCRIPTION
Department and Course Number
CNS 2400
Course Coordinator
Ernest Carey
Course Title
Object-Oriented Data Structures
Total Credits 4
Current Catalog Description
Introduces data structures using an object-oriented programming language, and paradigm. Studies data abstraction as a design tool. Includes advanced array, records, dynamic data structures, searching and sorting, vectors, trees, linked lists, and graphs. Uses file I/O to store data structures. Discusses algorithm metrics.
Textbook
Data Structures and Program Design in C++
Robert L. Kruse, Alexander J. Ryba
Prentice Hall
References
Course Goals
- The student will understand the underlying concepts for abstract data structures, independent of implementation.
- The student will understand how the organization of data can be combined basic operations on the data to form Abstract Data Types, implemented in C++ classes.
- The student will be able to read and understand the algorithms used in the implementation of common data structures.
- The student will be able to create code using data structures from the Standard Template Library.
- The student will be able to analyze a problem and determine the appropriate data structure(s) to use in solving the problem with a computer application.
- The student will be able to write code to compare the speed and efficiency of various algorithms, using a variety of data structures.
- The student will be able to analyze their own work and, using English, describe major problems they encountered and the steps they took to solve the problems.
Prerequisites by Topic
CNS1350, Programming in C++, is a prerequisite for all topics in this course.
Major Topics Covered in the Course
Stacks, contiguous implementation
Queues, contiguous implementation
Linked Stacks and Queues
Recursion
Lists and Strings
Searching
Sequential
Binary
Comparison Trees
Sorting
Insertion
Selection
Shell
Divide and Conquer
Mergesort
Quicksort
Heaps and Heapsort
Radix
Tables of Various Shapes
Hashing
Binary Trees
Binary Search Trees
AVL Trees
Splay Trees
Lexicographic Search Trees
Extendible Hashing
B-Trees
B*-Trees
B+-Trees
Red-Black Trees
Computer Representation of Graphs
Graph Traversals
Topological Sorting
Computer Representation of Sets
Greedy Algorithms: Shortest Paths
Minimal Spanning Trees
Laboratory projects (specify number of weeks on each)
- File I/O (1 week) This is a review assignment to solidify file I/O concepts
- Queues, contiguous implementation (1 week)
- Queues, linked implementation (1 week)
- Lists (1 ½ weeks)
- Sorting Algorithms (1 ½ weeks)
- Simple Index (2 weeks)
- AVL Trees (3 weeks)
- B-Trees (3 weeks)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Asymptotic analysis is introduced in this course and further discussion of Big O notation is included, primarily with the analysis of searching and sorting algorithms.
The discussion of Abstract Data Types without the emphasis on implementation would also be considered as part of the theoretical content.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to implement and compare two sorting algorithms using empirical data to justify a theoretical analysis.
Solution Design
Please describe the design experiences common to all course sections.
With the exception of the assignment on sorting algorithms, all other assignments are designed to give the students experience with increasingly more complex problems. Design issues are stressed from the beginning of the course with the idea that good design methods will simplify the more complex problems. For example: Programs 2 and 3 accomplish the same task using different implementations of a queue. If the original design was clean then little more than swapping out the queue implementations is required. Programs 6-8 all require using an index in main memory to access data records on disk. Program 6 uses a simple index (vector) but program 7 requires the use of an AVL tree for the index. Program 7 finally moves the index to a B-Tree. In addition to preparing the code for the various data structures involved, students are reminded that good design will allow easier transition from one ADT to another.
COURSE DESCRIPTION
Department and Course Number
CNS 2550
Course Coordinator
Kirk Love
Course Title
Internet Programming
Total Credits 3
Current Catalog Description
Covers Internet programming concepts, fundamentals, data types, design, and use. Studies the programming concepts and use of graphics, graphic formats, graphic conversions, sound, sound formats, sound encoding, animation, and animation formats. Presents design considerations, bandwidth limitations, and Web content embedding. Includes hands-on use of hardware and software tools used to create and manipulate objects on the Internet.
Textbook
XML, How To Program, Deitel, Prentice Hall, ISBN 0-13-028417-3.
References
Course Goals
- Master Development of Dynamic Web pages.
- Learn how to setup a Web application environment.
- Implement Web applications that include student developed Java Applets and Servlets.
- Learn how to markup data with XML and provide DTDs and Schemas for that XML.
- Develop Web pages that let the user query and update an SQL data base.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I – Java: Students must be able to develop simple Java programs.
Major Topics Covered in the Course
HTML (syntax and usage)XML (syntax, data markup, usage, validation)
XML DTDs
XML Schemas
Applet development and usage
Servlet development and usage
Java Data Base Objects (JDBC)
Java XML Objects (DOM and SAX)
Internet Sockets (general usage)
Introduction to SQL (for usage with web pages that tie to a server data base)
SOAP
Laboratory projects (specify number of weeks on each)
- Student Resume development – 3 Three HTML projects, 1 week each.
- HTML Form and Servlet Project – 1 week
- Web Data Base interface – 2 projects, 2 week each
- Data Markup using XML – 1 day
- DTD development – 1 day
- XML Schema development – 1 day
- Applet with DOM for XML parsing – 1 week
- Applet with SAX parsing of Data Base Query XML output – 1 week
- Student Research Project (extends over the last four weeks of school, requires research on a topic of their choice, a formal in-class presentation, and a demo programmed by the student which demonstrates the concepts presented).
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Problem Analysis
Students solve programming problems that include partitioning of various application requirements across a distributed environment (client and server).
Students must define XML tag structures that correspond to a give data base structure. This includes trade-offs between use of elements and attributes of elements along with considerations for validation of data marked-up by their XML structure.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 2600
Course Coordinator
David Heldenbrand
Course Title
Fundamentals of Data Communications
Total Credits 3
Current Catalog Description
Presents rigorous introduction to data communications technology for CNS majors. Includes theory of data communications protocols; theory and design of transmission systems; transmission media and communication software.
Textbook
Computer Networks - A Systems Approach, 2nd edition, L. Peterson and B. Davie, Morgan Kaufman Publ., ISBN 1-55860-514-2
References
Students are provided with an instructor-created handout containing approximately 100 figures and tables not provided by the text, along with approximately 30 pages of additional readings.
Course Goals
These are the high-level course objectives. Students competing this course successfully will be able to…
- describe how computer networks are used
- illustrate and explain the advantages and disadvantages of the two dominant models for network architectures
- list the dominant data communications standards (protocols), the role of each standard, and the organizations and processes that create them
- explain the design and function of data link control protocols
- compare the performance characteristics of data transmission media
- illustrate common digital and analog signaling techniques (different ways of transmitting bits across the media), and describe the advantages and disadvantages of each
- describe three error detection schemes, and execute the associated algorithms
- describe three Local Area Network architectures, their advantages and disadvantages, and preferred applications
- explain the function of major data communications hardware components
- give a detailed explanation of packet switching in detail
- list and describe dominant Wide Area Network architectures
- provide a detailed explanation of the functionality, advantages and disadvantages of Asynchronous Transfer Mode
Prerequisites by Topic
[Prerequisites are listed next to each topic in the following section.]
Major Topics Covered in the Course
- Network Requirements (none)
- Sharing Resources (none)
- Network Performance (none)
- Network Architecture (Intro to Programming, minimal Computer Architecture helpful)
- More Standards (none)
- Direct Link Networks (College Algebra)
- Data Transmission Media (Physics I)
- Encoding (Discrete Math helpful)
- Modulation & Modems (College Algebra and Trig)
- Noise (College Algebra and Trig, Physics I)
- Shannon's Law (College Algebra)
- Framing (none)
- Synchronous Framing (none)
- Error Detection (Intro to Programming (C), College Algebra, Discrete Math helpful)
- Link Utilization (College Algebra)
- Sliding Window Algorithm (Discrete Math helpful)
- Ethernet LANs (College Algebra)
- Token Ring LANs (College Algebra)
- Wireless LANs (Physics I)
- Network Adapters (minimal Computer Architecture helpful)
- Packet Switching (none)
- Connectionless Datagram Networks (none)
- Connection-Oriented Virtual Circuit Networks (none)
- Bridges and LAN Switches (minimal Data Structures helpful)
- Asynchronous Transfer Mode (none)
- The ATM Adaptation Layer (none)
- ATM LAN Emulation (none)
Laboratory projects (specify number of weeks on each)
This course has no lab. Students are assigned homework exercises which expose various aspects of data communications technology. These problems may be done in the CNS labs, or on students' personal systems. (See Problem Analysis and Solution Design, below.)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
- Discussion of role of student and instructor in CNS courses, including classroom behavior, student-instructor relationship, etc. (.25 hrs.). No evaluation.
- Convergence of data and voice, impact on the job market, and potential career areas (.25 hrs.). No evaluation.
- Career areas/disciplines within data communications (.25 hrs.). No evaluation.
- Discussion of course sequences and prerequisites within the Networking Specialization at UVSC. (.25 hrs.). No evaluation.
- Discussion of Telecommunications Reform Act of 1996, impact on markets, possible unintended consequences. (.25 hrs.). Basic question on test.
- Pros/cons of formal and informal standards. The international (ISO) standardization process and political implications. Internet governance and the IETF (as an alternative). "Cultural" differences between the ISO and IETF. Ethics of individual vendor influence over the standards process. (.5 hrs.). Test, quiz and homework questions.
- "Fairness", as it relates to shared network access. (.25 hrs.). Test question.
- Wireless spectrum as a public resource, and role of the FCC. (.25 hrs.). Test and homework questions.
- Issues with overseas carriers (PTTs), and the development of international communications infrastructure. (.25 hrs.). Test and quiz questions.
- Conflicts arising from duplicate (overlapping) standards (i.e., HDLC vs. ADCCP, 802.3 vs. Ethernet Type II). (.5 hrs.). Test, homework and quiz questions. Contributions of women to data communications technology (Radia Perlman, Hedy Lamarr, etc.) (.5 hrs.). No evaluation.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
(This is the theoretical portion of the content derived from the Steelman analysis, filename Steelman_Core_2600_3690.doc)
| Spanning Tree (DS5) | 0.25 hours |
| Separation of behavior and implementation (PL6) | 0.5 |
| I/O and interrupts (AR3) | 0.25 |
| Network architectures (NC1) | 1.25 |
| Networks and protocols (NC1) | 0.5 |
| Networked multimedia systems (NC1) | 0.5 |
| Distributed computing (NC1) | 0.5 |
| Mobile and wireless computing (NC1) | 0.5 |
| ISO 7 layer reference model and TCP/IP (NC2) | 4 |
| Circuit switching and packet switching (NC2) | 3 |
| Streams and datagrams (NC2) | 2 |
| Physical layer networking concepts (NC2) | 6 |
| Data link layer concepts (NC2) | 7.25 |
| Total | 26.5 hours |
Problem Analysis
Please describe the analysis experiences common to all course sections.
Homework exercises are the primary problem solving activity in this course. Some of these exercises are derived from the text, others are instructor-developed. The exercises generally fall in to one of three categories.
The first category of exercises involve calculation, for example, determining the maximum effective bandwidth of a token ring network. These types of exercises simulate elements of design activities that might be done by a network engineer or software engineer. They demonstrate and reinforce technical principles discussed in the lecture and reading.
The second category involves research questions. In this case, a student may be required to locate Internet standards documents (RFCs), do some reading, and then answer questions based on that reading. This category is designed to simulate the research phase of a project, and to familiarize students with the extensive body of standards relevant to data communications.
The third area involves speculative questions, where the student is presented with a problem related to material covered in class, and a set of constraints. The student is required to develop a solution which may involve additional research, synthesis of information, and creative problem solving.
Solution Design
Please describe the design experiences common to all course sections.
Solutions to exercises described in the Problem Analysis section vary in complexity and scope. Solutions to calculation exercises are explained as necessary, with detailed solutions and explanations provided on the instructor's website. Solutions to research questions are explained, along with background discussion and discussion of possible alternatives. The greatest amount of class discussion typically results from the speculative questions. Solutions developed by individual students are evaluated during class time, and critiqued by other students and the instructor. Students who develop particularly noteworthy or creative solutions are awarded extra credit. All exercises are discussed during class time.
COURSE DESCRIPTION
Department and Course Number
CNS 2610
Course Coordinator
George Hickman
Course Title
Network Administration
Total Credits 3
Current Catalog Description
For CNS majors. Presents the NetWare network operating system and the concepts of how to manage a local area network. Covers: network operating system fundamentals, login scripting, volume and subdirectory structure and management, network security, and network printing.
Textbook
NetWare 5.1 Administration, Novell Education
References
Course Goals
To gain an understanding and ability to use and configure the NetWare Network Operating System.
Prerequisites by Topic
Programming Experience (any language)
Computer Literacy Course
Major Topics Covered in the CourseM
Installation of Client software
Identify components of workstation dataflow model
Create and update user accounts
Network File System
File System Rights
Writing Login Scripts / Scripting Language
Implementing Security
Configure network printing
Workstation policies
Installing/configuring Server-based applications
Laboratory projects (specify number of weeks on each)
Laboratory assignments are given throughout the course on all major objectives.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Ethical implications of security measures and workstation policies (such as the ability of server administrators to view the screens of logged-in users with or without their knowledge) and how appropriate use policies should handle informing users of this possibility. 2 lecture hours
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 3060
Course Coordinator
Brian Durney
Course Title
Operating Systems Theory
Total Credits 3.0
Current Catalog Description
Introduces underlying theory of basic concepts of operating systems. Illustrates use of processes, tasks, threads, scheduling, queues, blocking, deadly embrace, etc.
Textbook
Applied Operating System Concepts by Silberschatz, Galvin, and Gagne
References
Course Goals
To understand basic operating concepts including processes, memory management, I/O, file systems, and security.
Prerequisites by Topic
Programming (through the second class in the introductory programming sequence), data structures.
Major Topics Covered in the Course
Operating systems basics including history, terminology, types of operating systems, and how an operating system works with the underlying hardware.
Processes, process states, scheduling, threads, synchronization and deadlock.
Memory management, virtual memory, paging algorithms.
File systems and basic concepts of disk I/O.
I/O and basic concepts of device drivers.
Introduction to operating system security.
Laboratory projects (specify number of weeks on each)
The students implement an operating systems algorithm, such as a page replacement algorithms or memory allocation algorithm, and write a simulation to test their algorithm and compare it to another algorithm that does the same job. They write a short report (about two pages of text plus tables, code, etc.) that presents their results.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
In this course we discuss operating systems security and the related ethical and social issues. However, this topic is usually at the end of the semester and is not always addressed with in-depth test questions.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
This course does not have much theoretical content. We do spend a little time (perhaps half an hour) on applications of graphs to the problem of deadlock.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students analyze a simulation problem to determine the best way to get information about an algorithm’s characteristics.
Solution Design
Please describe the design experiences common to all course sections.
Students design and implement a simulation to study operating systems algorithms. COURSE DESCRIPTION
Department and Course Number
CNS 3240
Course Coordinator
Ernest Carey
Course Title
Computational Theory
Total Credits 3
Current Catalog Description
Presents concepts of formal (programming) language definition, Turing machines, finite automata, regular expressions, grammars, context-free languages, and computability.
Textbook
Introduction to Computer Theory, Second Edition
Daniel I. A. Cohen
John Wiley & Sons, Inc.
References
Elements of the Theory of Computation, Lewis and Papadimitriou, Prentice-Hall, 1981 (2nd edition, 1997)
Introduction to Automata Theory, Languages and Computation, Hopcroft, Motwani and Ullman, Addison-Wesley, 2001
Introduction to Languages and the Theory of Computation, John C. Martin, McGraw-Hill, 1991
An Introduction to Formal Languages and Automata, Peter Linz, Jones and Bartlett, 2001
Theory of Computation: Formal Languages, Automata and Complexity, J. Glenn Brookshear, Benjamin/Cummings, 1989
Logic and Language Models for Computer Science, Hamburger and Richards, Prentice-Hall, 2002
Theory of Computing – A Gentle Introduction, Kinber and Smith, Prentice-Hall, 2001
Course Goals
- The student will understand the mathematical origins of computers.
- The student will be able to understand which state machines are equivalent.
- The student will be able to determine the languages accepted by the various state machines.
- The student will be able to follow the proofs related to equivalences of state machines.
- The student will be able to identify the major people involved in the development of state machines and their major contributions to computer science.
Prerequisites by Topic
CNS2300, Discrete Structures, CNS 3500, Programming in C++, are prerequisites for all topics in this course.
Major Topics Covered in the Course
Regular Expressions
Finite Automata
Transition Graphs
Finite Automata with Output
Regular Languages
Nonregular Languages
Decidability
Context Free Grammars
Pushdown Automata
Context Free Languages
Turing Machines
Post Machines
Minsky’s Theorem
Variations on the Turing Machine
Turing Machine Languages
The Chomsky Hierarchy
Computers
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
As the title of the course indicates, this course is all theoretical material.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to implement two of the state machines discussed in class.
Solution Design
Please describe the design experiences common to all course sections.
Implementing the two state machines with graphical interface.
COURSE DESCRIPTION
Department and Course Number
CNS 3300
Course Coordinator
Ernest Carey
Course Title
Discrete Structures II
Total Credits 3
Current Catalog Description
For CNS majors. Covers algebraic structures applied to computer programming. Includes Counting Techniques, Relations, Graphs, Trees and Modeling Computation
Textbook
Discrete Mathematics and Its Applications, 4th Edition
Kenneth H. Rosen
McGraw-Hill
References
Course Goals
- development of mathematical maturity beyond that required in CNS2300
- provide additional background for advanced mathematical courses
- provide the mathematical background for many of the advanced computer science courses such as CNS32400, Theory of Computing
- provide the mathematical background for solving problems in operations research
Prerequisites by Topic
CNS 2300 (Discrete Structures I) provides a sufficient background for all topics. Students must also be able to program in C++ to complete the programming assignments.
Major Topics Covered in the Course
Recursive Algorithms
Program Correctness
Probability Theory
Generalized Permutations and Combinations
Generating Permutations and Combinations
Recurrence Relations
Solving Recurrence Relations
Divide-and-Conquer Relations
Generating Functions
Applications of Inclusion-Exclusion
Closures of Relations
Partial Orderings
Euler and Hamilton Paths
Shortest Path Problems
Planar Graphs
Graph Coloring
Trees and Sorting
Spanning Trees
Minimum Spanning Trees
Languages and Grammar
Language Recognition
Finite State Machines with Output
Finites State Machines with No Output
Turing Machines
Laboratory projects (specify number of weeks on each)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
This is a course in mathematics and, as such, is almost entirely theoretical. A limited amount of time (less than 10%) is spent demonstrating how some of the mathematical principles are used in the world of computer science. Students are required to demonstrate knowledge of certain algorithms and therefore do apply some of theoretical principles in the course.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Program Correctness and Modeling Computation require a great deal of analysis on behalf of the students. The mathematical concepts, due to the nature of mathematics, require a great deal of analysis.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 3330
Course Coordinator
Dennis A. Fairclough
Course Title
Windows Programming
Total Credits 3.0
Develops concepts required for developing application software in a Microsoft MFC-based environment. Includes elements of Windows programming, user interface design, application frameworks, resource workshop, windows libraries, and application development on a variety of Windows platforms. Requires programming a Windows applications using C++ and low-level Graphical User Interface (GUI) application frameworks.
Textbook
Programming Windows , Fifth Edition
Charles Petzod
Microsoft Press,
ISBN 1-57231-995-X
References
Instructor Class Presentations (Slides)
Internet References
Course Handouts
Course Goals
- Develop the theory and concepts associated with Microsoft Windows programming.
- Develop the theory and concepts of threads, events, and graphical user interfaces.
- Discover the low-level Microsoft Windows API.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
Major Topics Covered in the Course
Introduction to Windows Programming
Windows Environment
History of Windows
Aspects of Windows
Dynamic Linking
Windows Programming Options
APIs and Memory Models
The Programming Environment
API Documentation
A Character-Mode Model
The Header Files
Program Entry Point
Compile, Link, and Run
An Introduction to Unicode
A Brief History of Character Sets
American Standards
Extending ASCII
Double-Byte Character Sets
Unicode
Wide Characters and C
The char Data Type
Wider Characters
Wide-Character Library Functions
Wide Characters and Windows
Windows Header File Types
Windows Function Calls
Windows' String Functions
A Formatting Message Box
Windows and Messages
An Architectural Overview
The HELLOWIN Program
Registering the Window Class
Creating the Window
Displaying the Window
The Message Loop
The Window Procedure
Processing the Messages
The WM_PAINT Message
The WM_DESTROY Message
Queued and Nonqueued Messages
Get In and Out Fast
Text Output
Painting and Repainting
The WM_PAINT Message
An Introduction to GDI
The Device Context
Getting a Device Context Handle: Method One
The Paint Information Structure
Getting a Device Context Handle: Method Two
TextOut: The Details
The System Font
Text Metrics: The Details
Formatting Text
The Size of the Client Area
Scroll Bars
The Scroll Bar Information Functions
Basic Drawing
The Structure of GDI
The GDI Philosophy
The GDI Function Calls
The GDI Primitives
The Device Context
Finding Out About Color
The Device Context Attributes
Saving Device Contexts
Drawing Dots and Lines
The Bounding Box Functions
Bezier Splines
Using Stock Pens
Drawing Modes
Drawing Filled Areas
The Polygon Function and the Polygon-Filling Mode
The GDI Mapping Mode
Device Coordinates and Logical Coordinates
The Viewport and the Window
Rectangles, Regions, and Clipping
Creating and Painting Regions
The Keyboard
Keyboard Basics
Queues and Synchronization
Keystrokes and Characters
Keystroke Messages
Virtual Key Codes
The lParam Information
Shift States
Using Keystroke Messages
Message Ordering
Control Character Processing
Dead-Character Messages
Keyboard Messages and Character Sets
The Foreign-Language Keyboard Problem
Character Sets and Fonts
What About Unicode?
TrueType and Big Fonts
The Caret Functions
The Mouse Mouse Basics
Client-Area Mouse Messages
Processing Shift Keys
Mouse Double-Clicks
Emulating the Mouse with the Keyboard
Capturing the Mouse
The Mouse Wheel
The Timer Timer Basics
The System and the Timer
Timer Messages Are Not Asynchronous
Using the Timer for a Clock
Getting the Current Time
Going International
Child Window Controls
The Button Class
Creating the Child Windows
Check Boxes
Radio Buttons
Group Boxes
Buttons and Input Focus
Controls and Colors
System Colors
The Static Class
The Scroll Bar Class
Window Subclassing
The Edit Class
Messages to an Edit Control
The Listbox Class
Listing Files
Menus and Other Resources Icons, Cursors, Strings, and Custom Resources
Adding an Icon to a Program
Using Customized Cursors
Character String Resources
Menu Concepts
Menu Structure
Defining the Menu
Floating Popup Menus
Keyboard Accelerators
Translating the Keystrokes
Dialog Boxes
Modal Dialog Boxes
Creating an "About" Dialog Box
The Dialog Box and Its Template
The Dialog Box Procedure
Invoking the Dialog Box
Working with Dialog Box Controls
The OK and Cancel Buttons
Tab Stops and Groups
Defining Your Own Controls
Modeless Dialog Boxes
Differences Between Modal and Modeless Dialog Boxes
The Common Dialog Boxes
Unicode File I/O
The Clipboard
Simple Use of the Clipboard
The Standard Clipboard Data Formats
Memory Allocation
Private Data Formats
Becoming a Clipboard Viewer
More Graphics
Using the Printer
Printing Fundamentals
Printing and Spooling
The Printer Device Context
The PrinterProperties Call
Printing Graphics and Text
Implementing an Abort Procedure
Adding a Printing Dialog Box
Adding Printing to POPPAD
Bitmaps and Bitblts
Bitmap Basics
Bitmap Dimensions
Color and Bitmaps
Bitmap Support in GDI
Stretching the Bitmap
The Raster Operations
The GDI Bitmap Object
Creating a DDB
The Memory Device Context
Loading Bitmap Resources
Brushes from Bitmaps
Drawing on Bitmaps
Some Simple Animation
The Device-Independent Bitmap
The DIB File Format
The DIB Pixel Bits
The Expanded Windows DIB
DIB Compression
Displaying DIB Information
Displaying and Printing
Stretching to Fit
Color Conversion, Palettes, and Performance
The Union of DIBs and DDBs
The Palette Manager
Using Palettes
Video Hardware
The Palette Messages
The System Palette
Engineering Applications
The Halftone Palette
Indexing Palette Colors
The DIBHELP Header File and Macros
Text and Fonts
Simple Text Output
The Text Drawing Functions
Device Context Attributes for Text
Using Stock Fonts
Background on Fonts
The Types of Fonts
TrueType Fonts
Attributes or Styles?
The Point Size
Leading and Spacing
Character Sets and Unicode
The GDI Path
Metafiles
The Old Metafile Format
Simple Use of Memory Metafiles
Storing Metafiles on Disk
Enhanced Metafiles
Metafiles and GDI Objects
Metafiles and Bitmaps
Scaling and Aspect Ratios
Mapping Modes in Metafiles
Advanced Topics
The Multiple-Document Interface
MDI Concepts
The Elements of MDI
More Frame Window Message Processing
The Child Document Windows
Multitasking and Multithreading
Modes of Multitasking
Multitasking Under DOS?
Nonpreemptive Multitasking
PM and the Serialized Message Queue
Multithreaded Architecture
Windows Multithreading
Thread Synchronization
The Critical Section
Event Signaling
The Event Object
Thread Local Storage
Dynamic-Link Libraries
Library Basics
Shared Memory in DLLs
The Library Entry and Exit Point
Dynamic Linking Without Imports
Resource-Only Libraries
Sound and Music
Windows and Multimedia
Multimedia Hardware
An API Overview
Waveform Audio
Sound and Waveforms
Pulse Code Modulation
The Sampling Rate
MIDI and Music
The Multimedia time Functions
RIFF File I/O
Laboratory projects (specify number of weeks on each)
Students write 10 Windows programs that emphasis the concepts taught in the course.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Discussions in the class concentrate on copyright and personal property issues.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
- This course develops theory and concepts required for developing application software in a Microsoft Windows based environment.
- Theory and concepts includes:
- elements of Windows
- graphical user interface design
- application frameworks
- resource allocation
- Windows API and libraries
- threads
- event-driven model, etc.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 3370
Course Coordinator
Chuck Allison
Course Title
Advanced C++ Programming
Total Credits 3.0
Current Catalog Description
This course prepares students for C++ programming in a production environment. Covers the following topics in depth: const correctness, operator overloading, exception handling, exception-safe design, programming with assertions, automated unit testing of objects, multiple inheritance, advanced memory management, generic programming with templates, containers, iterators, algorithms, and function objects. Introduces library development, client-server concepts, common idioms and design patterns. Emphasizes accepted software engineering “best practices”.
Textbook
Thinking in C++, Second Edition, Volume2, Eckel & Allison, Prentice-Hall, 2002.
References
The C++ Programming Language, Third Edition, Stroustrup, Addison-Wesley, 2000.
Course Goals
Students will become familiar with standard C++ production programming techniques, and be able to create and use custom libraries.
Prerequisites by Topic
Object-oriented Programming in C++
Major Topics Covered in the Course
Managing dynamic memory, designing and implementing interfaces, designing for exceptions, implementing design patterns, container design, generic and template meta-programming, designing and implementing function objects, creating and deploying shared libraries, principles of client-server computing.
Laboratory projects (specify number of weeks on each)
All of the following projects are allowed two weeks each:
- “Indirect Files”. Using only basic language constructs (i.e., no use of STL), students expand command-line arguments representing files containing other arguments, recursively, collecting the aggregate result in a dynamic vector. Tests knowledge of pointers, references, and proper use of the new and delete operators.
- “Class-based Heaps”. Students create a class that acts as a pool of memory for homogeneous containers of any size. The target container class overloads operator new to call upon the pool class to dispense new objects, and the pool grows dynamically as needed. Illustrates the Factory Method design pattern and how to minimize heap overhead for large containers.
- “The Proxy Design Pattern”. Students implement a sequence interface with two different concrete containers. The interface uses exception specifications, and students must use derived exception classes consistent with the interface contract. Illustrates the Proxy design pattern, since the program swaps implementations of the interface dynamically. Also illustrates covariance of exception specifications.
- “The Iterator Design Pattern”. Students implement an iterator for a generic sequence container. Illustrates templates, generic programming, the Iterator design pattern, and implementing an interface using latent typing instead of inheritance.
- “Fun with STL”. Students implement a cross-reference generator that exploits the power of the C++ Standard Template Library. The typical solution uses a map that associates a string (representing a text token) with a set of line numbers. Illustrates associative containers, comparator objects, iterators, and function objects (a custom function object is required).
- “Computing with Remote Databases”. Students implement a dynamic library of database access classes based on low-level database routines. Illustrates client-server computing, object-oriented framework design, middleware development, and numerous design patterns.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Asymptotic complexity and big-Oh notation, search algorithms and their complexity, design patterns (.5 semester hours total).
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are given terse requirements and are expected to flesh-out those requirements into an informal specification, suitable to facilitate program design. No analysis documents are required, however.
Solution Design
Please describe the design experiences common to all course sections.
Most of the programming assignments require attention to detail of how multiple modules interact to meet requirements. The assignments are crafted to require students to show mastery of both conceptual and physical design, since they involve high-level abstractions (such as design patterns), and yet must be implemented in C++ code. No formal design documents are required, however.
COURSE DESCRIPTION
Department and Course Number
CNS 3400
Course Coordinator
Dr. Keith B. Olson
Course Title
Software Engineering
Total Credits 3
Current Catalog Description
Presents concepts, methodology and best-practices necessary to develop large scale software projects. Includes step-wise software requirements analysis, design, implementation, testing and release. Discusses software generation, reuse, scheduling, verification, and maintenance. Emphasizes current “real world” industry best-practices and tools.
Textbook
Object-Oriented Software Engineering, by Bernd Bruegge and Allen H. Dutoit, (Prentice Hall)
References
Software Engineering, 6th Edition, by Ian Sommerville (Addison-Wesley)
Software Engineering, A Practitioner’s Approach 5th Edition, by Roger Pressman (McGraw Hill)
Classical and Object-Oriented Software Engineering, 4th Edition, by Stephen R. Schach (McGraw Hill)
Course Goals
The successful student in this class will:
- understand the basic software life cycle.
- be able to work within at least two different development models.
- understand the dynamics of team interaction in software development.
- recognize the need for a disciplined approach to software development.
Prerequisites by Topic
- Competence in the use of a high-level programming language.
- A grasp of basic data structures, including, but not limited to:
- linked lists
- queues
- stacks
- trees
- A grasp of basic algorithms for the manipulation of these data structures
Major Topics Covered in the Course
- The nature of the software development process
- Software development models.
- Requirement gathering techniques.
- Basic design methods and tools, including UML.
- Testing strategies
- Defect reduction techniques
Laboratory projects (specify number of weeks on each)
The students will develop and write a major software project during the course of the semester. This is done in a team setting with team sizes of 3 to 5 persons. The projects generally run from about 6,000 lines of code up to as much as 25,000, depending on the language used and the nature of the project. The project generally occupies about 12 of the 15 weeks of the semester.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __3__ written reports (not including exams, tests, quizzes, or commented programs) of typically _3-5_ pages and to make __1__ oral presentations of typically __7__ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
About two weeks of the semester (six class hours) are spent on ethical considerations. In addition to discussions, the students are given a case study and are asked to submit a written response to the case study based on the Software Engineering Code of Ethics.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
There is some discussion of the concept of Cyclomatic Complexity and its application to test design. Only about two hours are spent on this topic.
Problem Analysis
Please describe the analysis experiences common to all course sections.
As the students begin their projects, they must do an analysis of the requirements of their projects. They must also analyze the design of their programs, and then use this analysis in the development of their test plans. There is also some analysis expected of them in the interpretation of their test results.
Solution Design
Please describe the design experiences common to all course sections.
Inasmuch as the different teams work on different projects, each team must do the design for the project that they have chosen. Although examples of designs are done in class, none of these are directly applicable to the projects; therefore, each team must do their own analysis and design.
COURSE DESCRIPTION
Department and Course Number
CNS 3510
Course Coordinator
S. Jeff Cold
Course Title
Unix System Administration
Total Credits 3
Current Catalog Description
*Note: This course was offered for the first time during the 2001-2002 school year. An Adjunct Professor was supposed to have developed this course, but then had to relocate. Mid-course, another Adjunct Professor took over and delivered the course. I am currently re-developing this course from scratch.
Introduces Unix System Administration concepts such as installation and configuration of Unix servers, user accounts, peripherals, X-windows, communications, daemons, and security.
Textbook
Petersen, Richard. (2001).
The Complete Reference: Linux. (4th Edition)
Berkeley, CA: Osborne/McGraw-Hill. (with CD) ISBN 0-07-212940-9.
Hatch, Brian; Lee, James and Kurtz, George. (2001). Hacking Linux Exposed. Berkeley, CA: Osborne/McGraw-Hill. ISBN 0-07-212773-2.
References
Course Goals
Students will be conversant with several advanced Unix/Linux topics such as Samba, firewalls and gateways, clustering, kernel re-compiling, CUPS, the Reiser file system.
Prerequisites by Topic
CNS 1510: Unix Operating System
ISYS 1420: Systems Architecture
Major Topics Covered in the Course
Linux Security
Unix and Windows Interoperability
Unix Advanced File Systems
Common Unix Printing System
Software Management
Kernel Configuration
Linux Clustering
Laboratory projects (specify number of weeks on each)
Students will be organized into three teams. One team will attempt to break the security of a class server. Another team will defend the security on the class server. The third team will document what the other two teams did. At the end of one week, each team will rotate positions and the documenting team will give a class report. As we progress through the Linux Security module, each team will become more proficient in their attempts. 3 weeks total.
There may be other lab projects such as clustering, but this course is in development.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Linux Security, three weeks.
Unix and Windows Interoperability, two weeks.
Unix Advanced File Systems, one week.
Common Unix Printing System, one week.
Software Management, one week.
Kernel Configuration, one week.
Linux Clustering, three weeks.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
There will be several solution designs that will evolve for Linux Security. There may be other solution designs for a class cluster. I would also like to do a class Service Learning Project that would implement an advanced Unix/Linux solution for a local business or organization. At this stage in the development of this course, it’s too early to tell what resources will be available.
NS 3520 Syllabus
INSTRUCTOR
Gordon Stokes
Office: CS 720A
Telephone: 863-8284
Email: stokesgo@uvsc.edu
TEXTBOOK
Fundamentals of Database Systems
Third Edition
Elmarsi/Navathe
COURSE OBJECTIVES
- To become familiar with Entity Relationship and Relational Database modeling and be able to use modeling to define a normalized database.
- To understand the techniques for data normalization and understand why we need to normalize data to facilitate data retrieval.
- To become familiar with and utilize the mathematics that are the foundation of the relational implementation of a database system.
- To be able to utilize an SQL approach to query a database system
- To become familiar with transaction processing and the approaches used in a distributed information system to enable database transaction processing.
GETTING A GOOD GRADE IN THE COURSE
Your grade will be determined by your performance on 3 exams, a course project, and the homework assigned in the course. Attendance at class is not required, but you will be held accountable for what we go over in class in addition to what the book covers. Do not expect special help to catch up on what you may have missed by not attending class.
Grades will be determined using the following weighting:
| Homework | 30% |
| Project | 15% |
| Exam 1 | 15% |
| Exam 2 | 15% |
| Final Exam | 25% |
| 95-100% | A |
| 90-94.9 | A- |
| 80s | B+. B, B- |
| 70s | C+, C, C- |
| 60s | D+, D, D- |
| Less than 60 | E |
CNS 352 Lecture and Exam schedule
| Week 1 | Introduction | Chap 1 & 2 |
| ER model | Chap 3 | |
| Week 2 | ER model | Chap 3 |
| Review of files | Chap 5 & 6 | |
| Week 3 | Relational model | Chap 7 |
| Relational algebra | Chap 7 | |
| Week 4 | Relational model | Chap 7 |
| SQL | Chap 8 | |
| Week 5 | Relations | Chap 9 |
| ER to Relations | Chap 9 EXAM 1 | |
| Week 6 | Relational Calculus | Chap 9 |
| Relational Calculus | Chap 9 | |
| Week 7 | Functional Dependencies | Chap 14 |
| Normal Forms | Chap 14 | |
| Week 8 | Normal Forms | Chap 14 |
| Dependencies Etc. | Chap 15 | |
| Week 9 | Database Tuning | Chap 16 |
| Database System Archg | Chap 17 | |
| Week 10 | Query Processing | Chap 18 EXAM 2 |
| Transaction Processing | Chap 19 | |
| Week 11 | Concurrency Control | Chap 20 |
| Database Recovery | Chap 21 | |
| Week 12 | Distributed Databases | Chap 24 |
| Distributed Databases | Chap 24 | |
| Week 13 | Object-Oriented Databases | Chap 11 |
| Object Model | Chap 12 | |
| Week 14 | Object Model | Chap 12 |
| Review |
COURSE DESCRIPTION
Department and Course Number
CNS 3610
Course Coordinator
George Hickman
Course Title
Advanced Network Administration
Total Credits 3
Current Catalog Description
Studies common Local Area Network (LAN) topologies and troubleshooting techniques used by network administrators to establish and manage computer networks. Includes advanced study of the NetWare network operating system. Requires a research paper based on an advanced data communications topic.
Textbook
NetWare 5.1 Advanced Administration, Novell Education
References
Course Goals
To gain an advanced understanding and ability to use and configure the NetWare Network Operating System.
Prerequisites by Topic
CNS 2610 Network Administration
Major Topics Covered in the Course
Installation of Server software
TCP/IP applications (FTP, etc.)
Public Key Cryptography / Certificates / Certificate Authorities
TCP vs IPX
IP vs SPX
Migration from IPX to IP, or running multiple protocols simultaneously
Web-based Applications and Security
Laboratory projects (specify number of weeks on each)
Laboratory assignments are given throughout the course on all major objectives.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Operating Systems 10 hours
Security 10 hours
Protocols / TCP/IP 10 hours
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 3630
Course Coordinator
S. Jeff Cold
Course Title
Advanced Network Management
Total Credits 3
Current Catalog Description
Studies advanced Local Area Network (LAN) technologies and troubleshooting techniques used by Network Administrators. Includes advanced study of Windows 2000 Server. Requires a project and presentation based on advanced network management skill.
Textbook
Microsoft Press, (2000). Microsoft Windows 2000 Server.
Academic Learning Series. Redmond, WA:
Microsoft Press. (with CD) ISBN 0-7356-0988-8.
Microsoft Press, 2000). Microsoft Windows 2000 Server Lab Manual.
Academic Learning Series. Redmond, WA:
Microsoft Press. ISBN 0-7356-0988-8.
References
Course Goals
This Microsoft courseware helps students build the knowledge and skills necessary to install, configure, and administer the Windows® 2000 Server operating system—as they prepare for core MCSE Exam 70-215.
Prerequisites by Topic
CNS 2630: Network Management
Major Topics Covered in the Course
- Prepare for the installation of Windows 2000 Server. Perform an attended installation and an unattended installation of Windows 2000 Server.
- Identify the various types of Windows 2000 file systems and their components, and perform common disk management tasks.
- Configure NTFS security and configure security for shared folders. Create Dfs roots and links.
- Configure a Windows 2000 Server computer as a domain controller. Install and configure Active Directory services, and administer Active Directory objects.
- Create and administer various types of user accounts and group accounts. Administer group policies, and manage group policy objects.
- Implement and administer network printing, manage documents, and administer printers from a Web browser.
- Identify network protocols and services supported by Windows 2000 Server. Configure TCP/IP, DHCP, WINS, and DNS.
- Enable and configure Routing and Remote Access Service, and configure a RAS connection.
- Identify the various components of Windows 2000 security, and analyze security on a computer running Windows 2000 Server. Configure Certificate Services and file encryption.
- Manage hardware devices and their drivers. Configure UPS. Back up and restore data, implement disk disaster protection, and recover from a disaster.
- Monitor and optimize the performance of your hard disk. Monitor system performance. Install the SNMP service.
- Administer Internet Information Services. Configure Telnet services. Install and configure Terminal Services and Terminal Services licensing.
Laboratory projects (specify number of weeks on each)
Each student is assigned a removeable hard disk drive imaged with a Windows 2000 stand-alone server in a NAT classroom network. Via the labs, each student eventually promotes their server to be a Domain Controller in a child domain inside the class Active Directory.
Lab 1: Exploring Microsoft Windows 2000 Server Features and Functions, one week.
Lab 2: Installing Microsoft Windows 2000 Server, one week.
Lab 3: Preparing an Automated Installation of Microsoft Windows 2000 Server, one week.
Lab 4: Installing FTP and Configuring the Hard Disk, one week.
Lab 5: Configuring Distributed File System (Dfs), one week.
Lab 6: Installing and Configuring Active Directory Services, Dfs and Admin. Tools Package, one week.
Lab 7: Administering Microsoft Windows 2000 Server, one week.
Lab 8: Installing and Configuring Print Sharing and Setting the Printer for Offline Operation, one week.
Lab 9: Configuring Network Protocols and Services, one week.
Lab 10: Configuring RRAS, one week.
Lab 11: Installing, Configuring, and Analyzing Security, one week.
Lab 12: Backing Up and Restoring Data, one week.
Lab 13: Implementing Disk Quotas and Monitoring Performance, one week.
Lab 14: Configuring Microsoft Windows 2000 Application Servers, one week.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically __8___ pages and to make __1___ oral presentations of typically _15__ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
| Class #1 | Course Intro, Syllabus, Removeable HDDs |
| Class #2 | Win2K MCSE/ MCSA Introduction to Microsoft Windows 2000 15 min Chap 1, Lesson 1 |
| Class #3 | OS Architecture, 45 min Win2K Directory Services 45 min Chapter 1, Lessons 2-3 |
| Class #4 | Installing & Configuring Windows 2000 Server 90 min Installing Windows 2000 Server 90 min Chap 2, Lessons 1-2; Lab 1 (on racks) |
| Class #5 | Upgrading to Windows 2000 Server, 30 min Troubleshooting a Windows 2000 Server Installation 15 min Chapter 2, Lessons 3-4; Lab 2 |
| Class #6 | Preparing for an Unattended Install 90 min Chapter 3, Lesson 1; HW #1 DUE |
| Class #7 | Automating the Installation of the Server 45 min Automating the Installation of Server Apps 35 min Chapter 3, Lessons 2-3; Lab 3 |
| Class #8 | Disk Management Basics 60 min FAT 25 min Chapter 4, Lessons 1–2; HW #2 DUE |
| Class #9 | NTFS 45 min File System Security 35 min Chapter 4, Lessons 3-4; Part of Lab 4 |
| Class #10 | Distributed File System 35 min File Replication Service 25 min Chapter 5, Lesson 1–2; Lab 5 |
| Class #11 | Overview of Active Directory 40 min Planning AD Implementation 75 min Chapter 6, Lesson 1-2; HW #3 DUE |
| Class #12 | Implementing AD 30 min Administering AD 50 min Chapter 6, Lessons 3–4; Lab 6 |
| Class #13 | Using MMC 45 min Administering User Accounts 60 min Administering Group Accounts 60 min Chapter 7, Lessons 1-3; HW #4 DUE |
| Class #14 | Administering Group Policies 90 min Chapter 7, Lesson 4; Lab 7; HW #5 DUE |
| Class #15 | Intro. to Windows 2000 Printing 35 min Setting Up Network Printers 35 min Administering Network Printers 90 min Chapter 8, Lessons 1-3 |
| Class #16 | Printing and Active Directory 20 min Connecting to Network Printers 15 min Network Protocols 15 min Chapter 8, Lessons 4–5 Chapter 9, Lesson 1; Lab 8; HW #6 DUE |
| Class #17 | TCP/IP 60 min DHCP Service 70 min Chapter 9, Lessons 2-3 |
| Class #18 | WINS 35 min DNS 90 min Chapter 9, Lessons 4–5; Lab 9; HW #7 DUE |
| Class #19 | Intro. to RRAS 30 min Features of RRAS 25 min Remote Access 35 min Chapter 10, Lessons 1-3 |
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students learn to troubleshoot Windows 2000 networks starting with the Windows 2000 Server itself.
Solution Design
Please describe the design experiences common to all course sections.
Students learn the proper design of a Windows 2000 Active Directory system by installing Active Directory and promoting their server to create a child domain inside the classroom Active Directory.
COURSE DESCRIPTION
Department and Course Number
CNS 3660
Course Coordinator
Brian Durney
Course Title
Web Server Administration and Programming
Total Credits 3.0
Current Catalog Description
Covers web programming techniques using tools like CGI, Perl, JavaScript, and basic Java; web server (HTTP, FTP, NNTP, Telnet, DNS). Includes installation and administration in multiple platforms; and server-side security concepts like firewalls, secure transactions, secure access/password protection, backup solutions, and network attacks.
Textbook
XML How to Program
by Deitel, Deitel,
Nieto, Lin & Sadhu
References
Programming Perl,
by Larry Wall,
Tom Christiansen, & Jon Orwant.
Course Goals
The overall goal is for students to be able to set up a web site with dynamic content, with particular goals including being able to:
- write CGI programs
- use XML in programs
- understand web server administration and security issues
Prerequisites by Topic
Basic programming in Java,
basic HTML and Internet concepts.
Major Topics Covered in the Course
Programming with XML, CGI., web servers
Laboratory projects (specify number of weeks on each)
Project proposal (2 weeks)
Part 1—using DOM with Java (3 weeks)
Part 2—standalone (non-CGI) Perl program (3 weeks)
Part 3—Perl CGI program (3 weeks)
Part 4—Perl CGI using XML (4 weeks)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
This course primarily addresses analysis and design and has no significant theoretical material.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are asked to analyze the requirements for a web site that uses dynamic content. The first written assignment is to describe the students’ proposed web site and the type of information that it can provide.
Solution Design
Please describe the design experiences common to all course sections.
The students design a web site in several phases. Each phase introduces a new topic, starting with basic XML and continuing with additional XML concepts and CGI.
COURSE DESCRIPTION
Department and Course Number
CNS 3670
Course Coordinator
Dennis A. Fairclough
Course Title
Network Programming
Total Credits 3
Current Catalog Description
Introduces the background information such as NetBIOS, NetBEUI, Mailslots, Named Pipes, and Redirector. Presents the theory of Berkeley Sockets and then introduces the details of Windows sockets. The theory and practical use of network protocols are introduced. Introduces CORBA and the various as concepts of ORB’s and the IIOP protocol. Introduces SOAP and XML used in network programming.
Textbook
Internetworking with TCP/IP Volume III
(Client-server programming with applications Windows Sockets Version)
Douglas E. Comer
David L. Stevens
Prentice-Hall, 1997
ISBN 0-13-848714-6
CORBA Instructor Notes
SOAP / XML Instructor Notes
References
Instructor Class Presentations (Slides)
Internet References
Course Handouts
Course Goals
- Teach via lecture and programming assignments in detail the concepts of network
- programming including:
- Sockets,
- CORBA, and
- SOAP/XML.
Prerequisites by Topic CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
CNS 1380 Assembly Language & Computer Architecture
CNS 1510 Unix Operating System
CNS 2600 Fundamentals of Data Communications
CNS 3690 Advanced Topics in Data Communications
Major Topics Covered in the Course
OSI Network Protocol
Client/Server Model
TCP/IP
Berkley Sockets API – Client/Server
Windows Sockets API – Client/Server
Algorithms in Client/Server Software Design
Connection / Connection-Less Servers
Concurrency in Clients/Servers
CORBA– Client/Server
Naming Services
Threads
SOAP - Client/Server
Laboratory projects (specify number of weeks on each)
1 Week OSI and TCP/IP
1 Week Threads
1 Week Client Socket
1 Week Server Socket
1 Week Client Socket (C++ / Java Wrappers)
1 Week Server Socket (C++ / Java Wrappers)
1 Week Advanced Client/Server Sockets Concepts
1 Week Basic CORBA Concepts
1 Week CORBA Client
1 Week CORBA Server
2 Week CORBA Naming Services
1 Week Basic SOAP/XML Concepts
1 Week SOAP/XML Client
1 Week SOAP/XML Server
Total 15 Weeks
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Networking
Theory
Protocols
Security
Sockets
Theory
Security
CORBA
Theory
Security
SOAP/XML
Theory
Security
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 3690
Course Coordinator
David Heldenbrand
Course Title
Advanced Topics in Data Communications
Total Credits 3
Current Catalog Description
A continuation of Fundamentals of Data Communications. Covers the theory of internetwork routing, transport protocols and network application issues, focusing on the Internet model and standards. Includes emerging networking technologies and applications.
Textbook
Computer Networks - A Systems Approach, 2nd edition,
L. Peterson and B. Davie, Morgan Kaufman
Publ., ISBN 1-55860-514-2
References
Students are provided with an instructor-created handout containing approximately 125 figures and tables not provided by the text, along with approximately 25 pages of additional readings.
Course Goals
These are the high-level course objectives. Students competing this course successfully will be able to…
- describe, in a moderate level of detail, fundamental internetworking concepts, and the specific functions of the IP protocol.
- explain the function of the TCP and UDP Transport layer protocols
- describe and utilize implement the Sockets API and remote procedure calls
- explain the function and operational details of Presentation layer protocols, including presentation formatting and compression technologies
- describe the rationale for network security, and explain at a detailed level the operation of secret key, public key and message digest encryption technologies and their applications
- describe, in detail, the operation of the HTTP and SNMP Application-layer protocols
Prerequisites by Topic
[Prerequisites are listed next to each topic in the following section. All topics require CNS 2600 Fundamentals of Data Communications as a prerequisite.]
Major Topics Covered in the Course
(All topics require CNS 2600 Fundamentals of Data Communications as a prerequisite.)
- Intro to Internetworking and the IP protocol (none)
- Basic IP Addressing (Discrete Math)
- Distance Vector Routing (Data Structures)
- Link State Routing (Data Structures)
- Basic Subnetting (Discrete Math)
- Intro to UDP (none)
- Intro to TCP (College Algebra, Data Structures)
- The Sockets API (Intro to Programming (C))
- Remote Procedure Calls (Intro to Programming (C))
- Network Performance Issues (College Algebra)
- External Data Representation (XDR and ASN.1) (Computer Architecture, Discrete Math, Data Structures)
- Data Compression Theory (Discrete Math, College Algebra)
- Lossless Compression Algorithms (Discrete Math)
- JPEG Compression (Discrete Math, College Algebra and Calculus I)
- MPEG Compression (Discrete Math, College Algebra and Calculus I)
- Network Security (none)
- DES Encryption (Discrete Math, Data Structures)
- RSA Encryption (College Algebra)
- Applications of Cryptographic Algorithms (none)
- Secure Socket Layer (Intro to Programming)
- HTTP and HTTPS (none)
- Network Management Concepts (none)
- SNMP (none)
- RMON (none)
Laboratory projects (specify number of weeks on each)
This course has no lab. Students are assigned homework exercises which expose various aspects of data communications technology. These problems may be done in the CNS labs, or on students' personal systems. (See Problem Analysis and Solution Design, below.)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
- Contributions of women to data communications technology (Radia Perlman, etc.) (.25 hrs.). No evaluation.
- Disadvantages in over-definition of standards (ASN.1). (.25 hrs.). No evaluation.
- Contributions of Claude Shannon to information technology. (.25 hours). Test and quiz questions.
- Effects of patent restrictions on evolution of compression technology. (.25 hrs.). No evaluation.
- Impact of human visual perception characteristics on the design of graphics compression software. (.25 hrs). Test and quiz question.
- Administrative and policy issues relating to network security, and "social engineering". (.75 hrs). Test and quiz questions.
- Business and military applications of cryptography. Justification for export restrictions. Role of NSA and NIST. (.25 hrs.). No evaluation.
- Social and business value of public key infrastructure. (.25 hrs.) No evaluation.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
(This is the theoretical portion of the content derived from the Steelman analysis, filename Steelman_Core_2600_3690.doc)
| Data Representation in memory (PF3) | 0.5 hours |
| Representation of graphs (AL3) | 0.5 |
| Shortest path algorithms (AL3) | 1 |
| Consensus and election (AL4) | 0.25 |
| Fault tolerance (AL4) | 0.5 |
| Finite state machines (Al5) | 0.25 |
| Bits, bytes and words (AR2) | 0.25 |
| Coding, compression and data integrity (AR4) | 7.5 |
| Concepts of application programming interfaces (OS2) | 0.25 |
| Structures (OS3) | 0.25 |
| Streams and datagrams (NC2) | 1.75 |
| Internetworking and routing (NC2) | 7.5 |
| Transport layer services (NC2) | 2.5 |
| Fundamentals of cryptography (NC3) | 1.25 |
| Secret key algorithms (NC3) | 1.25 |
| Public key algorithms (NC3) | 1 |
| Authentication protocols (NC3) | 0.75 |
| Digital signatures (NC3) | 0.5 |
| Examples (NC3) | 1.5 |
| Web protocols (NC4) | 1.25 |
| Information privacy, integrity, security etc. (IM1) | 0.25 |
| API programming (SE2) | 1.25 |
| TOTAL | 32 hours |
Problem Analysis
Please describe the analysis experiences common to all course sections.
Homework exercises are the primary problem solving activity in this course. Some of these exercises are derived from the text, others are instructor-developed. The exercises generally fall in to one of three categories.
- The first category of exercises involve calculation, for example, generating public and private keys and encrypting data using the RSA algorithm. These types of exercises simulate elements of design activities that might be done by a communications software engineer. They demonstrate and reinforce technical principles discussed in the lecture and reading.
- The second category involves research questions. In this case, a student may be required to locate Internet standards documents (RFCs), do some reading, and then answer questions based on that reading. This category is designed to simulate the research phase of a project, and to familiarize students with the extensive body of standards relevant to data communications.
- The third area involves speculative questions, where the student is presented with a problem related to material covered in class, and a set of constraints. The student is required to develop a solution which may involve additional research, synthesis of information, and creative problem solving.
Solution Design
Please describe the design experiences common to all course sections.
Solutions to exercises described in the Problem Analysis section vary in complexity and scope. Solutions to calculation exercises are explained as necessary, with detailed solutions and explanations provided on the instructor's website. Solutions to research questions are explained, along with background discussion and discussion of possible alternatives. The greatest amount of class discussion typically results from the speculative questions. Solutions developed by individual students are evaluated during class time, and critiqued by other students and the instructor. Students who develop particularly noteworthy or creative solutions are awarded extra credit. All exercises are discussed during class time.
COURSE DESCRIPTION
Department and Course Number
CNS 3730
Course Coordinator
Dr. Keith B. Olson
Course Title
Embedded Systems
Total Credits 3
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 4190
Course Coordinator
Dennis A. Fairclough
Course Title
Distributed Enterprise Software Architecture
Total Credits 3.0
Current Catalog Description
Examines enterprise development using distributed software architectures and frameworks. Explores leading distributed systems standards for platform, language, and data independence. Focuses on server-side development taking into consideration componentization, transaction management, persistence, and security. Uses Java enterprise servers, the EJEE architecture, server pages, the Common Object Request Broker Architecture (CORBA), and XML standards to develop enterprise-level distributed object system capable of secure Internet transaction processing.
Textbook
J2EE Unleashed
Allen & Bambara
SAMS, 2001
ISBN 0672321807
References
Instructor Class Presentations (Slides)
Internet References
Course Handouts
Course Goals
Develop the theory and concepts for the following:
- Distributed Computing, and J2EE.
Web Requirements, Web Architecture, and application life cycle, J2EE, and XML.
- The Design and Development of a J2EE Applications.
J2EE Layers, Application Components, J2EE Architecture, and Development Methodology and Process.
- Designing the J2EE Application.
Modeling, Designing Applications, Modeling Web Applications, System Modeling, Unified Modeling Language, and Modeling Web Pages.
- Task List for Building J2EE Applications.
Designing a Web Database, Tables, Back-End Interfaces, Interface. Pages, and Data Access Objects.
- Build Resource Access: JNDI and LDAP.
Naming and Directory Services, JNDI, JNDI Architecture, JNDI Operations, and Lightweight Directory Access Protocol.
- Build Data Access: JDBC.
JDBC Architecture, API and Drivers, JDBC API, SQL-to-Java Data Types, JDBC Exception Types, Metadata, Scrollable Resultsets, Transaction Support, Batch Operations, Data Types.
- Build Control Flow: Servlets.
Servlets, HTTP, Servlet Container, Servlet API and Methods, HTML Clients, Servlet Life Cycle, ServletContext, HTTP Request Header and Response Header Session Management, Servlets with JDBC, Web Applications.
- JavaServer Pages and 9. JavaServer Pages: Tag Libraries.
JSP Pages, Components of a JSP Page, Developing and Deploying JSP Pages, JSP Architectures, Syntax and Tag Libraries.
- Building the User Interface to the Application.
Model-View-Controller Paradigm and the Struts Framework.
- Enterprise JavaBeans
Enterprise JavaBeans, Distributed Programming, EJB Framework, Session and Entity Beans, Attributes of a Bean, Parts of a Bean, Container-Managed Persistence (CMP) and Bean-Managed _Persistence (BMP), Life Cycle of Enterprise JavaBeans, Java Message Service (JMS) and Message-Driven Beans (MDB), Distributed Programming Services, Common Object Request Broker Architecture (CORBA), Remote Method. Invocation (RMI), Transactions and Transaction Management, Security, Deployment, Roles for EJB Development, and Corporate Roles.
- Enterprise JavaBeans: Building Session Beans.
Creating Session Beans, Packaging and Deploying a Session Bean, Changes to Bean Code, Finding Session Beans from a Client, andCalling Session Beans from a Client.
- Enterprise JavaBeans: Building Entity Beans.
Defining Entity Beans, Container- and Bean-Managed Persistence, Anatomy of a CMP Entity Bean, Developing Entity Beans, EJB Clients, and Configuring, Packaging, and Deploying Entity Beans.
- Messaging with E-mail: JavaMail.
E-mail Messaging, JavaMail Functionality, Provider Registry. JavaMail Architecture and Primary Classes, Sending and Receiving Messages, and Using JavaMail in JavaServer Pages.
- Messaging with Applications: Java Message Service (JMS).
Messaging Basics, JMS Positioning, JMS Components, Producing and Consuming Messages, and JMS Implementation and Deployment Issues.
- Data Exchange with XML.
XML Basics, Structure of an XML Document, Unparsed Data, Processing Instructions, Document Type Definitions (DTDs), XML Schema. XML Parsers, Document Object Model (DOM), Simple API for XML (SAX), XML Output, XSL, Style Sheet Structure, Style Sheets, XML Linking Language (XLink), XML Security.
- Validating the Application.
Testing, Quality Control, Debugging and Verification, Debugging Techniques, Testing and Development Phases, and ing Methods and Techniques,
- Making the Application Perform.
High-Performance Applications Methodology, Performance Tuning, Diagnostics, Server Performance, Database Monitoring and Tuning Tools.
- Deploying the Application.
The Assembly Process.
The Deployment Process.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
CNS 1510 Unix Operating System
CNS 2600 Fundamentals of Data Communication
CNS 3060 Operating Systems Theory
Major Topics Covered in the Course
- Distributed Computing, and J2EE.
Web. Requirements of Web Architecture.
Web Application Life Cycle.
J2EE APIs and Certification.
XML and J2EE. - The Design and Development of a J2EE Applications.
J2EE Layers.
J2EE Application Components.
J2EE Architecture.
Development Methodology and Process. - Designing the J2EE Application.
Modeling Tools.
Designing an Application.
Modeling a Web Application.
System Modeling.
The Unified Modeling Language.
Modeling Web Pages.
EJB UML Mapping. - Task List for Building J2EE Applications.
Designing the Database.
Creating Tables and Columns.
Creating a Back-End Interface.
Creating the Interface.
Building Pages.
Creating Data Access Objects. - Build Resource Access: JNDI and LDAP.
Naming and Directory Services.
JNDI.
JNDI Architecture.
JNDI Operations.
Lightweight Directory Access Protocol.
JNDI/LDAP Practical Examples. - Build Data Access: JDBC.
JDBC Architecture: API and Drivers.
JDBC API. Retrieving and Updating Data.
SQL-to-Java Data Types.
JDBC Exception Types.
Metadata.
Scrollable Resultsets.
Transaction Support.
Batch Statements.
JDBC 2.1
New Data Types. JDBC
API: javax.sql. - Build Control Flow: Servlets.
Servlets.
Controller in MVC and the Sample Application.
Basic HTTP.
Servlet Container.
Servlet API.
Service Method Detail.
HTML Clients.
Servlet Life Cycle.
ServletContext.
HTTP Request Header.
HTTP Response Header Session Management.
Dispatching Requests.
Servlets with JDBC.
Web Applications. - JavaServer Pages: Introduction .
Features of JSP Pages.
The Components of a JSP Page.
Developing and Deploying JSP Pages.
JSP Architectures. - JavaServer Pages: Practical Development with Tag Libraries.
JSP Syntax.
Tag Libraries. - Building the User Interface to the Application.
Model-View-Controller Paradigm.
The Struts Framework. - Enterprise JavaBeans: Introduction.
Enterprise JavaBeans Overview.
Distributed Programming Overview.
EJB Framework.
Session and Entity Beans.
Attributes of a Bean. Parts of a Bean.
Container-Managed Persistence (CMP) and Bean-Managed _Persistence(BMP).
The Life Cycle of Enterprise JavaBeans.
Java Message Service (JMS) and Message-Driven Beans (MDB). Distributed Programming Services.
Common Object Request Broker Architecture (CORBA)
Remote Method. Invocation (RMI).
Transactions and Transaction Management.
Security.
Deployment.
Personal Roles for EJB Development.
Corporate Roles. - Enterprise JavaBeans: Building Session Beans.
Creating Session Beans.
Packaging and Deploying a Session Bean.
Changes to Bean Code.
Finding Session Beans from a Client.
Calling Session Beans from a Client. - Enterprise JavaBeans: Building Entity Beans.
Defining Entity Beans.
Container- and Bean-Managed Persistence.
The Anatomy of a CMP Entity Bean.
Developing Entity Beans.
A Closer Look at Developing Entity Beans.
EJB Clients.
Using a GUI Tool to Configure, Package, and Deploy _Entity Beans. - Messaging with E-mail: JavaMail.
E-mail Messaging in General.
JavaMail Functionality.
Provider Registry.
JavaMail Architecture and Primary Classes.
Sending and Receiving Messages.
Using JavaMail in JavaServer Pages. - Messaging with Applications: Java Message Service (JMS).
Messaging Basics.
Where Does JMS Positioning.
JMS Components.
Producing and Consuming Messages.
JMS Examples.
JMS Implementation and Deployment Issues. - Data Exchange with XML.
Overview of XML.
Structure of an XML Document.
Unparsed Data.
Processing Instructions.
Document Type Definitions (DTDs).
XML Schema. XML Parsers. Document Object Model (DOM).
Simple API for XML (SAX).
XML Output. XSL.
Style Sheet Structure.
Applying Style Sheets.
XML Linking Language (XLink).
XML Security. - Validating the Application.
Java and Testing.
Quality Control Through Debugging.
Debugging Techniques.
Correcting an Error.
Testing and Development Phases.
Testing Methods and Techniques.
Web Site Test Tools and
Site Management Tools. - Making the Application Perform.
Writing High-Performance Applications.
Preparing for Performance Tuning.
Guide to Diagnosis and Cure.
What Affects Server Performance?
Database Monitoring and Tuning Tools. - Deploying the Application.
Java's Write Once, Run Anywhere Promise.
The Assembly Process.
The Deployment Process.
Laboratory projects (specify number of weeks on each)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
- Distributed Computing.
- Design, Development, and Deployment of Enterprise Applications.
- Designing J2EE Applications.
- Building J2EE Applications.
- Build Resource Access with JNDI and LDAP.
- Build Data Access: JDBC.
- Build Control Flow: Servlets.
- JavaServer Pages.
- Building the User Interfaces.
- Enterprise JavaBeans
- Enterprise JavaBeans: Session Beans.
- Enterprise JavaBeans: Entity Beans.
- Messaging with E-mail.
- Messaging with Applications: Java Message Service (JMS).
- Data Exchange with XML.
- Validating Applications.
- Improving Application Perform.
- Deploying the Application.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design
COURSE DESCRIPTION
Department and Course Number
CNS 4230
Course Coordinator
Kussee
Course Title
Software Testing and Quality Assurance
Total Credits 3
Current Catalog Description: Provides a comprehensive exploration of strategies for testing computer systems. Includes unit testing, system testing, developing software testing organization, and establishing software Total Quality Management (TQM) programs.
Textbook:
Handbook of Software Quality Assurance
by C. Gordon Schulmeyer and James I. McManus
References:
The following articles:
- Introduction to Special Section on Software Testing By Richard Hamlet Comm. Of ACM June 1988.
- The Growth of Software Testing By David Gelperin and Bill Hetzel Comm. Of ACM June 1988
- No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks, Jr. Computer April 1987.
- Certifying the Reliability of Software By P. Allen Currit, Michael Dyer, and Harlan D. Mills. IEEE Transactions Jan. 1986.
- Software Verification and Validation: An Overview By Dolores R. Wallace and Roger U. Fujii. IEEE Transactions May 1989
- Validation, Verification, and Testing of Computer Software By W. Richards Adrion, Martha A. Brandstad, and John C. Cherniavsky. Computing Surveys June 1982.
- V & V in the Next Decade By Janet R. Dunham. IEEE Transactions May 1989.
- The Case of the Killer Robot By Richard G. Epstein John Wiley & Sons, Inc.
- Software Quality Sucks By Rochelle Garner Open Computing Oct 1995.
- High Pressure Steam Engines and Computer Software By Nancy G. Leveson Computer Oct. 1994.
- Characterizing the Software Process: A Maturity Framework By Watt S. Humphrey IEEE Transactions March 1988.
- A Critical Look at Software Capability Evaluations By Terry B. Bollinger and Clement McGowan. IEEE Transactions July 1991.
- Comments on ‘A Critical Look’ By Watts S. Humphrey and Bill Curtis. IEEE Transactions July 1991.
- The Immaturity of the CMM By James Bach, American Programmer, Sept. 1994.
- Successfully Applying Software Metrics By Robert B. Grady. Sept. Computer 1994.
- Using Metrics in Management Decision Making By George Stark, Robert C. Durst, C. W. Vowell. Computer Sept. 1994.
- The Evaluation of Program-Based Software Test Data Adequacy Criteria By Elaine J. Weyuker. Comm. Of ACM June 1988.
- The Category-Partition Method of Specifying and Generating Functional Tests By Thomas J. Ostrand Marc J. Balcer Comm. Of ACM June 1988.
Course Goals:
Define the current state of Software Testing and Software Quality Assurance. Research new concepts and new papers on the subjects. Provide experience in estimating, testing and reporting on a test project.
Prerequisites by Topic:
Programming, software engineering, and software design.
Major Topics Covered in the Course Validation and Verification
Testing methods (Black box, White box, module, unit, system, and acceptance – inspections and code walk-through)
Reliability Growth, Mission Critical and clean-room testing
OOP testing
Software Quality Assurance concepts and organization
Metrics
Costs & budgeting
Reporting & Pareto principle
Personnel requirements and skill sets
CMM
Laboratory projects (specify number of weeks on each):
1 testing project over 4 weeks
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.| Hours | Material |
| 8 | Test design – approaches, methods and timing |
| 5 | Testing costs and benefits per type of testing |
| 7 | Test documentation, metrics and reporting |
| 3 | Costs and budgeting for test, retest, customer complaints, recalls, |
| 2 | Personal and corporate responsibility and ethics and litigation |
| 3 | Reporting, tracking, feedback and rework follow-up. |
| 3 | Reliability testing and reliability growth model |
| 9 | Current research in testing methods, “good enough” measures. |
| 2 | OOP and other special case testing |
| 3 | A organization, personnel, skill set, training |
Problem Analysis
Please describe the analysis experiences common to all course sections.
Discussions of past SW failures and results often lead the discussion. Testing models and failure reporting include much analysis discussion.
Solution Design
Please describe the design experiences common to all course sections.
How to test, what to test, how much time to spend, how much retest is required, cost/benefit analysis lead to discussion of design solutions.
COURSE DESCRIPTION
Department and Course Number
CNS 4260
Course Coordinator
Dennis A. Fairclough
Course Title
Digital System Simulation
Total Credits 3.0
Current Catalog Description
Introduces simulation of the methods used to study the behavior of digital systems. Includes the study of discrete simulation models, queuing theory, the generation of random numbers and variates, and stochastic processes. Compares popular simulation languages and commercially available simulation tools. Describes approaches to design of simulation experiments and the analysis of experimental data.
Textbook
Discrete-Event System Simulation, 3rd Edition
Jerry Banks, John S. Carson, Barry L. Nelson, and David M. Nicol
Prentice-Hall, 2001
ISBN 0-13-088702-1
References
Lecture Notes (Slides)
Example Programs
Class Reference Notes
Internet References
Course Goals
- Develop the mathematical concepts necessary to develop discrete simulations.
- Develop the programming concepts necessary to develop discrete simulations.
- Develop the models and concepts necessary to analyze, design, implement, and validate discrete system simulations.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
Major Topics Covered in the Course
- Introduction to Simulation.
-
When to use Simulation.
When not to use Simulation.
Advantages and Disadvantages of Simulation.
Systems and System Environment.
Components of a System.
Discrete and Continuous Systems.
Model of a System.
Types of Models.
Discrete-Event System Simulation.
Steps in a Simulation Study. - Simulation Examples.
Simulation of Queueing Systems.
Simulation of Inventory Systems.
Examples of Simulation. - General Principles.
Concepts in Discrete-Event Simulation.
List Processing. - Simulation Software.
History of Simulation Software.
Selection of Simulation Software.
An Example Simulation.
Simulation in C++.
Simulation in GPSS.
Simulation in CSIM.
Simulation Packages.
Experimentation and Statistical Analysis Tools.
Trends in Simulation Software.II. MATHEMATICAL AND STATISTICAL MODELS.
- Statistical Models in Simulation.
Review of Terminology and Concepts.
Useful Statistical Models.
Discrete Distributions.
Continuous Distributions.
Poisson Process.
Empirical Distributions. - Queueing Models.
Characteristics of Queueing Systems.
Queueing Notation.
Long-Run Measures of Performance of Queueing Systems.
Steady-State Behavior of Infinite-Population Markovian Models.
Steady-State Behavior of Finite-Population Models.
Networks of Queues. - Random-Number Generation.
Properties of Random Numbers.
Generation of Pseudo-Random Numbers.
Techniques for Generating Random Numbers.
Tests for Random Numbers. - Random-Variate Generation.
Inverse Transform Technique.
Direct Transformation for the Normal and Lognormal Distributions.
Convolution Method.
Acceptance-Rejection Technique.IV. ANALYSIS OF SIMULATION DATA.
- Input Modeling.
Data Collection.
Identifying the Distribution with Data.
Parameter Estimation.
Goodness-of-Fit Tests.
Selecting Input Models without Data.
Multivariate and Time-Series Input Models. - Verification and Validation of Simulation Models.
Model Building, Verification, and Validation.
Verification of Simulation Models.
Calibration and Validation of Models. - Output Analysis for a Single Model.
Types of Simulations with Respect to Output Analysis.
Stochastic Nature of Output Data.
Measures of Performance and Their Estimation.
Output Analysis for Terminating Simulations.
Output Analysis for Steady-State Simulations. - Comparison and Evaluation of Alternative System Designs.
Comparison of Two System Designs.
Comparison of Several System Designs.
Metamodeling.
Optimization via Simulation. - Simulation of Manufacturing and Material Handling Systems.
Manufacturing and Material Handling Simulations.
Goals and Performance Measures.
Issues in Manufacturing and Material Handling Simulations.
Case Studies of the Simulation of Manufacturing and Material Handling Systems. - Simulation of Computer Systems.
Introduction. Simulation Tools. Model Input.
High-Level Computer-System Simulation.
CPU Simulation.
Memory Simulation.
Laboratory projects (specify number of weeks on each)
Students will write a 10 simulation programs and a final project that incorporates as modules the 10 simulation programs written during the semester.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
- Theory of Digital Simulation
- Simulation Areas
- Discrete Event Simulation & Queuing Theory
- Simulation Software Concepts
- Statistical Models and Distributions in Simulation
- Theory of Queueing Models
- Theory and Validation Random-Number Generators
- Random-Variate Generation
- Input Modeling
- Verification and Validation of Simulation Models
- Output Analysis for a Simulation Models
- Comparison and Evaluation of Discrete Simulation Models
- Simulation of Manufacturing and Material Handling Systems
- Simulation of Computer Systems
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 4370
Course Coordinator
Dennis A. Fairclough
Course Title
Advanced Component RAD Programming – C++
Total Credits 3.0
Current Catalog Description
Covers advanced rapid application and client/server Windows rapid application development (RAD) programming concepts utilizing object-oriented and component programming paradigms. Includes properties, methods, event-driven model of constructing Windows based programs. Covers Visual Component Libraries, DLL's, ActiveX, visual and non-visual components, and Windows controls. Presents data-driven object-oriented design methodologies.
Textbook C++ Builders Developer’s Guide
Jarrod Hollingworth & Dan Butterfield
SAMS
ISBN: 0672319721
References
Instructor Class Presentations (Slides)
Internet References
Course Handouts
Course Goals
- Develop the theory and concepts of graphical user interface analysis, design, implementation, testing, and deployment.
- Develop the theory, architecture, and concepts of Microsoft Windows and how to program and deploy GUI applications.
- Provide an instructional environment to allow the students to explore various RAD GUI interface design alternatives.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
CNS 3370 Advanced C++ Programming
Major Topics Covered in the Course
I. C++BUILDER 5 ESSENTIALS.
- Introduction to C++Builder.
- C++Builder Basics.
- VCL, Forms, and Components.
- The Component Palette.
- Web Programming.
- Distributed Applications.
- Application Localization.
- Debugging Database Application Development.
- Creating Projects.
- Types of Files.
- Visual Reality:
- True Rapid Application Development.
- Preparation for Kylix.
- Similarities Between Kylix and C++Builder.
- Differences Between Kylix and C++Builder.
- Porting C++Builder Projects to Kylix.
- C++Builder Projects and More on the IDE.
- Understanding C++Builder Projects.
- Files Used in C++Builder Projects.
- Project Manager.
- Using the Object Repository.
- Understanding and Using Packages.
- Considerations when Using Packages.
- The C++Builder Runtime Packages.
- Introducing New IDE Features in C++Builder 5.
- Property Categories in the Object Inspector.
- Images in Drop-Down Lists in the Object Inspector.
- The XML Project File Format. Forms-Save as Text.
- The Node-Level Options.
- The New To-Do List.
- The Console Wizard.
- Programming in C++Builder.
- Coding Style to Improve Readability.
- The Use of Short and Simple Code.
- The Use of Code Layout.
- The Use of Sensible Naming.
- The Use of Code Constructs.
- Use a String Class Instead of char*.
- Avoid Using Global Variables
- Advanced Programming with C++Builder.
- Using Smart Pointers and Strong Containers.
- The Heap Versus the Stack.
- Implementing an Advanced Exception Handler.
- Creating Multithreaded Applications.
- Understanding Multitasking.
- Understanding Multithreading.
- Creating a Thread Using API Calls.
- Understanding the TThread Object.
- Understanding the Main VCL Thread. Establishing Priorities.
- Timing Threads. Synchronizing Threads.
- Introducing Design Patterns.
- Understanding the Recurring Nature of Patterns.
- Recurring Patterns in Software Design.
- Design Patterns as a Vocabulary.
- Design Pattern Format.
- Design Pattern Classification.
- Parting Thoughts About Design Patterns.
- User Interface Principles and Techniques.
- User Interface Guidelines.
- Enhancing Usability by Providing Feedback to the User.
- Using TProgressBar and TCGauge.
- Using the Cursor.
- Using TStatusBar.
- Using Hints.
- Enhancing Usability Through Input Focus Control.
- Moving Input Focus.
- Enhancing Usability Through Appearance.
- Using Symbols on Their Own with Buttons.
- Using Symbols in Addition to Text.
- Using Color to Provide Visual Clues.
- Using Shaped Controls.
- Enhancing Usability by Allowing Customization of the User Interface.
- Docking. Resizing.
- Using TControlBar.
- Controlling Visibility.
- Customizing the Client Area of an MDI Parent Form.
- Enhancing Usability by Remembering the User's Preferences.
- Coping with Differing Screen Conditions.
- Coping with Different Screen Resolutions.
- Coping with Different Font Sizes.
- Coping with Different Color Depths.
- Using Action Lists.
- Sharing Event Handlers.
- Compiling and Optimizing Your Application.
- Understanding How the Compiler Works.
- Speeding Up Compile Times.
- Precompiled Headers.
- Other Techniques for Speeding Up Compile Times.
- Optimizing: An Introduction.
- Optimizing for Execution Speed.
- Project Options for Execution Speed.
- Detecting Bottlenecks.
- Optimizing the Design and Algorithms.
- Exploring Techniques for Streamlining Code.
- Techniques for Streamlining Data.
- Hand-Tuning Assembly Code.
- Using External Optimization.
- Execution Speed Optimization Summary.
- Optimizing Program Size.
- Debugging Your Application.
- Debugging Overview.
- Project Guidelines.
- Programming Guidelines.
- Basic Debugging Techniques.
- Outputting Debug Information.
- Using Assertions.
- Implementing a Global Exception Handler
- Using the C++Builder Interactive Debugger.
- Advanced Breakpoints
- C++Builder Debugging Views.
- Watches, Evaluating, and Modifying.
- The Debug Inspector.
- Enabling and Configuring CodeGuard
- Advanced Debugging.
- Locating the Source of Access Violations.
- Attaching to a Running Process.
- Using Just-In-Time Debugging.
- Remote Debugging.
- Debugging DLLs
- Testing.
- Testing Stages and Techniques.
- Testing Tips.
- Using VCL Components.
- VCL Overview.
- Building on Existing Objects.
- Using the VCL.
- The C++ Extensions.
- The Streaming Mechanism.
- Advanced Streaming Requirements.
- Streaming Unpublished Properties.
- Common Control Updates.
- Common Control Dynamic Link Library.
- C++Builder Common Control Updates.
- Miscellaneous VCL Enhancements.
- Extending the VCL.
- Using TStringList as a Container.
- The TTreeView Component.
- The TListView Component.
- The TToolBar Component.
- Control Panel Applet Wizard Components.
- Creating Custom Components.
- Understanding Component Writing.
- Designing Custom Components.
- Writing Non-Visual Components.
- Properties.
- Events. Methods.
- Creating Component Exceptions.
- The namespace.
- Responding to Messages.
- Designtime Versus Runtime.
- Linking Components.
- Linking Events Between Components.
- Writing Visual Components.
- TCanvas.
- Using Graphics in Components.
- Responding to Mouse Messages.
- Modifying Windowed Components.
- Creating Custom Data-Aware Components.
- Establishing the Link.
- Using the OnDataChange Event.
- Changing to a Data-Editing Control.
- Working Toward a Dataset Update. Registering Components.
- Creating Property and Component Editors.
- Creating Custom Property Editors.
- The GetAttributes() Method.
- The GetValue() Method.
- The SetValue() Method.
- The Edit() Method.
- The GetValues() Method.
- Using the TPropertyEditor.
- Properties.
- Properties and Exceptions.
- Registering Custom Property Editors.
- Obtaining a TTypeInfo* (PTypeInfo) from an Existing Property and Class for a Non-VCL Type.
- Using Images in Property Editors.
- The ListMeasureWidth() Method.
- The ListMeasureHeight() Method.
- The ListDrawValue() Method.
- The PropDrawValue() Method.
- The PropDrawName() Method.
- Installing Editor-Only Packages.
- Using Linked Image Lists in Property Editors.
- The GetAttributes() Method.
- The GetComponentImageList() Method.
- The GetValues() Method.
- The ListMeasureWidth() and ListMeasureHeight() Methods.
- The ListDrawValue() Method.
- The PropDrawValue() Method.
- Creating Custom Component Editors.
- Registering Component Editors.
- Adding Resource Files to Packages.
- Using Resources in Property and Component Editors.
- Registering Property Categories in Custom Components.
- More Custom Component Techniques.
- Considerations for Custom Components.
- Displaying a Class Property's Published Properties in the Object.
- Inspector.
- Using Namespaces in Event Parameter Lists.
- Considerations when Determining an Event's Parameter List.
- Overriding DYNAMIC Functions.
- Handling Messages in Custom Components.
- Using Windows Callback Functions in Components.
- Considerations when Choosing Fundamental Property Types.
- Allowing for Designtime and Runtime Component Use.
- Frames.
- What Exactly Is a Frame?
- The TCustomFrame Class.
- Working with Frames at Designtime.
- Working with Frames at Runtime.
- Creating a TFrame Descendant Class.
- Inheriting from a TFrame Descendant Class.
- Reusing Frames.
- Component Distribution and Related Issues.
- Packaging Components.
- Naming Packages and Package Units.
- Naming Components.
- Distributing only a Designtime-Only Package.
- Creating Component Palette Bitmaps.
- Using Guidelines in the Design of Components for Distribution.
II. COMMUNICATIONS, DATABASE, AND WEB PROGRAMMING.
- Communications Programming.
- Serial Communication.
- Protocol.
- State Machines.
- Architecture.
- Thread Synchronization Techniques.
- Buffering.
- Internet Protocols-SMTP, FTP, HTTP, POP3.
- Web Server Programming.
- Web Modules.
- Web Server Application Wizard.
- CGI. WinCGI. ISAPI/NSAPI. CGI or ISAPI?
- WebBroker Support Components.
- TWebDispatcher, TWebModule, TWebResponse, TWebRequest.
- Web Servers.
- WebBroker Producing Components.
- TPageProducer, TDataSetPageProducer, TDataSetTableProducer, TQueryTableProducer.
- Web Application Wizards.
- Maintaining State.
- Fat URLs, Cookies, Hidden Fields.
- Web Security.
- Secure Sockets Layer.
- Authorization.
- Securing a Web Application.
- m. HTML.
- XML.
- InternetExpress.
- TMidasPageProducer.
- Deployment.
- Web Page Design Issues.
- Database Programming.
- Architecture Models for Database Applications.
- The Borland Database Engine.
- BDE Native (Single-Tier).
- BDE/SQL Links (Client/Server).
- Distributed (Multitier).
- Data Access Methods.
- Native Components.
- ODBC Using the BDE.
- ODBC Using Native Components.
- ADO (ActiveX).
- Embedded SQL.
- Native API.
- Database Architectures-Conclusion.
- Structured Query Language (SQL).
- Tables and Indices, Parameters, insert, update, delete, and select.
- Aggregate Functions.
- ADO Express Components for C++Builder.
- Component Overview.
- Database Connections.
- Accessing Datasets.
- Accessing a Dataset with TADOTable.
- Using TADOCommand for Dataset Access.
- Managing Transactions.
- Using Component Events.
- Creating Generic Database Applications.
- Performance Optimizations.
- Error Handling Issues.
- Multitier Applications and ADO.
- ADO Express Components-Conclusion.
- Data Acquisition Architectures.
- The Basic Choices.
- Fetching Data from Many Sources.
- Data Module Designer.
- What Are Data Modules?
- Why Use a Data Module?
- How Do I Use a Data Module in My Applications, DLLs, and Distributed Objects?
- What Goes in a Data Module?
- How Can I Add Properties to My Data Module?
- How to Use the Data Module Designer. Advanced Concepts.
- Form Inheritance with Data Modules. Handling Uneven Form Inheritance with Data Modules. How to Avoid Dependence on Specific User Interfaces. How to Work with Application-Specific and Framework Components in Data Modules.
- Data Modules in Packages. Data Module Designer-Conclusions.
- InterBase Express.
- Bug Tracker Database Schema.
- Database Rules.
- Generators, Triggers, and Stored Procedures.
- Bug Tracker Implementation.
III. INTERFACES AND DISTRIBUTED COMPUTING.
- DLLs and Plug-Ins.
- Using the DLL Wizard.
- Writing and Using DLLs.
- Linking DLLs Statically.
- Importing Functions from a Dynamically Linked.
- Exporting Classes.
- Using Packages Versus DLLs.
- Using SDI Forms in.
- Using MDI Child Forms in DLLs and Packages.
- Using MDI Child Forms in DLLs.
- Using MDI Child Forms in Packages.
- Using Microsoft Visual C++ DLLs with C++Builder.
- Using C++Builder DLLs with Microsoft Visual.
- Writing Plug-Ins.
- Anatomy of a Plug-In.
- TIBCB5PlugInBase Class.
- TBCB5PluginManager.
- COM Programming.
- Understanding COM Servers and Clients.
- Outgoing Interfaces and Event Sinks Revisited.
- Writing the COM Server.
- Choosing the Server Type.
- Choosing a Threading Model.
- Creating the Server.
- Adding a COM Object.
- Dissecting the Generated Code.
- Writing Method Bodies.
- Adding Better Error Support.
- Implementing a Method That Fires an Event.
- Implementing a Custom Interface. Firing Custom Events.
- Writing the Proxy/Stub.
- Writing the COM Client.
- Importing the Type Library.
- Looking at the Generated C++ Constructions.
- Creating and Using the COM Server Object.
- Catching Dispinterface-Based Events.
- Querying for the Custom Interface.
- Writing the Custom Interface-Based Event Sink.
- Going Distributed: DCOM.
- What Is DCOM?
- Windows OS Family and DCOM.
- The DCOMCnfg Utility Tool.
- Global Security Settings.
- Per-Server Security Settings.
- Field Testing DCOM.
- Creating the Server Application.
- Creating the Client Application.
- Configuring Launch and Access Permissions.
- Configuring Identity.
- Programming Security.
- CoInitializeSecurity Function Parameters.
- Using CoInitializeSecurity.
- Understanding DLL Clients and Security.
- Implementing Programmatic Access Control.
- Implementing Interface-Wide Security.
- One Step Ahead: COM+.
- Introducing COM+.
- COM+ Applications.
- The COM+ Catalog.
- Using COM+ Services.
- Loosely Coupled Events.
- Transactions.
- Synchronization.
- Security.
- Queued Components.
- Load Balancing.
- Developing and Using COM+ Events.
- Creating the COM+ Event Object.
- Installing the Event in a COM+ Application.
- Creating the Publisher.
- Creating Subscribers.
- Configuring Subscribers.
- Creating a Persistent Subscription.
- Creating a Transient Subscription.
- Developing and Using COM+ Transactional Objects.
- Creating the Transactional Objects for the Business Layer.
- Developing Compensated Resource Managers. Creating the Client.
IV. ADVANCED TOPICS.
24. Using the Win32 API.
- Win32 API Versus Win32 Middleware.
- Brief History of Windows and the.
- Win32 API Functional Areas.
- Windows Management. System Services.
- Graphical Device Interface. Multimedia Services.
- Common Controls and Dialogs. Shell Features.
- International Features. Network Services.
- Anatomy and Operation of a Windows Program.
- WinMain().
- Window Handles.
- Windows Messages.
- Launching an Application Within a Program.
- Fundamental File.
- Using the Magic of Shell.
- Implementing Multimedia Services.
- Using Globally Unique Identifiers (GUIDs).
- Determining System Information.
- Flashing a Notification.
- Adding System Support.
- Animating Effects.
25. Multimedia Techniques.
- The Graphical Device Interface (GDI).
- The Windows API and the Device Context.
- Understanding TCanvas:
- The C++Builder Interface.
- Customizing a Drawing.
- Image Support.
- The Windows Bitmap Object.
- The TBitmap Class.
- JPEG Images.
- GIF Images.
- PNG Images.
- Image Processing.
- Displaying and Obtaining Image Information.
- Accessing Individual Pixel Values Using TCanvas-
- Pixels. Image Generation. Fast Access to Pixel Value Using ScanLine. Point Operations: Thresholding and Color/Grayscale Inversion.
- Global Operation: Histogram Equalization.
- Geometrical Transformation: Zoom. Spatial Operation: Smoothing and Edge Detection.
- Audio Files, Video Files, and CD Music.
- The Media Control Interface.
- The Waveform Audio Interface.
Laboratory projects (specify number of weeks on each)
Students will write 15 programs that will reinforce the theory and concepts covered in the course.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
I. Rapid Application Develop (RAD) of GUI programs.
- Property, Event, Method component development.
- Local and distributed component development.
- RAD visual, non-visual, nultimedia, and GUI component development.
- Database component development.
- DLL’s development.
- Package development.
- COM development.
- DCOM and COM+ development.
- Compilation and coding optimization.
- Property and component editor development and deployment.
- Advanced communications, database, distributed computing and web component development, security, and deployment.
- Development of data acquisition architectures.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 4380
Course Coordinator
Dennis A. Fairclough
Course Title
Advanced High-Performance Computer Architecture
Total Credits 3.0
Current Catalog Description
Presents theory and concepts of high-performance computer architectures. Includes digital logic, buses, registers, ALU's, control units, pipelining, parallelism, DASD's, SASD's, RAID, caching, instruction-sets, memory hierarchy, multiprocessing, interconnection via networks.
Textbook
Computer Organization and Design
David A. Patterson
John L. Hennessy
Morgan Kaufman, 1997
ISBN 1-55860-428-6
References
Class Presentations (Slides)
Internet References
Class Handouts
Course Goals
- Computer Abstractions and Technology
- The Role of Performance
- Instructions: Language of the Machine
- Arithmetic for Computers
- The Processor: Datapath and Control
- Enhancing Performance with Pipelining
- Large and Fast: Exploiting Memory Hierarchy
- Interfacing Processors and Peripherals
- Multiprocessors
- Operating Systems, Assemblers, and Linkers
- The Basics of Logic Design
- Mapping Control to Hardware
Prerequisites by Topic
CNS 1250 Object-Oriented I
CNS 1350 Object-Oriented II
CNS 1380 Assembly Language & Computer Archtiecture
Major Topics Covered in the Course
Presents advanced theory and concepts of high-performance computer architectures
Including: digital logic, buses, registers, ALU's, control units, pipelining, and parallelism.
Presents advanced theory and concepts of DASD's, SASD's, RAID, and caching.
Develops the theory and concepts of instruction-sets, memory hierarchy, caching, and multiprocessing, and interconnection via networks
Laboratory projects (specify number of weeks on each)
The students write a computer simulator of a computer developed in class called “Viper.” The “Viper” simulator must take as input assembly language binary code and produce the correct output. This is very large project with a number of submodules that are developed over the semester.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically ___5__ pages and to make ___1__ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
The courses covers copyright and personal property issues in computer science.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Covers the theory of computer architecture, operating systems, microcode, and virtual aspects of computer architectures.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 4400
Course Coordinator
Dr. Keith B. Olson
Course Title
Software Analysis and Design
Total Credits 3
Current Catalog Description
Covers principles and practices of early phases of software development life cycle. Studies software requirements elicitation, analysis, and design. Includes in-depth, practical study of at least one major approach such as object-oriented development as applied to a realistic organizational systems problem. Explores requirements definition and modeling, analysis modeling including prototyping, functional and nonfunctional requirements specification, legacy systems, design patterns, and design modeling.
Textbook
Software Engineering,
6th Edition,
by Ian Sommerville (Addison-Wesley)
References
Software Architecture in Practice, by Len Bass, Paul Clements, and Rick Kazman, (Addison-Wesley)
Course Goals
The successful student in this course will:
- understand the need for careful software design.
- be aware of various design techniques.
- know the basic design patterns and how to use them.
- have had practice in the use of these ideas.
Prerequisites by Topic
- Working knowledge of a high-level programming language.
- An understanding of the software development life-cycle and its phases.
- Experience in working in a team software development environment.
Major Topics Covered in the Course
- The relationship of software architecture to the environment where the software is used.
- Basic definitions in software architecture.
- Quality attributes
- Architectural Styles
- Architectural description languages
- Architecture based development.
- Reusable architectures
Laboratory projects (specify number of weeks on each)
There is one laboratory project, broken into phases as follows:
Requirements and Problem Definition – 3 weeks
Design – 5 weeks
Implementation – 4 weeks
Testing – 3 weeks
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
About four weeks is spent on the concept of design patterns and how different problems can be solved using these patterns.
Problem Analysis
Please describe the analysis experiences common to all course sections.
All students are required to complete a major programming project as the principal activity of the course. As part of this project, they are expected to take written requirements, analyze them, and provide a program design based on their analysis. These problems usually lead to a finished produce in the range of six to ten thousand lines of code.
Solution Design
Please describe the design experiences common to all course sections.
See the response to the previous item. The design aspect of the project usually occupies about a third of the semester, and is graded separately from the other aspects of the project.
CSIS-4410
Computer Human Interaction
July 2, 2002
Section 001 TR 11:30 to 12:45 PM in BU 109
Text: Required:
Human-Computer Interaction
by Jenny Preece, Rogers, Sharp, Benyon, Holland, Carey Addison-Wesley
ISBN 0-201-62769-8.
Course Objectives:
This is a senior level course teaching the fundamentals concepts in Human-Computer Interaction (HCI). It will introduce the student to the current information in HCI, define the need and benefits of HCI, and identify the state research in the study of HCI. As this is a relatively new area in Computer Science, current research will be examined and evaluated, research principles will be discussed and practiced, and the results will be presented to the class. While no programming will be required, Graphical User Interfaces (GUI) will be designed using Visual Basic interfaces. When successfully completed, the student will (1) understand the HCI concepts, (2) be able to find published research articles (3) understand how to do research on HCI standards (4) be able to present research results and articles to the class using PowerPoint.
Spring Semester 2001 Timetable
Jan. 3 instruction begins. April 20 will be the last instruction day, all class material must be submitted. Final: Thursday April 26, 11 AM to 1 PM. January 24 is the last day to drop the class without it showing on your transcript. March 7 is the last day to drop the course or change to an audit. Trying to drop the course after the deadlines will be extremely difficult, since a department chair's signature is required. The CSIS department chair does not like to sign drop slips.
ATTENTION STUDENTS WITH DISABILITIES:
If you have any disability which may impair your ability to successfully compete this course, please contact the Accessibility Services Department (room BU-145). Academic accommodations are granted for all students who have qualified documented disabilities. Services are coordinated with student and instructor by the Accessibility Services Department.
School of Business Computer Lab Access Fees
At the beginning of the semester, all registered students will be given an account on the department servers for the classes in which they are enrolled. The lab will be open from 7 AM to 9 PM Monday thru Thursday. Friday 7 AM to 3 PM, and Saturday 8 AM to 3 PM
Class Fees
Fees charged by class are used to provide licenses for special software and hardware for use in the lab and by the instructor. They are also used for disk storage of class presentations, downloadable material, class syllabus and handouts, tests and Classroom Testing Center charges. They also cover overhead projector bulbs, white board markers and erasers, and grading programs.
Grading:
Design assignments (15%) There will be about 5 design assignments incorporate HCI principals.
Published research assignments (9%) Two scholarly articles will be found(6%) published during the last 3 years on new HCI research. Information from one of the articles will be presented (3%) to the class.
Evaluation (10%) of two “new” Input/Output device to determine their effectiveness will be made. This will include designing the experiment, performing the experiment and gathering data, and presenting the results to the class.
Quizzes (26%) Every Thursday a quiz will be given that covers the material covered in the previous few classes. Your two lowest quiz scores will be dropped.
Exams (40%) There will be three midterm tests and a final. Each test will count for 10 % of the total grade. The midterm tests may be given in the testing center. The final will be given in class. All tests and quizzes will be comprehensive but a one paper (2 sided, 8 x10) reference paper will allowed.
| Week of | Chapters Covered | Assignments/Activities |
| Jan | 4 | 1 -Introduction |
|
| 9 | 2 Components of HCI, 3 Cognitive Frameworks |
First Paper Due |
|
| 16 | 4 Perception and Representation, 5 Attention & Memory |
Second Papter Due |
|
| 23 | 6 & 7 & 8 |
||
| 30 | 9 & 10 |
Midterm #1 | |
| Feb | 6 | 11 & 12 |
|
| 13 | 13 & 14 |
||
| 20 | 15 & 16 & 17 |
||
| 27 | 20 | ||
| Mar | 6 | 21 | Midterm #2 |
| 13 | 24 & 25 | No class Mar 15- Spring Break | |
| 20 | 27 | ||
| 27 | 28 | ||
| Apr | 3 | 30 & 31 | |
| 10 | |||
| 17 | Apr. 19 - Midnight
All assignments due |
||
| 26 | Final | Thurs 11 - 1 PM in BU 109 |
Note: Lab operation Monday to Thursday 11:00 AM to 9:00 PM.
Friday 11:00 AM to 3:00 PM
Saturday 8:00 AM to 3:00 PM
The 2 mid term tests will be taken in the Central Testing Center.
Central Testing Center operation Monday - Friday 7:00 AM to 10:00 PM
Saturday 8:00 AM to 5:30 PM
COURSE DESCRIPTION
Department and Course Number
CNS 4450
Course Coordinator
Chuck Allison
Course Title
Analysis of Programming Languages
Total Credits 3.0
Current Catalog Description
This course gives the mature student an in-depth understanding of the design and implementation of programming languages. Criteria for evaluating programming languages are established as a context for comparing both traditional and current popular languages. Topics include the evolution of programming languages, syntax analysis, the concept of binding, type checking, static and dynamic scoping, control structures, subprograms and parameter passing methods, concurrency, and exception handling. The functional programming paradigm is explored in depth. Students will complete programming assignments in at least two different programming languages, at least one of which being a functional language such LISP, Scheme, ML, or Haskell.
Textbook
Sebesta, Robert W.,
Concepts of Programming Languages,
5th Edition, Addison-Wesley, 2002.
References
Scott, Michael L.,
Progamming Language Pragmatics,
Morgan Kaufmann, 2000.
Course Goals
Understand the issues of designing a programming language and the challenges in implementing them. Students will appreciate why languages have the features they do, and will be better equipped to choose a language appropriate for a given task.
Prerequisites by Topic
Proficiency in at least one imperative (preferably object-oriented) language, a basic knowledge of computer organization (such as in an introductory course on assembly language), and a mastery of fundamental algorithms and data structures.
Major Topics Covered in the Course
Topics include the evolution of programming languages, syntax analysis, the concept of binding, type checking, static and dynamic scoping, control structures, subprograms and parameter passing methods, concurrency, exception handling, and functional programming.
Laboratory projects (specify number of weeks on each)
Most assignments are theoretical, written assignments. At least two laboratory assignments are given in non-mainstream languages. The programming assignments for 2002 were:
- Write a random sentence generator in Scheme. This assignment requires mastery of list processing, recursion, and modular design techniques.
- Write a cross-reference generator in Python. This assignment uses dictionaries, lists, functors, and regular expressions.
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Weekly homework assignments on theoretical material requiring succinct prose addressing the topics covered. Occasional mathematical exercises are also included (e.g., develop the mapping formula for column-major addressing in three dimensions).
Social and Ethical Issues
Not specifically covered in this course. We do consider the acceptability of language features to the programming community, and why some features have endured and others haven’t.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
For the programming assignments, students are given terse requirements and are expected to flesh-out those requirements into an informal specification, suitable to facilitate program design. No analysis documents are required, however. The written assignments require analytical skills pertaining to internal machine organization as wells as syntax analysis and advanced use of the runtime stack.
Solution Design
Please describe the design experiences common to all course sections.
The design exercises pertain to how to implement programming language features. Students are asked to consider alternate techniques of implementing a language feature, and evaluate the alternatives according to accepted criteria.
COURSE DESCRIPTION
Department and Course Number
CNS 4470
Course Coordinator
Kirk Love
Course Title
Artificial Intelligence
Total Credits 3
Current Catalog Description
Presents theory, organization, concepts, and principles of artificial intelligence methodologies including neural networks, expert systems, machine learning algorithms, and genetic algorithms.
Textbook
Artificial Intelligence, A Modern Approach, Stuart Russell and Peter Norvig, Prentice Hall, ISBN 0-13-103805-2
References
Course Goals
- Expose students to programming techniques for solving real-world problems that are intractable in nature and non-deterministic.
- Survey the concepts and principles of artificial intelligence methodologies including robotics, intelligent agents, neural networks, expert systems, and machine learning algorithms. Students gain hands-on experience in the application of each of the methodologies.
- Provide a problem domain that exercises programming concepts learned in previous classes (e.g., Data Structures).
Prerequisites by Topic
CNS 2400 Object Oriented Data Structure, ISYS 3510 Data Base Theory, (MATH 1100 Introduction to Calculus or MATH 1210 Calculus I
Major Topics Covered in the Course
History of Artificial Intelligence
AI Terminology
Areas of Application
Classes of Intelligent Agents
Autonomous Agents (Robots)
Solution Search techniques
Pruning
Heuristics
Neural Networks
Rule Based Systems
Learning Algorithms
PlanningLaboratory projects (specify number of weeks on each)
Robot Competition – two timed events students must compete in (2 weeks, students work in small teams of two or three)
Maze
High Mountain Trail
Tic-Tac-Toe (1 week)
- City Search – find best path form one specified city to another (1 week)
Checkers Program - must compete in class wide competition (2 weeks)
Go Program - must compete in class wide competition (3 weeks)
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to present a 15 minute oral presentation on an AI topic of his or her choice. As a companion to this presentation, each student turns in a written report.
Social and Ethical Issues (5% of Class)
- What is the role of intelligent machines in society?
- Where should machines replace humans?
- What is the source of human intelligence (duality)?
- What rights do humans have versus the rights of a machine?
Theoretical Content
See major topics covered. About 30% of the class is theoretical.
Problem Analysis
The problems students are asked to solve require a great deal of thought. Often students are required to develop several prototypes before they arrive at a satisfactory solution.
Solution Design
Students are encouraged to use UDL and to prototype solutions. The development environment has pre-developed user interfaces so students can focus on the AI components.
COURSE DESCRIPTION
Department and Course Number
CNS 4550
Course Coordinator
Dr. Keith B. Olson
Course Title
Project Design Management
Total Credits 3
Current Catalog Description
Senior-level, capstone project experience course. Requires operating as part of a high performance team. Includes completing the design and implementation of a large-scale software development project. Combines major milestone presentations to project clients, completing a portfolio of project-related artifacts, and offer an evaluation of the project and team experience.
Textbook
References
Course Goals
Prerequisites by Topic
- Thorough knowledge of a high-level programming language.
- Understanding of the basic software development process.
- Understanding of basic project management techniques, including Gantt and PERT charts.
- Basic communication skills, both written and oral.
Major Topics Covered in the Course
Laboratory projects (specify number of weeks on each)
One project that covers the full 15 weeks of the semester.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Solution Design
Please describe the design experiences common to all course sections.
COURSE DESCRIPTION
Department and Course Number
CNS 4490
Course Coordinator
Dennis A. Fairclough
Course Title
Alogrithmic Languages & Compiler Theory
Total Credits 3
Current Catalog Description
Studies theory, analysis and a design of class developed compiler "Expresso." Discusses lexical scanning, parsing, production, and execution of compilers. The student will design and make operational their own compiler.
Textbook
Writing Compilers and Interpreters, 2nd Edition
Ronald Mak
John Wiley & Sons, 1996
ISBN: 0-471-11353-0
References
Compilers Principles, Techniques, and Tools
Alfred V. Aho
Ravi Sethi
Jeffrey D. Ullman
Addison Wesley, 1986
ISBN: 0-201-10088-6
Lecture Notes (Slides)
Expresso BNF
Example Programs
Class Reference Notes
Course Goals
- Develop and in-depth understanding of compiler theory.
- Explore all the elements of a compiler.
- Work with code scanners, symbol-tables, parsers, production, optimization, and error analysis.
- Students analyze, design, code, and test and make operational the “Expresso” compiler.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1380 Assembly Language & Computer Architecture
CNS 1350 Object-Oriented Programming II
CNS 2300 Discrete Structures I
CNS 2400 Object-Oriented Data Structures
CNS 3240 Introduction to Computational Theory
Major Topics Covered in the Course
- Introduction to Compilers Phases of a Compilation Compiler-Construction Tools
- Single-Pass vs. Multi-Pass Compilers
Syntax Definition
Syntax-Directed Translation
Parsing
Simple Expressions
Lexical Analysis
Symbol-Table - Lexical Analysis.
Lexical Analyzer
Input Buffering
Specification of Tokens
Token Recognition
Regular Expressions
Finite Automata
Scanning
Symbol-Table - Syntax Analysis.
The Role of the Parser
Context-Free Grammars
Writing a Grammar
Top-Down Parsing
Bottom-Up Parsing
Operator-Precedence Parsing
LR Parsers
Ambiguous Grammars
Parser Generators
Symbol-Table - Syntax-Directed Translation.
Syntax-Directed Definitions
Construction of Syntax Trees
Bottom-Up Evaluation of S-Attributed Definitions
L-Attributed Definitions
Top Down Translation
Bottom-Up Evaluation of Inherited Attributes
Recursive Evaluators
Compile Time Attribute Values
Assigning Spaces at Compiler-Construction Time
Analysis of Syntax-Directed Definitions - Datatype Checking.
Datatype Systems
Specification of a Simple Datatype Checker
Datatype Expressions
Datatype Conversions
Overloading of Functions and Operators
Polymorphic Functions
Algorithm for Unification
Parsing Expressions
Parsing Statements
Parsing Declarations
Parsing Programs, Procedures and Functions
Interpreting Declared Procedures and Functions
Interpreting Control Statements and the Standard Procedures and Functions - Run-Time Environments.
Source Language Issues.
Storage Organization.
Storage-Allocation Strategies.
Access to Non-local Variables.
Parameter Passing.
Symbol Tables.
Language Facilities for Dynamic Storage Allocation.
Dynamic Storage Allocation Techniques - Intermediate Code Generation.
Intermediate Languages
Declarations
Assignment Statements
Boolean Expressions
Case Statements
Backpatching
Procedure Calls - Code Generation.
Design of Code Generators
The Target Machine
Run-Time Storage Management
Basic Blocks and Flow Graphs
Next-Use Information
A Simple Code Generator
Register Allocation and Assignment
The Dag Representation of Basic Blocks
Peephole Optimization
Generating Code from Dags
Dynamic Programming Code-Generation Algorithm
Code-Generator Generators
Machine Architecture and Assembly Code - Code Optimization.
The Principal Sources of Optimization
Optimization of Basic Blocks
Loops in Flow Graphs
Introduction to Global Data-Flow Analysis
Iterative Solution of Data-Flow Equations
Code-Improving Transformations
Dealing with Aliases
Data-Flow Analysis of Structured Flow Graphs
Efficient Data-Flow Algorithms
A Tool for Data-Flow Analysis
Estimation of Datatypes
Symbolic Debugging of Optimized Code - Compiler Design
Planning a Compiler
Approaches to Compiler Development
Compiler-Development Environment
Testing and Maintenance - A Look at Some Compilers.
EQN, a Preprocessor for Typesetting Mathematics
Pascal Compilers
C Compilers
C++ Compilers
Fortran H Compilers
Laboratory projects (specify number of weeks on each)
The student performs:
- Analysis
- Design
- Programming
- Testing of the“Epresso” compiler over the 15 week semester.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Copyright and personal property issues are discussed at appropriate areas in the course.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
This course covers all areas of the compiler theory and listed in the “Topics Covered in the Course.” There are 12 major theoretical topics covered.
Problem Analysis
Please describe the analysis experiences common to all course sections.
Problem analysis is used extensively as the student analyizes the “Expresso BNF” and Then coverts the BNF into compiler program.
Solution Design
Please describe the design experiences common to all course sections.
This is the capstone programming course in the computer science degree. Extensive use of design must be used by the student as they design their compiler.
COURSE DESCRIPTION
Department and Course Number
CNS 4510
Course Coordinator
Dennis A. Fairclough
Course Title
Operating Systems Design
Total Credits 3.0
Current Catalog Description
Presents architecture, principles concepts, design, and implementation of operating systems. Studies architecture and design of existing operating systems. Discusses queuing, scheduling, resource allocation, memory management, etc.
Textbook
Operating System Concepts, Sixth Edition
Silberschatz, A., Galvin, P., & Gagne
John Wiley & Sons, 2002
ISBN 0-471-41743-2
References
Class Presentations (Slides)
Internet References
Class Handouts
Course Goals
- Develop the theory and concepts of Computer and Operating Systems Archtiectures
- Develop the theory and concepts of CPU management, utilization, scheduling, protection, and security.
- Develop the theory and concepts of Memory management, virtual, scheduling, utilization, and protection.
- Develop the theory and concepts of I/O management, virtual, scheduling, utilization, sharing, and protection.
Prerequisites by Topic
CNS 1250 Object-Oriented Programming I
CNS 1350 Object-Oriented Programming II
CNS 1380 Assembly Language & Computer Architecture
CNS 1510 Unix Operating System
CNS 3060 Operating Systems Theory
Major Topics Covered in the Course
- Computer System Architectures
- Operating System Architectures
- Linux Operating System, Free BSD Operating System, and
- Windows 2000 Operating System
- Processes
- Threads
- CPU Scheduling
- Process Synchronization
- Deadlocks
- Memory Management
- Virtual Memory
- File-System Interface
- File-System Implementation
- I/O Systems
- Mass Storage Systems
- Protection
- Security
- Network Sturctures
Distributed File-Systems
Laboratory projects (specify number of weeks on each)
Each student designs a mini operating system (MiniOS). This project is made up of a set of 10 program modules that simulate a (MiniOS). The modules are constructed over the 15 week semester and are integrated and made to operate as the final exam for the class.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically _10____ pages and to make __1___ oral presentations of typically _10____ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Concentrate on copyright and personal property issues.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
- Theory of Computer System Operating System Architectures
- Processes and Process Synchronization
- Threads
- CPU Scheduling
- Deadlocks
- Memory Management, Virtual Memory, File-Systems, Distributed File-Systems
- I/O Systems and Drivers
- Mass Storage Systems
- Protection
- Security
- Network Sturctures
- Problem Analysis
Please describe the analysis experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program analysis.
Solution Design
Please describe the design experiences common to all course sections.
Students are required to analyze, design, code, and test 14 programs that require significant problem and program design.
COURSE DESCRIPTION
Department and Course Number
CNS 4610
Course Coordinator
David Heldenbrand
Course Title
TCP/IP Internet Architecture
Total Credits 3
Current Catalog Description
Provides theoretical, practical, administrative perspectives of the TCP/IP protocol and its use with the Internet. Includes coverage of IPv4, IPv6, TCP, OSPF and related protocols. IP addressing, subnetting issues, and domain name services are also covered.
Textbook
Internetworking with TCP/IP, Vol. 1, 4th edition, D. Comer, Prentice Hall Publ., ISBN 0-13-018380-6
References
Students are provided with an instructor-created handout containing approximately 100 figures and tables not provided by the text, along with approximately 25 pages of additional readings.
Course Goals
These are the high-level course objectives. Students competing this course successfully will be able to…
- explain internetworking theory and relevant standards in detail
- explain the Internet Protocol (IP) in detail
- list all pertinent IP addressing issues, explain how those issues have been resolved, and perform advanced calculations relating to IP address assignment and manipulation
- explain IP routing in detail
- describe the Transmission Control Protocol (TCP), including advanced algorithms used to optimize performance
- explain the architecture and function of the BGP and OSFP Routing Protocols in detail
- Describe the issues associated with IP Multicasting, and give a basic description of the function of related protocols
- Describe and architecture and function of IPv6 in detail
- Describe and architecture and function of The Domain Name System Protocol in detail
- Describe and architecture and function of The Dynamic Host Configuration Protocol in detail
Prerequisites by Topic
[Prerequisites are listed next to each topic in the following section. All topics require CNS 2600 Fundamentals of Data Communications and CNS 3690 Advanced Topics in Data Communications as prerequisites.]
Major Topics Covered in the Course
(All topics require CNS 2600 Fundamentals of Data Communications and CNS 3690
Advanced Topics in Data Communications as prerequisites.)
- Review of Underlying Network Technologies (none)
- Architectural Model for Internetworking (none)
- Classful Internet Addresses (Discrete Math, Data Structures)
- Mapping Internet Addresses to Physical Addresses (none)
- Reverse Address Resolution (none)
- Internet Protocol (Discrete Math, Data Structures)
- Internet Control Message Protocol (Data Structures)
- Classless and Subnet Address Extensions (Discrete Math, Data Structures)
- User Datagram Protocol – UDP (Data Structures)
- Reliable Stream Transport – TCP (Intro to Programming (C), College Algebra, Discrete Math, Data Structures)
- Routing Theory and Background (Data Structures)
- Exterior Gateway Protocols – Border Gateway Protocol (Discrete Math, Data Structures)
- Interior Gateway Protocols – Routing Information Protocol, Open Shortest Path First
- Protocol (Discrete Math, Data Structures)
- Internet Multicasting (Data Structures)
- Internet Protocol version 6 (IPv6) (Discrete Math, Data Structures)
- Domain Name System (Discrete Math, Data Structures, Intro to Database)
- Dynamic Host Configuration Protocol (Data Structures)
Laboratory projects (specify number of weeks on each)
This course has no distinct lab time. Students are expected to have Internet access, either through their own systems at home, or through the UVSC Networking Labs. Students are assigned homework exercises, some of which are hands-on Internet experiments. Others involve calculation or research. (See Problem Analysis and Solution Design, below.)
Estimate CSAB Category Content
[This information is provided in the newer ABET format]
| Content Area | Core | Advanced |
| Algorithms | 0 | 1 |
| Data Structures | 0 | 1 |
| Software Design | 0 | 1 |
| Programming Languages | .5 | 0 |
| Computer Organization | 0 | .5 |
Oral and Written Communications
Every student is required to submit at least 1 written report (not including exams, tests, quizzes, or commented programs) of typically 10 pages and to make 0 oral presentations of typically 0 minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
- DoD sponsorship and creation of Internet infrastructure. (.25 hrs.). No evaluation.
- Fairness and ethics of limited Internet address space. (.25 hrs.). Test question.
- Ethics and foreign relations issues surrounding U.S. regulation of Internet domain name space. (.25 hrs.). No evaluation.
- Social issues relating to conversion of Internet from government-owned to primarily commercial entity. (.25 hrs.). No evaluation.
- Fairness and related business issues in routing between autonomous systems (BGP). (.5 hrs.). Test questions.
- Discussion of survey regarding viability and migration schedule for IPv6. (.5 hrs.). Test questions.
- Fairness and business issues surrounding standard (OSPF) vs. vendor-specific (EIGRP) routing protocols. (.25 hrs.). No evaluation.
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
| Classful Internet addressing | 0.5 hours |
| Address resolution & optimizations | 0.75 |
| IP Datagram Service | 1 |
| Packet fragmentation | 0.75 |
| Intro to IP routing algorithm | 0.5 |
| Connectionless error reporting (ICMP) | 1 |
| Subnet addressing & masks | 1.25 |
| Unified routing algorithm | .75 |
| Classless addressing (CIDR) | 1.75 |
| User Datagram Protocol (UDP) & ports | 1 |
| Transmission Control Protocol (TCP) & streams | 1.25 |
| TCP reliability algorithms | .75 |
| TCP performance optimization | 1 |
| TCP state machine | .25 |
| Review of distance vector and SPF algorithms | 1.25 |
| Border Gateway Protocol (BGP4) behavior, algorithms, performance optimization | 3.25 |
| Open Shortest Path First Protocol (OSPF) behavior, algorithms, performance optimization | 4 |
| IP multicast behavior, algorithms and optimization | 1.75 |
| IP version 6 architecture, algorithms, optimization | 2.25 |
| Internet domain name services architecture, algorithms | 1.5 |
| Dynamic host configuration protocol (DHCP) algorithms, optimization | 1.5 |
| TOTAL | 28 hours |
Problem Analysis
Please describe the analysis experiences common to all course sections.
Homework exercises are a mixture of problem solving and Internet-based experiments. The large majority of these exercises are instructor-developed. The exercises generally fall in to one of three categories.
The first category of exercises involve calculation, for example, calculating the IP addresses available within a CIDR block. These types of exercises simulate activities that might be performed by a network administrator working for a an ISP or large Internet site. They demonstrate and reinforce technical principles discussed in the lecture and reading.
The second category involves research questions. In this case, a student may be required to locate Internet standards documents (RFCs), do some reading, and then answer questions based on that reading. This category is designed to simulate the research phase of a project, and to familiarize students with the extensive body of standards relevant to the TCP/IP environment
The third, more lab-oriented area, involves using an internetwork environment to test behavior or performance. Examples of this type of problem would involve measuring Internet latency or mapping the path that a packet travels across the Internet.
Solution Design
Please describe the design experiences common to all course sections.
Solutions to exercises described in the Problem Analysis section vary in complexity and scope. Solutions to calculation exercises are explained as necessary, with detailed solutions and explanations provided on the instructor's website. Solutions to research questions are explained, along with background discussion and discussion of possible alternatives. Solutions to lab-oriented questions are discussed in class, where students can compare and discuss results, and speculate on reasons for variance in those results.
Test questions often require students to synthesize knowledge gained from multiple homework exercises.
COURSE DESCRIPTION
Department and Course Number
CNS 4650
Course Coordinator
George Hickman
Course Title
Design and Implementation of Directory-based networks
Total Credits 3
Current Catalog Description
Covers design principles for Directory-based networks including the X.500 naming convention and various implementations of it. Includes Active Directory, LDAP, and NDS, and designing and implementing two or more networks. Addresses partitioning, replication, and time synchronization issues.
Textbooks
Understanding Directory Services Second Edition Beth Sheresh and Doug Sheresh Novell eDirectory Design and Implementation, Novell Education
References
Course Goals
- Understand what a Directory Service is, and what it provides.
- Understand X.500 and its components.
- Understand the vocabulary, protocols, and models used in various X.500 implementations.
- Understand and use LDAP to import and export items from various X.500 directories.
- Understand the Active Directory implementation of X.500.
- Understand the eDirectory implementation of X.500.
- Understand how and why time is synchronized on the network.
- Synchronize time to internet time sources on Linux, Windows, and NetWare servers.
- Partition and replicate an X.500 network.
- Plan and implement a strategy for Wide Area Network traffic.
- Understand and implement DNS services.
- Understand and implement DHCP services.
- Understand and implement SLP services.
- Understand and implement Print services.
- Merge X.500 trees
- Create a network with Windows servers, Linux servers, and NetWare servers and combine them into a single X.500 directory information base.
Prerequisites by Topic
CNS 3610 Network Administration
OR
CNS 3630 Network Management
Major Topics Covered in the Course
See Course Goals
Laboratory projects (specify number of weeks on each)
Laboratory assignments are given throughout the course on all major objectives.
Estimate CSAB Category Content
| CORE | ADVANCED | CORE | ADVANCED | ||
| Data Structures | ____________ | ____________ | Computer Organization and Architecture |
____________ | ____________ |
| Algorithms Software Design | ____________ | ____________ | Concepts of Programming Languages | ____________ | ____________ |
Oral and Written Communications
Every student is required to submit at least __1___ written reports (not including exams, tests, quizzes, or commented programs) of typically __7___ pages and to make __0___ oral presentations of typically __0___ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
Please list the topics that address the social and ethical implications of computing covered in all course sections. Estimate the class time spent on each topic. In what ways are the students in this course graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and so forth)?
Theoretical Content
Please list the types of theoretical material covered, and estimate the time devoted to such coverage.
Operating Systems 10 hours
X.500 5 hours
LDAP 5 hours
Problem AnalysisPlease describe the analysis experiences common to all course sections.
Solution Design: Please describe the design experiences common to all course sections.

