Columbus State University
1999-2000 Academic Catalog

Course Descriptions
CPSC

Return to Table of Contents


CPSC - Computer Science

CPSC 1105. Technological Solutions (3-0-3) A problems solving course using the newest technologies to develop an understanding of and skills in electronic communications, information retrieval, word processing and desktop publishing, spreadsheet and data analysis, and electronic presentation techniques. Emphasis will be placed on using technology to solve practical problems. Students with credit for ITDS 2745 Computers and the World Wide Web seminar may not receive credit for this course.

CPSC 1301. Computer Science 1 (3-0-3) This course includes an overview of computers and programming; problem solving and algorithm development; simple data types; arithmetic and logic operators; selection structures; repetition structures; text files; arrays (one-and-two-dimensional); procedural abstraction and software design; modular programming (including sub-programs or the equivalent).

CPSC 1302. Computer Science 2 (3-0-3) Prerequisite: CPSC 1301. A continuation of CPSC 1301. This course emphasizes programming using object-oriented methods. The fundamentals used in designing, developing and using classes, encapsulation, inheritance mechanisms, polymorphism and dynamic binding.

CPSC 2105. Introduction to Computer Organization (3-0-3) Prerequisite: CPSC 1302. Basic computer organization at the machine language and assembly language level. Digital logic and circuits. Basic components of computer hardware and their implementation. Interaction with the operating system. Alternative computer organizations and implementations. Introduces students to the operation of a computer, stressing the relationships and compromises between software and hardware.

CPSC 2108. Data Structures (3-0-3) Prerequisite: CPSC 1302. This course extends the concepts of primitive data types by teaching the student a set of data structures that pervades both the theoretical and practical domains of computer science.

CPSC 2175. Object-Oriented Design (3-0-3) Prerequisite: CPSC 2108. Introduces the principles of object-oriented programming with emphasis on objects, classes, inheritance, and polymorphism. A high level programming language such as C++ is used to apply these principles in several application domains. Also stressed are tools and techniques for testing, debugging, and organizing and managing larger programs.

CPSC 2555. Selected Topics in Computer Science (1-3 hours) Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times.

CPSC 3111. Structured Programming with COBOL 1 (3-0-3) Introduction to programming in COBOL. Emphasis on structured design techniques. Computer assignments required.

CPSC 3112. Structured Programming with COBOL 2 (3-0-3) Continuation of CPSC 3111.

CPSC 3115. Discrete Structures in Computer Science (3-0-3) Prerequisite: MATH 1131. An introduction to the mathematical foundations of computer science. Topics include set theory, functions, relations, Boolean algebra, counting, graph theory and algorithm analysis.

CPSC 3116. Mainframe Basics and JCL (3-0-3) This course presents an overview of IBM mainframe operating systems currently in use in the area. It includes common terminology and the most used JCL features.

CPSC 3117. Visual Basic Programming (3-0-3) Prerequisite: CPSC 2108. The primary purpose of this course is to provide experience and skills in designing and programming event-driven Windows applications using visual development environment and tools. A popular and powerful development environment Visual Basic will be used in this course. Subjects covered include: Visual Basic environment, controls, creating menus, VB programming, working with forms, OLE objects, ActiveX controls, adding Internet access, providing help systems, and Windows API. Extensive lab work and programming required.

CPSC 3121. Assembly Language Programming 1 (3-0-3) An introduction to assembly language for mainframes or PC’s. Topics include machine architecture (registers, memory, instruction formats), character data processing, decimal arithmetic, binary arithmetic, subroutine and program linkage.

CPSC 3122. Assembly Language Programming 2 (3-0-3) Prerequisite: CPSC 3121. Topics include Macro writing, Dsects, Multi-dsect programs, Standard Linkage Conventions, VSAM processing, Assembler and Linkage Editor design.

CPSC 3125. Introduction to Operating Systems (3-0-3) Prerequisites: CPSC 2108. The concepts of a process, a processor, and asynchronous concurrently executing processes synchronized via shared data using semaphore or monitors. Synchronization. Storage allocation and management including virtual memory. Processor allocation and management including multi processing. Secondary storage management. System security; data privacy; performance evaluation.

CPSC 3131. Introduction to Database Systems 1 (3-0-3) Prerequisite: CPSC 2108. The course covers the fundamentals of database systems. Topics to be covered include the following: file systems and database concepts, database models, relational database model, introduction to SQL, database design and implementation, database integrity, and normalization of database tables. Implementation techniques using commercial DBMS will be considered. The course includes lab work and individual database application programming projects.

CPSC 3132. Introduction to Database Systems 2 (3-0-3) Prerequisite: CPSC 3131. A continuation of Database Systems 1. A different database will be introduced.

CPSC 3156. Introduction to Transaction Processing (3-0-3) Prerequisite: CPSC 3111. An introduction to interactive processing in a transaction-based computer system. Topics include multitasking, multi threading, maps, pseudo conversational programming and large system design. A language for writing transaction-based systems will be introduced.

CPSC 3165. Professionalism in Computing (3-0-3) Prerequisite: CPSC 1302. The social impact, implications and effects of computers on society, and the responsibilities of computer professionals in directing the emerging technology. Includes the examinations of reliable, risk-free technologies, and systems which provide user friendly processes. Specific topics include an overview of the history of computing, computer applications and their impact, the computing profession, and the legal and ethical responsibilities of professionals.

CPSC 4175. Introduction to Software Engineering (3-0-3) Prerequisite: CPSC 2175. Introduction to the basic principles of software engineering. Issues in the software life cycle. Emphasis on methods for software design and testing. Project management and quality assurance. Significant software project required.

CPSC 4698. Internship (1-3 hours) Prerequisite: Junior Standing. Work experience on an approved project supervised by an approved faculty member. (S/U grading.)

CPSC 4899. Independent Study (3-0-3) Prerequisite: Junior Standing. Course project approved and supervised by an appropriate faculty member.

CPSC 5115. Algorithm Analysis and Design (3-0-3) Prerequisite: CPSC 2108 or MATH 3125 or CPSC 3115. This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability.

CPSC 5125. Introduction to Computer Graphics (3-0-3) Prerequisites: CPSC 2175. Introduction to the input, construction, storage, retrieval, manipulation, alternations, and analysis of computer graphics objects. Graphics computer hardware, graphics primitives, two-dimensional and three-dimensional viewing and transformations, basic modeling.

CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC 2108. Emphasizes the run-time behavior of programs. Languages are studied from two points of view: (1) the fundamental elements of languages and their inclusion in commercially available systems; and, (2) the difference between implementations of common elements in languages.

CPSC 5136. Compiler Construction (3-0-3) Prerequisite: CPSC 2108. Includes the theory, the design, and the implementation of a large language translator system. Lexical analysis, syntactic analysis, core generation, and optimization are emphasized.

CPSC 5137. Client-Server Database Systems (3-0-3) Prerequisite: CPSC 3131. This course teaches how to build three-tier client-server applications that access corporate SQL databases. The course emphasizes multi-tiered development at the presentation, business and data layers using Visual Basic, Transact SQL, COM, ActiveX, business objects, and SQL server.

CPSC 5138. Advanced Database Systems (3-0-3) Prerequisite: CPSC 3131. This course is intended for computer science students and professionals who have already acquired a basic background on databases. The objective of the course is to introduce the students to the most advanced concepts and recent issues in several areas of database technology, including the following: advanced database design and implementation, transaction management and concurrency control, distributed database management systems, object-oriented databases, client/server systems. The course includes lab work and individual database application projects.

CPSC 5155. Computer Architecture (3-0-3) Prerequisite: CPSC 2105. Information representation and transfer; instructions and data access methods; the control unit and micro planning' memories; input/output and interrupts; secondary storage; the von Neumann SISD organization; high-level language machines; the RISC concept; special-purpose processors including operation system, file, text, floating-point, communication, etc. Multicomputers; multiprocessors; concurrent processing support; pipeline machines, processor arrays, database machines; the data flow/data directed approach.

CPSC 5156. Parallel and Distributed Computing (3-0-3) Prerequisite: CPSC 3125. Survey of parallel computer architectures, including interconnection networks and synchronization techniques. Algorithms and programming languages for parallel computers. Applications. Interprocess communications, communication protocols, communication network architectures, and distributed programming interfaces. Performance implications.

CPSC 5157. Computer Networks (3-0-3) Prerequisite: CPSC 2108. Local area networks, wide area networks, and internets. Protocols and the ISO Open Systems Interconnect reference model. Design, analysis, and performance evaluation. Emphasis on data link, network, and transport protocols.

CPSC 5165. Multimedia, Hypertext, and Information Access (3-0-3) Prerequisite: CPSC 2108. Introduces the architectures, concepts, data, hardware, methods, models, software, standards, structures, technologies , and issues involved with: multi-media information and systems; hypertext and hyper media; networked information; electronic publishing; virtual reality; and information access. Students will learn how to capture, represent, store, compress, manipulate, interact with, and present: text, drawing, still images, animations, audio and videos. They will work with video conferencing, authoring systems, and digital libraries.

CPSC 5185. Introduction to Artificial Intelligence (3-0-3) Prerequisite: CPSC 2108. Heuristic Techniques in Artificial Intelligence. Foundations of heuristic methods, problem representation and search methods, knowledge representation, learning and inference, natural language processing. Appropriate programming language and software tools for Artificial Intelligence.

CPSC 5555. Selected Topics in Computer Science (1-3 hours) Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times for credit.

CPSC 6118. Graphical User Interface Development (3-0-3) Examines the software development techniques used in the design of graphical user interfaces. Particular emphasis is placed on available software development tools for such interfaces.

CPSC 6119. Object-Oriented Development with Components (3-0-3) This course teaches object-oriented developing techniques and how to create advanced Visual Basic applications using classes, COM components and ActiveX controls. Fundamentals developing client applications that include database access using COM components. Topics include creating and managing COM components, creating data services, testing, deploying and maintaining a component based solution.

CPSC 6125. Advanced Operating Systems (3-0-3) Issues in the design and functioning of operating systems. Emphasis on synchronization of concurrent activity in both centralized and distributed systems. Deadlock, scheduling, performance analysis, operation system design, and memory systems including distributed file systems.

CPSC 6126. Computer Security (3-0-3) Covers network security technology, the latest standards for security in an Internet working environment, and the practical issues involved in developing security applications. The main contents are conventional encryption, confidentiality using conventional encryption, public-key cryptography, authentication and digital signatures, intruders, viruses, and worms, cryptographic algorithms, authentication and key exchange, electronic mail security, and network management security

CPSC 6127. Client-Server Database Management Systems. This course teaches how to design and implement relational databases using Transact SQL and SQL-Server Database management system. Topics include developing a logical model, deriving the physical design creating data services, creating a physical database, maintaining a database.

CPSC 6137. Distributed Software Architecture and Design (3-0-3) This course emphasizes distributed software architecture and the MSF (Microsoft Solutions Framework). Topics include project, technology and resource management, establishing business requirements, analyzing project scope, infrastructure, technology migration, security requirements, etc.

CPSC 6155. Advanced Computer Architecture (3-0-3) Prerequisite: CPSC 5155. Covers theory of parallelism, advanced hardware technology and software for parallel programming. The main contents are parallel computer models; program and network properties; principles of scalable performance; processor and memory hierarchy, bus, cache, and shared memory; pipelining and superscalar techniques; multiprocessors and multicomputers; multivector and SIMD computers; scalable, multithreaded, and dataflow architectures; parallel models, languages, and compilers; and parallel program development and environments.

CPSC 6166. Distributed Enterprise Software Development (3-0-3) This course teaches how to build distributed three tier enterprise client-server applications that access corporate databases using the DNA architecture. The course focus is with multi-tiered distributed developing using COM, ActiveX, business objects, MTS, MSMQ, SQL server and client-slide presentation.

CPSC 6175. Web Site Development and Technologies (3-0-3) This course teaches the fundamentals of Web technologies and Web site development using authoring tools such as Microsoft Front Page. It uses HTML, DHTML, client-side javascript, ActiveX controls and Java applets. Topics include analyzing business requirements, defining the technical architecture, developing the user interface and user services, publishing and managing the web site.

CPSC 6176. Enterprise Web Application Development (3-0-3) This course teaches how to perform web site architectural planning, make technology selection and create enterprise-level Web sites. The course uses Microsoft Visual Interdev to develop client-server DNA Web applications using COM components on both the client and the server. Web application developing using Active Server Pages, COM, ActiveX, MTS, DNA architecture, Server-side scripting, SQL Server and Microsoft Visual Interdev.

CPSC 6177. Advanced Software Design (3-0-3) Examines software requirements and design methodologies. Studies defining software requirements: interacting with end-users to determine system requirements and identifying functional, performance, and other requirements. Examines techniques to support requirements including prototyping, modeling, and simulation; the relation of requirements to design; design in the system life cycle; and hardware versus software trade-offs. Discusses subsystem definition and design and covers principles of design, including abstraction, information hiding, modularity, and reuse. Uses examples of design paradigms.

CPSC 6178. Software Testing and Quality Assurance (3-0-3) Examines the relationship between software testing and quality with an emphasis on the role of testing in the validation of system requirements. Topics include module and unit testing, integration, code inspection, peer review, verification and validation, statistical testing methods, preventing and detecting errors, selecting and implementing project metrics, and defining test plans and strategies that map to system requirements. Examines testing principle formal models of testing, performance monitoring, and measurement.

CPSC 6179. Software Project Planning and Management (3-0-3) Centers on the concept of a software engineering process and includes discussion of life-cycle models for software development. Addresses issues associated with the successful management of software development including planning, scheduling, tracking, cost and size, estimating, risk management, configuration, management quality, and engineering and process improvement. Includes the SEI software process Capability Maturity Model (CMM) and other process standards.

CPSC 6555. Selected Topics in Computer Science (3-0-3) Study of topics of special interest in the field of computing.

CPSC 6899. Independent Study (3-0-3) Course project approved and supervised by an appropriate member of the graduate faculty.

CPSC 6985. Research and Thesis (3-0-3) A research project designed in consultation with the faculty to apply the student's course work to a current problem in either client-server, mainframe, or communications applications. The course includes a formal paper detailing the student's research and conclusions. (S/U grading.) May be taken twice for credit.


Return to Top of Page

Last Updated: 2/1/11