Computer Science Courses
COM 104 Computer Solutions to Information Problems   Students will enhance their abilities to manage, analyze and present information by using modern computer technologies.  Emphasis will be put on problem definition, structured solution of subordinate problems and identification of appropriate problem solving methodologies.  Laboratory work will use three principal types of computer applications: databases for management of information, spreadsheets and other programs for information analysis, and word processing, HTML documents and PowerPoint for effective information presentation.  Other topics include web page and web site creation, information security issues including firewalls and antivirus programs, the societal effects of information technologies, and an introduction to programming.  This course satisfies the University’s liberal arts core requirement in Computer Science. (2 s.h.)  


COM 201 Introduction to Computer Science I   The first of a two semester introduction to concepts of computer science, emphasizing computer programming.  The C# programming language provides a more accessible introduction to structured and object-oriented programming than previous languages.  Students also enhance proficiencies in using application software such as web page development.  COM 201 is prerequisite to all higher courses in Computer Science and Computer Information Systems and familiarizes students of mathematics, other sciences or business with techniques of information processing and mathematical modeling.  No previous programming experience is expected.  Prerequisite: MAT 112 or its equivalent.  This course satisfies the University’s liberal arts core requirement in Computer Science. (4 s.h.) 

COM 202 Introduction to Computer Science II  The second semester of a general introduction to computer science, emphasizing computer programming.  The C++ language continues the development of object-oriented programming techniques from the C# foundation of COM 201.  The course is designed to meet the needs of science, engineering and mathematics majors in gaining facility with the techniques of modeling and analysis, and to equip Math Education majors with programming skills for use in the classroom.  Emphasis continues on systematic problem solving and the use of powerful programming tools such as the Standard Template Library.  Prerequisite:  COM 201. (4 s.h.) 

COM 230 Computer Systems Architecture  An introduction to computer architecture.  Topics include the levels of computer organization, the organization of processors and assembly language programming.  The assembly language section provides basic concepts of programming systems and computer architecture, including organization of memory, central processors, I/O devices, instructions and data types.  Prerequisites:  COM 202 and COM/MAT 306.  Laboratory arranged. (3 s.h.) 

COM 241 Visual Programming in the Classroom  Modern computer programming approaches that are rapid in program development, attractive in appearance and intuitive in use.  This course is designed to introduce students to structured programming and to graphical and event-driven paradigms through the use of Visual Basic for Windows.  The emphasis will be on problem solving using a top-down approach of breaking a major problem or program into more manageable sub programs or modules.  The ease of use of the language and the attractive visual results should promote use in the classroom, both for computer instruction and for design of educational demonstrations.  Prerequisite:  COM 104. (2 s.h.)

COM 300 Numerical Methods  Mathematical techniques most needed by those engaged in computational mathematics.  Topics include numerical integration, optimization, polynomial approximation, matrix inversion, and approximate solutions to boundary value problems.  Prerequisites:  COM 201 and MAT 204, with COM 202, MAT 205 and COM/MAT 306 recommended.  Credit in this course may be applied toward a Mathematics major. (3 s.h.) 

COM 301 Alternatives in Visual Programming  Windows GUI programming alternatives, particularly the suite of languages that comprise Visual Studio.NET, are assuming an important place in the computer work environment.  This course will equip future professionals with the concepts and skills of program development using C# and Visual Basic.NET.  Topics will include the Common Language Runtime and the interoperability of the dotNET languages.  Prerequisite:  COM 201 (3 s.h.)

COM 302 Introduction to Linux  The UNIX operating system is characterized by its stability and scalability.  These characteristics make it appropriate for mission-critical and server operations.  Many network installations utilize UNIX or LINUX servers connected to clients running varying operating systems.  Born of the need for an inexpensive version of UNIX, LINUX was created in 1991 and in several distributions is increasingly popular.  This course primarily studies LINUX, including installation, security features and networking.  Both command-line and graphic interfaces are explored.  Prerequisites:  COM 202 or 301. (3 s.h.) 

COM 303  Introduction to Networking  This course covers the fundamental concepts used in computer networking: network architecture including the OSI and TCP/IP models, data flow in a network, network design, network protocol configuration including wireless network protocols.  The course incorporates both lectures and labs in which students work with both physical and logical IP addressing schemes in a TCP/IP network.  The course is essential for mastery of basic networking concepts and communication between computers.

COM 306 Discrete and Algorithmic Mathematics  An introduction to the mathematical basis of computer science.  Includes an introduction to logical reasoning, counting and finite probability, the rudiments of sets, functions, relations, mathematical induction and recurrence relations, graph theory, finite state machines, formal languages and Boolean algebra.  Prerequisite:  COM 201. (3 s.h.) 

COM 310 Information Systems Analysis   This first course in object-oriented systems analysis introduces the Uniform Process.  Students participate in all phases of systems and software development during the major term project.  Modeling in UML and an introduction to the Software Capability Maturity Model, along with other aspects of project development and management, prepare students for managing and developing information systems.  Prerequisites: COM 202 or COM 301 and COM/MAT 306. (3 s.h.)

COM 315 Organization of Programming Languages  The structure of programming languages is explored first through the example of Java.  As Java is learned, its design and operation is contrasted with that of C++ or C#.  Concepts such as interpreted language, garbage collection, a virtual machine, and language portability are developed.  Other topics are introduced as additional languages such as Lisp are also learned in this course.  Prerequisites:  COM 202 and COM/MAT 306. (3 s.h.) 

COM 318 Database Management Systems  The study of database management systems introduces the theory of the relational model, entity-relationship diagrams, functional dependencies, and normalization.  A term project requires students to design and implement a database using MS Access.  Students will write SQL for database definition and for efficient information retrieval.  Other topics may include stored procedures, database assertions, database programming, transaction processing, and database recovery and security.  The course provides the theoretical understanding for making informed design decisions as well as the practical skills needed for the management of or participation in the development of database information systems.  Prerequisites: COM 202 or COM 301.  (3 s.h.)

COM 320 Structure and Logic of Digital Computers  An introduction to the internal structure of digital computers.  Topics include design of gates, flip-flops, registers and memories for operations on numerical and other data represented in binary form.  Prerequisites:  COM 202 and COM/MAT 306. (3 s.h.) 

COM 322 Operating Systems  Operating systems are sets of software that serve users by managing all the resources which we describe as a computer.  Distinguished from applications, operating systems are responsible for controlling processes, storage management and internal security and protection.  If computers are networked, the operating system is further responsible for managing and cooperating with the shared resources.  All these concepts are the subject of this course.  Prerequisite:  COM 202. (3 s.h.)

COM 340 Algorithms and Objects in C++  Programming techniques for creating efficient solutions to fundamental computer problems are developed using object classes and C++.  Concepts of data structures are extended to include reusable program modules containing both information and algorithmic methods.  Algorithms explored include those for searching, sorting, string processing and graphing.  Introduction to complexity and efficiency analysis.  The course’s dual emphasis is the understanding of principal algorithmic problem-solving techniques and the application of these techniques using C++ object-oriented programming.  Prerequisites:  COM 202 and COM/MAT 306. (3 s.h.) 

COM 390 Special Topics in Computer Application  Provides experience in all areas of computing.  Students participate in solving a significant information processing problem.  Interested students should contact the instructor for specific topics for that term.  May be repeated with change in topic.  Prerequisites:  COM 202 and COM/MAT 306. (3 s.h.)

COM 395 Internship  A phase of practical on-the-job training.  Students may acquire experience in applying their learning in the areas of either computer hardware or software at local firms that use computers as a major computing tool.  Prerequisites:  COM 202, COM/MAT 306, and approval of a Computer Science faculty member and the student’s academic advisor. (2-4 s.h.)

COM 490 Senior Seminar  A capstone experience drawing on skills and understanding developed throughout the undergraduate program.  Significant attention is given to weaving the various strands of the programs into a coherent whole, as well as refining writing and presentation skills in forms appropriate to the discipline.  Prerequisite:  at least 9 s.h. of 300-level coursework in Mathematics or Computer Science. (1 s.h.)