Division of Computer Science

Website: https://twu.edu/computer-science/

Division Lead: David Gardner, Associate Professor
Location: MCL 302

Phone: 940-898-2163
Fax: 940-898-2179
E-Mail: mathcs@twu.edu

The Division of Computer Science offers programs leading to the degrees of Bachelor of Science and Master of Science.

Undergraduate Degrees Offered

Computer Science

The baccalaureate program in Computer Science is intended to prepare the student for further work in computer science at the graduate level, for employment as a computer scientist, or for employment in a computer science-related area in industry or government.

Informatics

The baccalaureate programs in Data Science and Informatics, and Health Informatics prepare students for graduate study in Informatics-related disciplines or for employment in high-demand areas such as data science, business, and healthcare informatics. With a adaptable, interdisciplinary, and inter-professional approach, the two programs are offered in a hybrid learning environment. The program is delivered collaboratively by Academic Components including Computer Science, Nursing, Health Studies, Kinesiology, and Library and Information Studies.

Special Requirements

A Computer Science major requires a minor of at least 18 semester credit hours of which a minimum of 6 semester credit hours must be upper-division. Students may choose a minor from any offered at the university. Informatics majors will choose a minor in either Data Science or Community Informatics. Health Informatics majors will choose a minor in either Clinical Applications or Health Studies.

Only courses in which a grade of C or higher is received may be counted as part of a Computer Science, Informatics, Health Informatics major or minor.

Admissions

All applicants must meet the general undergraduate admission requirements.

Faculty

*DARWISH, OMAR, Assistant Professor of Computer Science, B.S., Jordan University of Science and Technology, Jordan; M.S., Jordan University of Science and Technology, Jordan; D.S., Towson University
*GARDNER, DAVID M., Associate Professor of Computer Science, B.B.A., University of North Texas; M.S., University of North Texas; Ph.D., University of North Texas
*GRATCH, JONATHAN, Associate Professor of Computer Science, B.A., Texas Christian University; M.F.T., Bond University, Australia; Ph.D., University of North Texas
*XU, WEN, Associate Professor of Computer Science, B.Eng., Dalian University of Technology, China; M.Eng., Dalian University of Technology, China; Ph.D., The University of Texas-Dallas
*ZHANG, JIAN, Professor of Computer Science; Division Lead of Computer Science, B.S., Hefei University of Technology, China, P.R.; M.S., Tulane University; Ph.D., Tulane University

Asterisk (*) denotes Graduate Faculty status.

Courses

CSCI 1203. Computing Skills for a Digital World. (TCCN COSC 1301) Computer systems, their structure, operating systems (OS), and applications; internet and the World Wide Web; and the current state of technology and implications for the future. Software packages, such as: word processing, presentation software, spreadsheets, graphics, and databases. Does not apply to a major in computer science. Three lecture hours a week. Credit: Three hours.

CSCI 1421. Programming Fundamentals I - Laboratory. Co-requisite: CSCI 1423. Two laboratory hours a week. Credit: One hour.

CSCI 1423. Programming Fundamentals I. (TCCN COSC 1436) Introduction to the fundamental concepts of structured and Object Oriented programming. Topics include software development methodology, data types, control structures, functions, arrays, files, classes, program testing and debugging techniques. Co-requisite: CSCI 1421. Three lecture hours a week. Credit: Three hours.

CSCI 1513. Introduction to Informatics. Components of informatics: people, information, and technology. Topics include user-centered data collection and information generation, impact of technologies in people's lives, security and ethics issues, and interprofessional applications such as healthcare, nursing, and business informatics. Prerequisites: Computer literacy and experience with data analysis applications such as spreadsheet software. Three lecture hours a week. Credit: Three hours.

CSCI 2003. Software Systems Design and Tools. Systematic study of program design, development techniques, and programming tools. Use of command-line interface, build-management tools, and version-control systems. Software system design methods and tools, web-based interface design, and web-based database access and implementation. Students majoring in Computer Science, Informatics, or Health Informatics may not count this course in their program if they have taken CSCI 2493. Prerequisite: Permission of instructor. Three lecture hours a week. Credit: Three hours.

CSCI 2443. Computer Organization and Machine Language. (TCCN COSC 2425) Basic theory of computer organization. Reviews of the mechanism of the machine cycle, digital representation of data and instructions. Introduction to assembly (machine) language, assemblers, loaders, macros, subroutines, and linking. Prerequisite: CSCI 1423. Three lecture hours a week. Credit: Three hours.

CSCI 2493. Programming Fundamentals II. (TCCN COSC 1437) Advanced topics include object oriented problem solving, software design, methodology and development; introduction to basic principles of algorithm analysis and design, searching and sorting techniques, recursion. GUI design and development, data structures and software engineering. Prerequisites: CSCI 1421 and CSCI 1423. Three lecture hours a week. Credit: Three hours.

CSCI 2513. Information Security and Ethics. Security and ethical issues important to informatics professionals. Emphasizes ethical decision-making, legal and social responsibility, and security threats and countermeasures. Topics include information security, ethics, limits, and effects of computing in informatics fields. Prerequisite: Computer literacy. Three lecture hours a week. Credit: Three hours.

CSCI 3002. Advanced Computing Technology. Advanced applications for students preparing to enter careers in training or education that utilize computer-based technologies. Includes integration of software packages in a project-oriented, real-world environment. Introduction to Web-based client/server systems, databases, distributed computing, application development with object-based programming, mark-up languages such as HTML, and scripting languages. Creation of graphical, animated, multi-media-based, audio-intensive, database-intensive, network-based products. Prerequisite: Computer literacy. One lecture and two laboratory hours a week. Credit: Two hours.

CSCI 3013. Applied Computational Thinking. Application and programming of software to engage computational thinking approaches to scientific processes: understanding what can be computed and its use to solve, model, analyze, and visualize problems scientifically. Explore a broad array of programming and software tools to create and modify models. Three lecture hours a week. Credit: Three hours.

CSCI 3053. Data Structures. Introduction to the representation of information; data objects, classes, and structures; string processing; searching and sorting; stacks and queues; hash coding; lists, trees, and manipulation of data structures. Prerequisites: CSCI 2493 or CSCI 2003. Three lecture hours a week. Credit: Three hours.

CSCI 3103. Applied Computer Graphics. Evaluation and use of 2D and 3D graphics software for presentations and visualization; study of computer animation and programming techniques for use in Web-based applications and in computer games; analysis of file structures used for computer graphics images and methods of acquiring and manipulating graphic images. Prerequisite: CSCI 2493 or CSCI 2003. Three lecture hours a week. Credit: Three hours.

CSCI 3113. Fundamentals of SAS Programming. SAS and SAS programming. Focuses on the use of Base SAS and internal procedures to generate queries and reports, to access local data sources, to create user-defined data formats, to generate descriptive statistics and tabular reports. Reviews elementary programming techniques to solve problems related to data analysis, list reports, t-test, ANOVA, regression analysis, data clustering, and data mining. Prerequisite: MATH 1713 or equivalent. Three lecture hours a week. Credit: Three hours.

CSCI 3313. App Development for Mobile Devices. Overview of mobile application development using a range of technologies including software developers' kits, object-oriented programming, and mobile interaction design principles. Prerequisite: CSCI 2493 or CSCI 2003. Three lecture hours a week. Credit: Three hours.

CSCI 3323. Robotics Design and Development. Basic concepts of robotics including kinematics, localization, motion planning, and sensors. Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 3353. Interactive Digital Art. Exploration of microcontrollers and computers as tools for interactive artistic expression; investigation of technical issues, programming, and the use of sensors and other input to create audience interfaces; and examination of conceptual issues related to current work in the field of Emergent Media; includes team interaction between students in Computer Science and Art/Performing Arts. Two lecture and two laboratory hours a week. Credit: Three hours.

CSCI 3373. Geographic Information Systems. Configuration, usage, and management of geographic information systems to gather, process, interpret, visualize, and contextualize data from varied disciplines. Topics include API usage, visualization, scripting, data processing and analysis, web and mobile access, and presentation.  Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 3413. Software Engineering. Introduction to the concepts, principles, and design issues in software engineering. Planning, designing, creating, testing, and maintaining efficient and robust software systems. Modeling and simulation of systems in organizations and systems flow charting. Prerequisite: CSCI 3053. Three lecture hours a week. Credit: Three hours.

CSCI 3423. Database Management. Organization and retrieval techniques for computer-based information systems, techniques of design, implementation, and utilization of database management systems. Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 3441. Digital Logic and Computer Architecture - Laboratory. Co-requisite: CSCI 3443. Two laboratory hours a week. Credit: One hour.

CSCI 3443. Digital Logic and Computer Architecture. An introduction to the concepts of digital logic, number systems, and codes. Digital circuit design, combinatorial logic design, decoder, multiplexers, adders, sequential design of flip-flops, latches, counters, and shift registers. Elements of CPU arithmetic, architecture, and instruction sets provide the basic concepts associated with computer architecture. Prerequisite: CSCI 2443 or equivalent, and advanced standing. Co-requisite: CSCI 3441. Three lecture hours a week. Credit: Three hours.

CSCI 3503. Operating Systems. Computer system and operating system architectures, processes, inter-process communication and synchronization, mutual exclusion, deadlocks, memory, CPU scheduling, file systems, I/O device management, and security. Prerequisite: CSCI 2443 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 3513. Information Systems Project Management. Technical and behavioral aspects of information systems project management. Topics include the knowledge areas, standards, processes, and professional responsibility as established by the Project Management Institute (PMI), and their application in managing informatics projects. Prerequisite: CSCI 1513 or CSCI 1423, or equivalent. Three lecture hours a week. Credit: Three hours.

CSCI 3603. Foundations of Data Science. Introduction to data science concepts including data management, data manipulation, data analysis techniques, decision making from rich data sets, information visualization, data mining, and machine learning. Programming, data manipulation, and modeling software. Prerequisites: CSCI 3423 and MATH 1713, or equivalents. Three lecture hours a week. Credit: Three hours.

CSCI 3613. Algorithm Analysis and Design. Techniques for design of efficient algorithms and their performance. Design of algorithms that operate on common data structures including sorting and searching. Advanced design and analysis techniques and advanced graph algorithms. Prerequisite: CSCI 3053. Three lecture hours a week. Credit: Three hours.

CSCI 3703. Interface Design and Development. Design, development, and evaluation of computer/technical device user interfaces in their various forms. Usability, accessibility, efficiency, transferability, and maintainability. Theory, practice, and discipline-grounded applications. Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 3713. Fundamentals of Cryptography. Basics of cryptographic techniques used in computer security. History of cryptography, symmetric and asymmetric encryption systems, message integrity, digital signatures, and hiding information in images. Prerequisite: CSCI 2513. Three lecture hours a week. Credit: Three hours.

CSCI 3803. Website Development. Introduction to the creation and development of websites with markup languages, styles, scripting languages, and dynamic content; includes multimedia, forms, adaptive page layout, navigation, and content. Web authoring software. Site architecture, screen, and page layout. Site navigation, color templates, and frontend technologies. Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 4303. Advanced Modeling and Visualization. Exploration of techniques and algorithms used in the modeling and visualization process. Evaluation of the effectiveness of advanced features of spreadsheet, graphics, and statistics packages in processing large volumes of data. Prerequisites: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 4311. Seminar in Computer Science. Capstone course. Compilation of a professional portfolio, completion of a multifaceted project on a current issue in or application of computer science, development of skills in defining problems and opportunities, and generation of strategies and solutions for those problems. Requires a written component, an oral presentation of project, and an exit exam. Prerequisite: 24 hours of course work in computer science or permission of instructor. One seminar hour a week. Credit: One hour.

CSCI 4313. Networking and Data Communication. Introduction to hardware, software design, and protocols used in networking and data communication. Depending on emphasis, topics will be selected from architectures, OSI Reference Models, transmission media, software design, LANs, performance modeling, and other related subjects. Prerequisite: CSCI 2003 or CSCI 2493. Three lecture hours a week. Credit: Three hours.

CSCI 4343. Digital Forensics. Methods of investigation, information acquisition, and management of Internet and computer forensics. Record-searching, note taking and report writing, and use of scientific methodology in Cyber investigations. Tools and techniques for forensic analysis of computers, networks systems, and mobile devices. Prerequisite: CSCI 3423. Three lecture hours a week. Credit: Three hours.

CSCI 4353. Advanced Interactive Digital Art. Advanced development of interactive digital art technologies in terms of artistic concepts, physical presentation, and the use of electronic components and code; involves iterative development of participatory work for public exhibition; teaches organizational and leadership skills for working in creative teams. Prerequisite: CSCI 3353. Two lecture and two laboratory hours a week. Credit: Three hours.

CSCI 4463. Ethical Hacking and Systems Defense. Technical study of offensive and defensive techniques for protecting cyber assets. Security testing, risk mitigation techniques, and threat response. Penetration testing theory, techniques, and tools; network, systems, and application vulnerability scanning; risk analysis and response; and intrusion detection and response. Prerequisites: CSCI 3423 and CSCI 4313. Three lecture hours a week. Credit: Three hours.

CSCI 4483. Digital Trust and Privacy. Digital trust concepts built upon new technologies such as cryptography, distributed systems, and blockchain. Potential impacts on financial services, government, contracting, identity management, and other applications. Prerequisite: CSCI 3713. Three lecture hours a week. Credit: Three hours.

CSCI 4513. Data Warehousing. Concepts, principles, and tools for designing, implementing, and using data warehouses. Includes constructs such as operational data store (ODS), data warehouse, data mart, and their components. Roles and responsibilities in the design and implementation of a data warehouse; management guidelines and techniques; requirements gathering; dimensional modeling; Extract, Transform, and Load (ETL) architecture; data management; security; analytical reporting concepts; and recent trends in the data warehouse domain. Prerequisite: CSCI 3423. Three lecture hours a week. Credit: Three hours.

CSCI 4533. Trends and Issues in Computer Science. Focuses on contemporary issues in computer science by addressing the current designs in both software and hardware. Topics of specialized nature such as parallel algorithms, parallel architecture, computer performance, network security, social impact, history, and the like. May be repeated for credit. Three lecture hours a week. Credit: Three hours.

CSCI 4623. Big Data and High Performance Computing. Big data, the challenges its analysis presents, the role of high performance computing in big data analytics, and the tools and techniques used in big data scenarios, (e.g. statistical software, NoSQL, MapReduce and Hadoop). Exploration of case studies in varied application domains. Prerequisites: CSCI 3423 and statistical software knowledge. Three lecture hours a week. Credit: Three hours.

CSCI 4723. Machine Learning. Theories and algorithms of machine learning and artificial intelligence, with emphasis on how they are used to solve real world problems from diverse application areas. Searching, knowledge representation and reasoning, machine learning algorithms, and rule-based systems. Prerequisite: CSCI 3053 or CSCI 4823. Three lecture hours a week. Credit: Three hours.

CSCI 4803. Programming for the Web. Creation and development of websites with scripting and programming languages focusing on backend technologies to generate dynamic content; application of structured and Object-oriented programming principles, design, implementation, testing, and evaluation techniques. Prerequisites: CSCI 3803 or equivalent. Three lecture hours a week. Credit: Three hours.

CSCI 4823. Principles of Data Mining. Methodologies, technologies, mathematics, and algorithms of data mining; nontrivial extraction of implicit, previously unknown, and potentially useful information from data; analysis of algorithms which merge knowledge from statistics, machine learning database, and computer science; and application to real data sets. Prerequisites: CSCI 2003 or CSCI 2493, and Statistical software knowledge. Three lecture hours a week. Credit: Three hours.

CSCI 4903. Special Topics. Variable content in computer science . Three lecture hours a week. Credit: Three hours.

CSCI 4911. Independent Study. Individual study in computer science. Credit: One hour.

CSCI 4913. Independent Study. Individual study in computer science. Credit: Three hours.

CSCI 4923. Capstone in Interprofessional Informatics. Culminating organization and/or community-based interdisciplinary/interprofessional project supported through informatics and technology and applied to a specific domain to demonstrate knowledge and skills acquired in the informatics or health informatics program. Prerequisite: Completion of all but the last 24 hours (SCHs) of the program. Credit: Three hours.

CSCI 4951. Internship. Credit: One hour.

CSCI 4953. Internship. Credit: Three hours.

CSCI 4956. Internship. Credit: Six hours.