Computer Science (CSC)


CSC 225. Computer Programming Concepts I. 3 Hours.

Structured programming techniques. Emphasis on control structures, procedures, simple data types, and structured data types, including arrays, records, and files. Assigned problems require considerable time in the computer lab. Prior programming experience is recommended. Course Information: IAI Major Code: CS 911.

CSC 275. Computer Programming Concepts II. 3 Hours.

Extensive top-down design principles to solve non-trivial problems. Emphasis on advanced array applications, dynamic storage, and classes. Programming assignments include implementation of lists, stacks, queues, and recursions. Course Information: Prerequisite: CSC 225. IAI Major Code: CS 912.

CSC 302. Discrete Structures. 4 Hours.

This course is designed to introduce the participants to the topics from discrete structures that are relevant to computer science. Topics covered are not limited to number systems, sets, logic, functions and relations, combinations, permutations, probability and statistics. Course Information: Prerequisite: C or better in college algebra. This course fulfills a general education requirement at UIS in the area of Mathematics (IAI Code: M1905) or UIS: Mathematics Skills. IAI Major Code: CS 915.

CSC 305. Entrance Assessment. 0 Hours.

Evaluation of computer science knowledge on entering the program. CSC 305 must be taken during the student's first semester of enrollment. Course Information: Credit/No Credit grading only.

CSC 315. RoboEthics. 4 Hours.

An overview across time, continents and disciplines of robots and cyborgs, which are challenging the definition of "person". Students will read contemporary literature in computer science, philosophy and science fiction, creating original works that explore policies/perspectives on potential communities that include humans and robots.

CSC 316. ECCE: Wired Perspectives. 4 Hours.

This course examines global power inequities such as global North/South, first world/third world, developed and underdeveloped communities. It promotes knowledge and appreciation of the contributions of understudied and undervalued cultures in developing countries. It examines inequalities in resources in a global context. The vehicle this course uses in this discourse is the digital divide, the dichotomy between the global wired and the global tired. Course Information: This course fulfills an Engaged Citizenship Common Experience requirement at UIS in the area of Global Awareness.

CSC 317. Software Packages. 2 Hours.

A large part of computing today is accomplished through general programs designed to handle a wide range of problems rather than through programs designed to solve a specific problem. This course covers these general programs (software packages) from the viewpoint of the task to be performed and addresses how a specific package can be used to accomplish the job. Examples are taken from spreadsheet, database, and the Windows operating system. Considerable time in the computer lab is required.

CSC 318. Computer Literacy. 4 Hours.

Introduction to computers for personal and professional use. A course of general interest, which builds experience with personal computer software, including word processing, spreadsheet, database, and electronic communication applications; information retrieval from the Internet; and fundamental computer literacy. Considerable time in computer lab is required.

CSC 319. Computer Programming. 4 Hours.

An introduction to structured programming. Emphasis on control structures, simple data types including arrays, and creating simple Windows applications. Assigned problems require considerable time in the computer lab. For students who do not intend to major in computer science. Course Information: Prerequisite: CSC 318 or equivalent computer experience with Windows applications.

CSC 320. Introduction to HTML/Web Development. 4 Hours.

This course is designed to introduce a student to the principles of publishing on the World Wide Web (WWW). The course is designed to be platform independent and will enable a student to create "web pages" on any server on the Internet that runs a standard http server. The focus will be on the background code (Hyper-Text Markup Language) not on editors or programs that convert other types of documents into html.

CSC 321. Intermediate HTML Design and Usability. 4 Hours.

Introduces students to basic HTML programming and to a number HTML editors. Special emphasis will be made on the use of Dreamweaver, a Macromedia product, rated among the best HTML editors. Course Information: Prerequisite: CSC 320.

CSC 366. Introduction to Networking. 4 Hours.

The course provides an introduction to fundamental concepts of computer networking with practical applications. Topics include data communications, networking technologies, OSI model, Internet architecture, LAN, WAN, TCP/IP layers and protocols, network management. Course Information: Prerequisites: CSC 275.

CSC 367. Introduction to Cybersecurity. 4 Hours.

This course introduces the fundamental concepts of cybersecurity, common cybersecurity vulnerabilities and threats, and techniques and tools for detecting and defending against cyber-attacks. It teaches how to model threats to computer systems.

CSC 368. Systems Programming Languages. 4 Hours.

Design principles and implementation of systems programming languages. Topics include syntax data types, control structures, storage management. Four systems programming software language tools will be studied: shell scripts, Perl, PHP, SQL. Class activities and hands-on laboratories. Typical laboratories and class assignments, repetitive tasks, scheduled file maintenance, log file analysis, electronic administrator notification. Course Information: Prerequisites: CSC 275.

CSC 376. Computer Organization. 4 Hours.

Introduction to elementary computer architecture and assembly/machine language. Emphasis on the fetch-execute cycle and CPU organization, binary information representations, combinational logic, and sequential circuits. An overview of the memory hierarchy and I/O interfaces included as time permits. Course Information: Prerequisite: CSC 275 and CSC 302. CSC 302 may be taken concurrently.

CSC 385. Data Structures and Algorithms. 4 Hours.

Object-oriented software design including sorting and searching algorithms. Implementation of trees, graphs, and other advanced data structures. Algorithm analysis of running times and storage requirements. Course Information: Prerequisites: CSC 275, CSC 302, MAT 113 or MAT 115, MAT 121.

CSC 387. Foundations of Computer Science. 4 Hours.

An overview of selected computer science topics: computers and society, software engineering, file structures, database structures, artificial intelligence, theory of computation, and human-computer interaction. Topics are selected to complement material in the core computer science curriculum. Course Information: Prerequisite: CSC 275.

CSC 388. Programming Languages. 4 Hours.

Design principles and implementation of computer programming languages. Topics include syntax, data types, control structures, storage management, and binding. Four programming language paradigms studied: imperative, object-oriented, functional, and logical. Languages studied may include C#, Smalltalk, Java, LISP, and Perl. Course Information: Prerequisite: CSC 385.

CSC 389. Introduction to Operating Systems. 4 Hours.

This course explores operating system (OS) concepts, design, and implementation. Topics: OS structures, processes, threads, process synchronization, CPU scheduling, memory management, virtual memory file systems, I/O operations, protection, security. Course Information: Prerequisites: CSC 275, CSC 302, MAT 113 or MAT 115, MAT 121, CSC 385, CSC 376. CSC 385 and CSC 376 may be taken concurrently.

CSC 399. Tutorial. 1-12 Hours.

Intended to supplement, not supplant, regular course offerings. Students interested in a tutorial must secure the consent of the faculty member concerned before registration and submit any required documentation to him or her. Course Information: May be repeated to a maximum of 12 hours if topics vary.

CSC 405. Exit Assessment. 0 Hours.

Evaluation of computer science knowledge on graduation. Exit assessment helps students assess the body of knowledge they've attained and helps the program revise its curriculum. CSC 405 must be taken during the student's final semester before graduation. Course Information: Credit/No Credit grading only.

CSC 410. Current Topics for Professional Development. 1-4 Hours.

Includes materials on current topics that are identified as being on the cutting-edge of computer science. Descriptions change according to topic. CSC majors need prior approval to apply this course to their degree requirements. Course Information: May be repeated if topics vary. Students may register in more than one section per term.

CSC 421. Introduction to Computer Networks. 4 Hours.

Includes CCNA1 & CCNA2 Cisco Networking Academy. Emphasis on LANs, network design, virtual circuits, protocols, routing algorithms, network hardware devices. IP addressing. Labs.

CSC 422. Routing Configuration in WAN Environment. 4 Hours.

Includes CCNA3 & CCNA4 Cisco Networking Academy. Emphasis will be placed on configuring routers and switches to operate in a secure WAN environment. Includes configuring access lists, remote access and VPNs. Course Information: Prerequisite: CSC 421.

CSC 430. Foundations of Network Security and Information Assurance. 4 Hours.

Students learn to identify system resources at risk to malicious attacks. Network tools designed to detect and prevent unauthorized access are covered. Demonstrations of tools used to assess and identify vulnerability including penetration analysis, scanners and probes are covered. Case studies and exploit scenarios give students hands-on practice reducing network security threats. Course Information: Prerequisites: CSC 366.

CSC 431. Network Security & Computer Ethics. 4 Hours.

This course introduces the basics of network security while describing how the technical decisions associated with network security interact with the values of individuals, organizations, and society. The course includes methods of avoiding, detecting, and analyzing intrusions. Students will examine tradeoffs inherent in security policies, behaviors, and protocols.

CSC 432. Hardware/Firewall Security Implementation. 4 Hours.

The course focuses on overall security processes with particular emphasis on security policy design and management. This course also provides a survey of security technologies, products and solutions. Labs focus on firewall design, installation, configuration and maintenance of firewalls. Course Information: Prerequisite: CSC 421.

CSC 433. Intrusion Detection. 4 Hours.

Topics will include network and host based intrusion, detection, intrusion detection system implementation Schemes, IP packet analysis tools, schemes for analysis including rules and anomaly detection, and attack signatures. Several IDS tools will be explored by demonstration and exercises. These tools will include Windump, Ethereal, and Snort. Case reports of various recognized attacks will be studied.

CSC 436. Secure Programming. 4 Hours.

The course introduces the secure software development process including secure applications, writing secure code that can withstand attacks, and security testing and auditing. It focuses on the security issues a developer faces, common security vulnerabilities and flaws, and security threats. The course explains security principles, strategies, coding techniques, and tools that can help make code more resistant to attacks. Students will write and analyze code that demonstrates specific security development techniques. Course Information: Prerequisite: CSC 385.

CSC 437. Introduction to Cryptography. 4 Hours.

This course is an introduction to modern cryptography with the emphasis on the fundamental cryptographic primitives such as symmetric and public-key encryption schemes, secure hash functions, digital signatures, and pseudo-random number generators. It also covers basic security protocols such as origin and message authentication protocols. Course Information: Prerequisites: CSC 302 and CSC 367.

CSC 438. Systems Security and Information Assurance Capstone. 4 Hours.

This is the capstone course for the Systems Security and Information Assurance concentration in the Computer Science Bachelor's Degree. This course will provide a broad look at Information Security, examining the eight security domains as defined by (ISC)2, the sanctioning organization governing the Certified Information Systems Security Professional (CISSP) certification for information security professionals. Course Information: Prerequisites: CSC 366 and one additional security elective.

CSC 442. Internet in American Life. 4 Hours.

With far-ranging influences on commerce, education, news, entertainment, information, and more, the Internet has had an enormous impact on American society over the past decade. This course examines that impact with an emphasis on planning and public policy.

CSC 452. Web Design. 4 Hours.

Learn basic principles of web design and use HTML, XHTML, XML, CSS (Cascading Style Sheets), design and critic a variety of templates, etc. Topics include elements of good design, fonts, and typography, how to use color, graphics, images, multimedia formats, web layout basics, tackling web navigation, accessibility and usability, web design software, and learn HTML, XML, and CSS. Course Information: Prerequisites: CSC 275 or equivalent computer programming experience.

CSC 453. Web Development and Programming. 4 Hours.

Learn dynamic web page creation and server-side scripting that tailors the content toward the visitor and his or her preferences. A scripting language such as PHP will be taught to enable students to access databases for dynamic content. A comprehensive overview of the basics of PHP, covering important subjects such as control structures, operators, strings and string functions, arrays and array functions, predefined variables, I/O, cookies and sessions, and more. Course Information: Prerequisite: CSC 452.

CSC 454. Client-side Scripting. 4 Hours.

Learn to create Rich Internet Applications (RIAs) using JavaScript and XML (AJAX) in a new way to create fast, responsive user interfaces, and functionalities similar to windows desktop applications. Students will learn scripting in JavaScript and basics of XML. Topics will include XML basics, JavaScript basics, JavaScript objects, JavaScript cookies, JavaScript validations, XSLT, XML parsers, XML CSS, XML DOM, XML to HTML, and XML JavaScript. Course Information: Prerequisite: CSC 453.

CSC 463. Introduction to Distributed Computing. 4 Hours.

An introduction to the fundamental concepts and principles of distributed programming techniques. Topics include Java I/O, Interprocess Communications, Distributed Computing paradigms, TCP/IP, The Socket APL, client-server paradigm, Group Communication, Distributed Objects, Internet Applications, and advanced topics. Course Information: Prerequisite: CSC 385.

CSC 465. Windows Network Administration. 4 Hours.

The purpose of this course is to provide students with an organizational and technical look at network administration. Emphasis is placed on Microsoft Windows operating system. The laboratory assignments will involve a considerable amount of hands-on installation, account management, performance monitoring, security, troubleshooting. Course Information: Prerequisite: Familiarity with computer hardware/software.

CSC 470. Topics in Computer Science. 1-4 Hours.

Various topics; description changes according to topic offered. See course schedule for prerequisites. Course Information: May be repeated if topics vary. Students may register in more than one section per term.

CSC 471. Computer Ethics for Computing Professionals. 4 Hours.

Computer ethics explores the interaction between technical decisions and human values. We also study how computing and telecommunications impact society. This class is limited to computer science majors and students with equivalent backgrounds.

CSC 472. Introduction to Database Systems. 4 Hours.

Examine of file organizations and file access methods, as well as data redundancy. Studies various data models including relational, heretical, network, and object-oriented. Emphasis given to the relational data model SQL, the data definition and manipulation language for relational databases, is described, including database security. Course Information: Prerequisites: CSC 275.

CSC 476. Introduction to Microprocessors and Computer Architecture. 4 Hours.

Analysis and synthesis of combinational and sequential circuits, counters, and decoders. Details of computer organization as applied to microcomputers. Time permitting: control unit design, microprogramming, I/O channels, and memory systems. Course Information: Prerequisite: CSC 376.

CSC 477. Usability Engineering. 4 Hours.

Provides an analysis of the science and art of graphical user interfaces. Topics will include quantitative methodologies, user interaction, design imperative. Requires extensive Visual Basic programming. Course Information: Prerequisites: CSC 385.

CSC 478. Software Engineering Capstone. 4 Hours.

Study of the software life cycle with emphasis on design, documentation, and implementation. Team projects and technical communication skills are emphasized. Students should take this course within their last 12 hours of CSC course work. Course Information: Prerequisite: CSC 385.

CSC 479. Introduction to Artificial Intelligence. 4 Hours.

Problem solving methods, data representation and list processing, state-space search strategies, game playing programs, knowledge representation, logic and theorem proving, question answering systems, and natural language processing. Course Information: Prerequisite: CSC 385.

CSC 481. Introduction to Computer Graphics. 4 Hours.

Basic concepts, display hardware and techniques, raster graphics, 3-D graphics, and processing of pictorial information. Course Information: Prerequisite: CSC 275.

CSC 482. Algorithms and Computation. 4 Hours.

The course covers methods and techniques for designing efficient algorithms, analyzing their complexity and applying these algorithms to well-known practical problems and applications. Methods for recognizing and dealing with hard problems are studied. Course Information: Prerequisites: CSC 385, CSC 302, MAT 113 or MAT 115, MAT 121.

CSC 484. Introduction to Parallel Processing. 4 Hours.

Familiarizes students with the broad field of parallel computing and parallel algorithms, while giving hands-on experience with computing on a parallel architecture.

CSC 485. Object-Oriented Design. 4 Hours.

Study of object-oriented design and programming to solve problems. Topics include classes, inheritance, polymorphism, design notations, development environments, and a survey of languages. Java is used as the implementation language. Course Information: Prerequisite: CSC 385.

CSC 499. Tutorial. 1-12 Hours.

Intended to supplement, not supplant, regular course offerings. Students interested in a tutorial must secure the consent of the faculty member concerned before registration and submit any required documentation to him or her. Course Information: May be repeated to a maximum of 12 hours if topics vary.

CSC 501. Graduate Programming Practicum. 4 Hours.

The course teaches graduate object-oriented programming and development using Java. Students learn how to write, test, and debug advanced-level object oriented programs and how to implement various data structures using Java. Some top-down design principles are covered to solve non-trivial problems.

CSC 502. Problem-Solving Practicum. 4 Hours.

Students will learn key problem-solving skills for interviews for software engineering internships and full-time positions in industry. Students will be encouraged to synthesize the knowledge and the skills they have learned across different courses. Course Information: Prerequisites: CSC 501 or placement exam.

CSC 505. Graduate Summer Internship. 4 Hours.

The course allows students to explore careers and apply knowledge and skills gained in various classes in a work setting. It is intended as a hands-on learning experience to provide students with a number of valuable skills they can use upon graduation. It is not available to workers regularly employed by the company where the internship is proposed. It is available to both domestic and international students. Course Information: Prerequisites: CSC 502.

CSC 532. Introduction to Machine Learning. 4 Hours.

Machine learning explores the design and the study of algorithms that can learn from data or experience, improve their performance, and make predictions. The course provides an overview of many concepts, techniques, and algorithms in machine learning, including supervised learning, unsupervised learning, reinforcement learning, and neural networks. Course Information: Prerequisites: CSC 385.

CSC 533. Data Mining. 4 Hours.

This course teaches advanced techniques for discovering hidden patterns in the rapidly growing data generated by businesses, science, web, and other sources. Focus is on the key tasks of data mining, including data preparation, classification, clustering, association rule mining, and evaluation. Course Information: Course is restricted to MS CSC majors and MS DAT majors only. Prerequisites: CSC 385.

CSC 534. Big Data Analytics. 4 Hours.

This course teaches concepts and techniques in managing and analyzing large data sets. Focus is on big data management, storage solutions, query processing, analytics, and big data applications. Topics include: introduction to Hadoop and YARN, MapReduce, Apache Spark, Big Data Warehousing with Hive and Spark SQL, large scale recommender systems and Large Scale Clustering and Classification. Course Information: Prerequisites: CSC 385, CSC 472, CSC 532 (co-requisite).

CSC 535. Deep Learning. 4 Hours.

Deep learning is among the most used Artificial Intelligence methods and has numerous applications in various domains. This course provides applied and theoretical understanding of Artificial Neural Networks and deep learning. Students will use deep learning to tackle complex problems such as computer vision and language understanding. Course Information: Prerequisites: CSC 385, 532 and knowledge of linear Algebra, calculus and probability.

CSC 540. Graduate Research Seminar. 4 Hours.

Students will investigate research and writing techniques in the field of computer science. Students must produce a formal document that demonstrates they have attained an appropriate understanding of professional ethics and research skills required of IT professionals. CSC 540 serves as the master's closure exercise and must be taken for a letter grade. NOTE: Students who have NOT made satisfactory progress in CSC 540 will be assigned a grade lower than B- and will have to register for and retake the course. Students who have made satisfactory progress in CSC 540, but have not completed the final course document can petition the Department of Computer Science to complete the remaining document by enrolling in CSC 541 Graduate Research Seminar Continuing Enrollment (zero credit hours, one billable hour) for a maximum of two consecutive non-summer semesters.

CSC 541. Graduate Research Seminar Continuing Enrollment. 0 Hours.

Refer to NOTE in course description for CSC 540. Course Information: May be repeated for a maximum of two consecutive non-summer semesters.

CSC 550. Master's Project/Thesis. 4 Hours.

An individual study to demonstrate the ability to formulate, investigate, and analyze a problem and to report results. Written report and oral presentation are required. Guidelines for completing this requirement are available from the CSC program and must be consulted before any work is begun. NOTE: If the project/thesis is not completed during the initial four-hour enrollment, students must register for CSC 551 for zero credit hours (one billable hour) in all subsequent semesters until the project/thesis is completed. Course Information: Credit/No Credit grading only. May be repeated to a maximum of 4 hours. Prerequisite: Approval of the project/thesis supervisor.

CSC 551. Master's Project/Thesis Continuing Enrollment. 0 Hours.

Refer to NOTE in course description for CSC 550. Course Information: May be repeated.

CSC 560. Directed Graduate Research. 4 Hours.

Students will work under the supervision of a graduate faculty member as a member of a research team. Students will complete assigned readings, literature reviews, conduct research and report research results. Students must have approval of the graduate faculty member supervising the research to enroll in the course.

CSC 561. NoSQL Databases. 4 Hours.

Traditional data management techniques (schema-driven databases) do not meet the need to manage the varying storage techniques and technologies used for today's data. NoSQL (Not only SQL) databases have emerged as a means of managing distributed, high-volume, complex data. This course will use a hands-on laboratory approach to explore the different types of NoSQL Databases. Course Information: Course is restricted to MS CSC majors and MS DAT majors only. Prerequisites: CSC 385 and CSC 472.

CSC 562. Data Visualization. 4 Hours.

This course is designed to help students acquire the knowledge and skills to analyze information and, more importantly, to draw conclusions from analysis. This course is not about using advanced mathematics to solve problems. It's about learning to use computer technology, especially visualization (graphs, histograms, pie charts), to look at and understand data in a more intuitive and visual manner. Course Information: Course is restricted to MS CSC majors and MS DAT majors only. Prerequisites: CSC 385.

CSC 563. Computer Cryptography and Digital Steganography. 4 Hours.

This course provides the fundamentals of modern cryptography and steganography. Cryptography is usually considered to be the art and science of scrambling a message in order to make it unreadable, whereas steganography is the art and science of hiding the very existence of the message. The course focuses on both theory and practice. Students will learn how to use Java to write cryptographic applications.

CSC 564. Computer Security. 4 Hours.

This course provides students with a background, foundation, and insight into the subject of Computer Security at a graduate level. It covers various attack techniques and defenses. The course surveys different threats to computer security and methods for preventing intrusions. We study how computer vulnerabilities arise and survey the controls that can reduce or block security.

CSC 570. Advanced Topics in Computer Systems. 1-4 Hours.

Topics vary. See course schedule for prerequisites. Course Information: May be repeated if topics vary. Students may register in more than one section per term.

CSC 572. Advanced Database Concepts. 4 Hours.

Study of the implementation of relational database management systems. Topics include database design algorithms, query implementation, execution and optimization, transaction processing, concurrency control, recovery, distributed query processing, and database security. One of the following advanced database topics will also be discussed: deductive databases, parallel databases, knowledge discovery/data mining, data warehousing. Course Information: Course is restricted to MS CSC majors and MS DAT majors only. Prerequisites: CSC 472.

CSC 574. Distributed Computing. 4 Hours.

This course covers advanced topics in computer operating systems with a special emphasis on distributed systems. Topics include middleware, naming and directory services, security, remote method invocation, concurrency, transactions, replication, and message passing. Course Information: Prerequisite: CSC 389.

CSC 577. Software Testing and Reliability. 4 Hours.

Advanced and classic models of testing software are reviewed and critiqued. Current practice and novel theories of reliability are studied, using primary computer science research literature. Some automated testing tools will be used. Course Information: Prerequisite: CSC 478.

CSC 578. Software Engineering. 4 Hours.

Problem analysis, system requirements specification, system design, testing methodologies, quality assurance, software maintenance, and automated documentation systems. Team project involving the analysis and creation of a design specification for and formal presentation of a significant software project. Course Information: Prerequisite: CSC 478.

CSC 581. Computer Graphics. 4 Hours.

Lighting models, ray tracing, radiosity, texture mapping, and other advanced rendering techniques for creating highly realistic images of three-dimensional scenes. Contemporary and classic articles from the computer graphics literature are studied. Course Information: Prerequisite: CSC 481.

CSC 582. Design and Evaluation of User Interfaces. 4 Hours.

Structured approach for designing graphical user interfaces that are easy to use. Empirical evaluation techniques are used to verify that the software is easy to use. Course Information: Prerequisite: CSC 385.

CSC 583. Network Programming. 4 Hours.

A historical and technical study of network programming. Emphasis is placed on various network protocols and on the TCP/IP protocol in particular. Assignments involve writing client/server code for Unix in the Java programming language. Course Information: Prerequisite: A working knowledge of Unix and the ability to program in Java.

CSC 599. Tutorial. 1-12 Hours.

Intended to supplement, not supplant, regular course offerings. Students interested in a tutorial must secure the consent of the faculty member concerned before registration and submit any required documentation to him or her. Course Information: May be repeated to a maximum of 12 hours if topics vary.