Computer Science (CS)
1041 Computer Applications—Math/Science (1) F, SP
Use of computer software for mathematical and scientific applications. Problem solving with application software including graphical representation of solutions and data, equation editing, symbolic mathematics, statistical software, scientific internet resources, images and animation. Laboratory, 2 hours.
1122 Introduction to Computer Science (2) F, SP
Survey of topics in computer science. Appreciating computer science as a discipline, with light introductions to object-oriented paradigms. Topics include introduction to and appreciation of problem solving, programming languages and their translators, software engineering, computer architecture, operating systems, networks, algorithms, social and ethical issues, and artificial intelligence.
1213 Introduction to Computer Programming (3) F, SP
Problem analysis and the development of algorithms and computer programs in a modern high-level language. Introduces the use of a high-level object- oriented programming language as a problem-solving tool, including basic data structures and algorithms, object-oriented programming techniques and software documentation. Prerequisites: MA 1030 or higher.
1233 Object-Oriented System Design and Programming (3) F, SP
Introduces more advanced elements of object-oriented programming, including dynamic data structures, recursion, searching and sorting, and advanced object- oriented techniques. Prerequisite: Computer Science 1213 with a grade of “C” or higher.
2223 Mathematical Structures for Computer Science (3)
Introduction to logic, propositional equivalences, predicates and quantifiers, methods of proof, mathematical induction, recursive definition and algorithms, program correctness, representing relations, closures of relations, equivalence relations, partial orderings, Boolean matrices, invertible matrices, systems of linear equations, permutations and combinations, sequences and recurrence relations, graph terminology and representation, connectivity, Euler and Hamiltonian paths, shortest path algorithms, introduction and applications of trees, tree traversal algorithms, spanning trees, minimum spanning trees. The course also incorporates a significant programming component. Prerequisite: Math 1314 with a grade of “C” or higher.
2233 Data Structures and Algorithms (3) F, SP
Implementation and application of fundamental data structures and computing algorithms used in computer science, including searching and sorting; elementary abstract data types including linked lists, stacks, queues, trees and graphs. Particular emphasis is given to the use of object-oriented design and data abstraction in the creation and application of these data structures. Some elementary algorithm analysis is also covered. Prerequisites: Computer Science 1233 and Math 2103 with grades of “C” or higher.
2243 Database Management Systems (3) SP
Introduction to database concepts and the relational database model. Topics include SQL, normalization, design methodology, DBMS functions, database administration, and other database management approaches such as client/server databases, object oriented databases, and data warehouses. Strong emphasis on database system design and application development. Prerequisite: Computer Science 1233 with a grade of “C” or higher.
2252 Competition Programming (2) SP
Introduction to an interesting variety of subjects in programming, algorithms, and discrete mathematics through puzzles and problems which have appeared in the International ACM Programming Contest and similar venues. Skills required for programming contests, which include evaluation of problem difficulty, solving problems in teams, and working under time pressure. Implementation of algorithms will be done in an object-oriented programming language such as C++ or Java. It is expected that the best students from this course will represent Lipscomb at the regional ACM Programming Competition and possibly at the international ACM Competition. Prerequisite: Computer Science 2233 with a grade of “C” or higher.
2323 Computer Organization (3) F
Introduction to computer organization with emphasis on the lower level abstraction of a computer system including digital logic, instruction set and assembly language programming. Topics include data representation, logic gates, simplification of logical expressions, design and analysis of simple combinational circuit such as decoders and multiplexers, flip-flops and registers, design, and analysis of simply synchronous sequential circuit, random-access and read-only memories, instruction set architecture and programming in assembly language. Prerequisites: Computer Science 1233 and Math 2103, with grades of “C” or higher.
3233 Computer Graphics (3) F
Design and implementation of object-oriented graphical user interfaces (GUI) and two-dimensional computer graphics systems. Implementation methodologies including callbacks, handlers, event listeners, design patterns, layout managers, and architectural models. Mathematical foundations of computer graphics applied to fundamental algorithms for clipping, scan conversion, affiine and convex linear transformations, projections, viewing, structuring, and modeling. Prerequisites: Computer Science 2233 and Math 3213 with grades of “C” or higher.
3243 Mobile Device Programming (3) SP
Introduction to programming for the mobile devices (such as Apple iPhone, iPod Touch, iPad and Android) using Software Development Kits (SDKs). Mobile application development will focus on object-oriented programming appropriate to mobile devices. Insight into current common procedures for getting mobile application work academically published. Prerequisites: Computer Science 1233, 2243 and Information Technology 3313 with grades of “C” or higher.
3252 Programming Challenges (2) F
Development and implementation of advanced algorithms, as well as the skills required for programming competitions. The student will learn to select appropriate algorithms for a given problem, integrate multiple algorithms for solving a complex problem, design new algorithms, and implement them in C++ or Java. Prerequisite: Computer Science 2252 with a grade of “C” or higher.
3333 Mobile and Distributed Computing Systems (3) F
Architectures of mobile and distributed computing systems, mobile and distributed operating systems, middleware, SOA and distributed services, network infrastructure for mobile and distributed computing systems. Prerequisites: Computer Science 2233, 2243 and Information Technology 3323 with grades of “C” or higher.
3433 Numerical Methods (3) SP
Offered odd numbered years
Finding roots of equations, error analysis, simultaneous linear equations, numerical integration, least squares approximations, and numerical solutions for ordinary differential equations. Prerequisites: Math 2314 and Computer Science 2233 with grades of “C” or higher.
350V Special Topics in Computer Science (1-3)
Offered on demand Selected topics from the field of computer science. The course may be either lecture or laboratory oriented depending upon the topic selected. The study represents an in-depth approach to specific areas of interest to the students. Repeatable for credit with director’s approval. Prerequisite: Consent of the instructor.
3523 Operating Systems (3) SP
Introduction to operating system concepts including system organization for uniprocessors and multiprocessors, scheduling algorithms, process management, deadlocks, paging and segmentation, files and protection, and process coordination and communication. Prerequisites: Computer Science 2233 and 2323 with grades of “C” or higher.
3623 Design and Analysis of Algorithms (3) F
Study of the techniques for designing algorithms and for analyzing the time and space efficiency of algorithms. The algorithm design techniques include divide-and-conquer, greedy algorithms, dynamic programming, randomized algorithms and parallel algorithms. The algorithm analysis includes computational models, best/average/worst case analysis and computational complexity (including lower bounds and NP-completeness). Prerequisites: Computer Science 2233 and Math 2903 with grades of “C” or higher.
3713 Comparative Programming Languages (3) SP
Discussion of the important issues in the specification, design and implementation of programming languages with emphasis on imperative programming. Emphasis is on evaluating alternative ways of providing various symbols, abstractions, definitions, theorems, proofs, programming language features and trade-offs involved. Topics include syntactic specification, data types, and the like, abstraction mechanisms, sequence control, data control, storage management, functional programming and about its capabilities and limitations, universal models introduction to programming verification. Several languages are used to illustrate these programming language concepts. Prerequisite: Computer Science 2233 with a grade of “C” or higher.
4013 Future Mobile and Social Computing Systems (3) SP
Research and development R&D) or project-based course to build futuristic proof-of-concept online social and mobile computing system prototypes. Prerequisite: Computer Science 3243 with a grade of “C” or higher.
4053 Senior Seminar in Computer Science (3) SP
Required of all computer science majors in their senior year. Assessment of degree to which computer science program outcomes have been achieved; reflection on and synthesis of computer science academic experience; preparation for transition to professional employment or graduate school. Prerequisites: Senior standing and 30 hours of Computer Sciences courses.
4223 Compiler Construction (3) F
Study of the theory and design techniques used in compiler construction, including lexical analysis, parsing, grammars, semantic analysis, code generation and optimization. Each student will implement a subset of a compiler. Prerequisites: Computer Science 2233, 3623 with grades of “C” or higher.
4413 Fundamentals of Automata and Formal Language Theory (3) SP
Introduction to fundamental concepts of automata theory and formal languages including finite automata, regular expressions, formal language theory and pushdown automata. Prerequisite: Computer Science 3713 with a grade of “C” or higher.
4423 Computability and Complexity Theory (3) SP
Rigorous introduction to theoretical foundations of computer science, addressing a number of interrelated topics and formally defining a computer, an algorithm and what is computable. Close reading of important theorems and proofs. Significant use of mathematical lemmas, corollaries, logical reasoning, inductive proofs, are used to introduce how to reason precisely about computation and prove mathematical theorems of computation such as Turing machines, undecidability, and computational complexity. Prerequisites: Computer Science 3623 and 4413 with grades of “C” or higher.
4433 Algorithmic Graph Theory (3) F
The elements of the theory of graphs and directed graphs with motivating examples from communication networks, data structures, etc., shortest paths, depth first search, matching algorithms, parallel algorithms, minimum spanning trees, basic complexity theory, planarity, and other topics. Programming assignments are included. Prerequisite: Computer Science 3623 with a grade of “C” or higher.
4443 Database Theory and Applications (3) SP
Introduction to the theory, methods, and techniques widely used today to design, build, and implement modern database systems. Emphasis is on the relational data model, with topics including relational algebra, SQL, entity- relationship model, normalization, design algorithms, query processing, transaction processing, and object-oriented databases. Prerequisites: Computer Science 2233, 2243 and Math 2903 (or Math 2103) with grades of “C” or higher.
4453 Artificial Intelligence (3) SP
An exploration of concepts, approaches and techniques of artificial intelligence: specification, design, and implementation of selected applications of intelligent software agents and multi-agent systems. Computational models of intelligent behavior, including problem solving, knowledge representation, reasoning, planning, decision making, learning, perception, action, communication and interaction. Reactive, deliberative, rational, adaptive, learning and communicative agents and multi-agent systems. Prerequisites: Computer Science 3623, Math 3123 and 3213 with grades of “C” or higher.
Information Security (SEC)
3113 Fundamentals of Information Security (3) SP
An introduction to the security of digital information including: threats; regulations; risk management; attack detection and response; cryptography; forensics; and technical training and certifications. Prerequisites: Information Technology 2223 and Computer Science 1213 with grades of “C” or higher.
3313 Introduction to Policy and Procedures (3) F
Establishing information security policies and procedures for organizations. Identification of relevant contracts, laws, and regulations constraining organization, and the setting of procedures to be used in day-to-day operations. Prerequisite: Information Security 3113 with a grade of “C” or higher.
3323 Cryptography (3) F
Security requirements for telecommunication over the Internet and other communication networks, various conventional and public-key encryption protocols, digital encryption standard, RSA and EIGamal cryptographic systems, digital signature algorithm and analysis of its crypto-immunity, and access sharing schemes. Prerequisites: Math 2103 and 3123 with grades of “C” or higher.
3333 Introduction to Business Continuity and Recovery Planning (3) SP
Maintenance of information and the processes of how to continue in business in the face of data loss, and planning for the recovery in the event of such loss. Prerequisite: Information Security 3313 with a grade of “C” or higher.
350V Special Topics in Information Security (1-3)
Offered on demand
Selected topics from the field of information security. The course may be either lecture or laboratory oriented depending upon the topic selected. The study represents an in-depth approach to specific areas of interest to the students. Repeatable for credit with director’s approval. Prerequisite: Consent of the instructor.
4053 Senior Seminar in Information Security (3) SP
Required of all information security majors in their senior year. Assessment of degree to which information security program outcomes have been achieved; reflection on, and synthesis of, information security academic experience; preparation for transition to professional employment or graduate school. Prerequisites: Senior standing in information security and 15 hours of SEC courses.
4193 Ten-Day Travel Course in Information Security (3)
The travel course is designed to give students insight into various organizations’ operations and how they handle the several aspects of information security. Students will observe the security of the physical plant, how Human Resources protects data by making informed hiring decisions, how data is secured as well as networks and communications. Note: This course is offered during Wintermester and is offered on demand at additional cost. Prerequisites: Senior standing in information security and 15 hours of SEC courses. Travel, 3 hours.
4313 Database Security (3) F
Security challenges and threats in database systems and state-of-the-art security technologies, including multi- level security, covert channels, and security measures for relational and object-oriented database systems. In addition to the security issues, the courses addresses issues related to distributed databases and current technologies, such as service oriented architecture, cloud computing, etc. Prerequisites: Computer Science 2243 and Information Security 3113, 3323 with grades of “C” or higher.
4323 Network Security (3) SP
Advanced knowledge of network security. Topics include design and implementation of some important public key systems: RSA and Elliptic Curve algorithms; concepts of quantum cryptography; quantum computing and cryptography; wireless computing and cryptography; design, implementation and configuration of firewalls in depth; design, implementation and configuration of intrusion detection systems; prevention systems; advanced network security architectures; advanced wireless security; principles and practices; security in trusted-based computing environments; and quantum cryptography. Prerequisite: Information Technology 3323 and Information Security 3323 with grades of “C” or higher.
Information Technology (IT)
1123 Future of Computing (3) F, SP
Cutting-edge trends in computing. Introduction to programming using a scripting language. Societal and ethical use of computers. Lecture, 3 hours. Computer upgrade fee: $90.
1213 Graphic Design Studio (3) F
Basics of graphic design using the Adobe Creative Suite of applications. Integration of design fundamentals with core Adobe Creative suite methodologies: Photoshop, Illustrator, InDesign, Dreamweaver and Flash. Lecture, laboratory, 3 hours.
2043 Information Technology Applications (3) F, SP
Emphasis on using the computer as a decision-making tool. Theory and applications of various software packages, including word processing, electronic spreadsheets, databases and presentation software. Prerequisites: None. Lecture/laboratory, 3 hours.
2223 Web Application Development I (3) F, SU
Survey of Web development techniques. Emphasis on developing and maintaining websites with topics including basic Web site design, HTML, XHTML, and CSS coding. Use of content management systems (CMS) and software packages such as Photoshop. Prerequisites: None. This course may satisfy the SALT Tier II requirement.
2233 User Interface Design (3) SP
Provides an introduction to human-computer interface design and evaluation with an emphasis on graphical user interfaces for software products. Covers design principles and theory, web usability and selected basic research in the areas of human factors and human cognition. Prerequisite: IT 2223 with a grade of “C” or higher.
3121 Fundamentals of Database Concepts and Data Analytics (1) SU
Leveling course for graduate students with no prior background in database systems. Model organization data and business rules, logical and physical design of relational databases, data warehousing, data mining, and data administration. Prerequisite: Application to a master’s program in the School of Computing and Informatics.
3131 Fundamentals of Data Communications and Network Management (1) SU
Leveling course for graduate students with no prior background in database systems. Concepts and terminology of data communications, network design, client/server architecture, distributed information systems with focus on communications architecture and management. Prerequisite: Application to a master’s program in the School of Computing and Informatics.
3223 Web Application Development II (3) SP
3233 Web Server Technologies (3) F
Application design using server technologies to transfer data from websites to and from databases. Topics include: scripting languages such as ASP, PHP, data structuring languages such as XML and other server technologies. Prerequisites: IT 2233, CS 1213, and CS 2243 with grades of “C” or higher.
3313 Network Principles (3) F, SP
Overview of current computer network theory and practice. Hardware requirements, network media and topologies, protocols and access methods, the Open Systems Interconnection (OSI) and internet models. Prerequisites: CS 1213 with a grade of “C” or higher.
3323 Wireless Networks and Mobile Systems (3) F
Introduction to wireless networks and link protocols, mobile networking including support for the Internet Protocol suite, mobile middleware, and mobile applications. Prerequisite: IT 3313 with a grade of “C” or higher.
3333 Network Administration (3) F
Administration of peer-to-peer and client/server networks. Hands-on experience with commercial client and server software. Topics include pre-installation planning, network installation, network software architecture, server configuration, client configuration, profiles and logon scripts, user account management, policies, resource sharing and security, disk management, remote access, backup and recovery, performance monitoring and network optimization. Prerequisite: IT 3313 with a grade of “C” or higher.
3343 Database Administration (3) SP
Database (e.g. Oracle) creation, including table spaces, user accounts, views, indexes, and other objects necessary to support an application. Understanding the internal structures and organization of database systems (e.g. Oracle). Account maintenance, data import and export, system backup, and performance tuning and monitoring. Prerequisite: CS 2243 with a grade of “C” or higher.
3413 Systems Analysis and Design (3) F
Introduction to analysis and design techniques, project management tools, data collection tools and system documentation tools. Communication skills are emphasized. Proper input/output design techniques, database, etc. are included in selection of appropriate implementation. Evaluation of hardware/software options relating to feasibility. Prerequisite: CS 2243 with a grade of “C” or higher.
3423 Project Management (3) SP
Design and implementation of realistic information system projects while working in a team environment. Prerequisite: IT 3413 or SENG 3223 with grades of “C” or higher.
350V Special Topics in Information Technology (1-3)
Offered on demand
Selected topics from the field of information technology. The course may be either lecture or laboratory oriented depending upon the topic selected. The study represents an in-depth approach to specific areas of interest to the students. Repeatable for credit with director’s approval. Prerequisite: Consent of the instructor.
4053 Senior Seminar in Web Development (3) SP
Required of all web application development majors in their senior year. Assessment of degree to which web application development program outcomes have been achieved; reflection on, and synthesis of, web application development academic experience; ethical- professional- creative expectations for the practicing web developer; preparation for transition to professional practice. Prerequisites: Senior standing in web application development and 30 hours of IT courses.
4323 Modern Telecommunications (3) SP
Comprehensive overview, including current status and future directions. Topics include review of evolution of telecommunications; voice and data services; basics of signaling, digital transmission, network architecture, and protocols; local area, metropolitan, and wide area networks and narrow band ISDN; asynchronous transfer mode and broadband ISDN; and satellite systems, optical communications, cellular radio, personal communication systems, and multimedia services. Provides examples of real-life networks to illustrate basic concepts and gain further insight. Prerequisite: IT 3323 with a grade of “C” or higher.
4423 Management of Information Technology (3) F
The role of information technology in organizations and their strategic use for providing competitive advantage through the use of real-world case studies. Use of critical thinking skills to explore methods of using information systems to increase market share in organizational settings. Prerequisites: Junior standing and IT 3413 with a grade of “C” or higher.