The following table shows which undergraduate courses are Required, and which are selective for the common Bachelor of Science in Computer Science, and for the 3 concentration areas: CSO – the Computer Systems Concentration, HCC – the Human-Centered Computing Concentration, and SE – the Software Engineering Concentration.
3 Hours. No graduation credit for students enrolled in a major offered by the Departments of Computer Science or Electrical and Computer Engineering. Introduction to computing; the Internet; Web; file systems; electronic mail; basic tools (such as editors, databases); programming concepts; computer ethics; security and privacy. Computer lab. Prerequisite: NONE
3 Hours. Introduction to computing resources and tools. Computer access, security, and responsibility. Navigation and communication. Networks; Internet resources. Applications. Programming languages, concepts and practice. Programming exercises. Prerequisite: NONE
3 Hours. Programming languages and program design; data types and operators, expressions, control structures, procedures and modularity. Language definition and programming laboratory. Prerequisite:CS 101 or consent of the instructor and credit or concurrent registration in Math 180.
4 Hours. Credit is not given for CS 107 if the student has credit in CS 101 or CS 102. Access and use of computing resources. Programming and program design. Problem solving. Data types, control structures, modularity, information hiding. Prerequisite: Credit or concurrent registration in Math 180.
3 Hours. Program design using FORTRAN: data types and operators; control structures; subprograms, file I/O; common storage. Engineering applications: matrix representations and operations; equation solutions Prerequisite: Credit or concurrent registration in Math 180.
3 Hours. Program design using C/C++: Data types and operators, control structures, functions, file I/O, arrays and structures. Engineering applications: Matrices, equation solution, MatLab. Programming assignments. Extensive computer use required. Prerequisite: Credit or concurrent registration in Math 180.
4 Hours. Credit is not given for CS 201 if the student has credit in MCS 261. Lists, stacks, queues, sets, hash tables, introduction to trees and graphs. Algorithm correctness and complexity, inductive proofs, logic. Programming projects. Prerequisite: Math 180 and a grade of C or better in CS 102 or inCS 107
3 Hours. Combinatorics; complex data structures: trees, heaps, and graphs. Sorting and searching algorithms. Programming projects. Prerequisite: Grade of C or better in CS 201
4 Hours. Credit is not given for CS 266 if the student has credit in ECE 265 or ECE 267 or ECE 366. Architecture from gate level up. Combinational and sequential logic. Logical minimization. Integer number systems, arithmetic. Datapath design. Finite state machines. Register-based architecture. Memory technologies. Prerequisite: CS 102
3 Hours. Regular sets and finite automata. Context-free languages and push-down automata. Parsing. Computability theory including Turing machines and decidability. Prerequisite: Grade of C or better inCS 201 and credit or concurrent registration in CS 202
2 Hours. Ethical, societal and environmental issues for computer professionals. Professional ethics, software ownership, unreliability, responsibility, privacy, computer crime, veracity, expert systems, workplace and health issues. Prerequisite: CS 202
4 Hours. Programming language semantics, scope, overloading, data abstraction, constructors. Procedural and object-oriented design, programming tools and environments. Interactive application structure and interface, windows, events, widgets. Prerequisite:CS 202
4 Hours. Credit is not given for CS 366 if the student has credit in ECE 265 or ECE 267 or ECE 366. A continuation of CS 266. Control-unit and I/O design; assembly language and machine programming; hardware control and I/O; memory hierarchy and caching. Prerequisite: CS 266
1 Hours. Techniques for effective presentation of computer science topics: terminology, organization, visual aides and delivery of technical talks; presentations and presentation evaluation required. Prerequisite: Engl 161 and CS 102
4 Hours. Operating systems issues, operations. Process execution, scheduling; memory management, virtual memory design; concurrent process coordination, properties: deadlock, mutual exclusion synchronization primitives; distributed systems issues; network design. Prerequisite: CS 201 and eitherCS 366 or ECE 267
3 Hours. Undergraduate Design/Research Prerequisite: Consent of the instructor
3 Hours. Same as Mathematical Computer Science 401. Design and analysis of computer algorithms. Divide-and-conquer, dynamic programming, greedy method, backtracking. Algorithms for sorting, searching, graph computations, pattern matching, NP-complete problems. Prerequisite: Grades of C or better in Stat 381 and MCS 360; or CS 202
3 Hours. Problem representation; rule-based problem-solving methods; heuristic search techniques. Application to expert systems, theorem proving, language understanding. Individual projects. Prerequisite: CS 202
3 Hours. Computer vision system design. Segmentation and representation of regions and boundaries; image filtering; object recognition; advanced topics (examples: texture, stereo, color); applications. Programming assignments. Prerequisite: CS 202 or MCS 360 or consent of the instructor
3 Hours. Design of natural language processing systems; part-of speech tagging, statistical and symbolic parsers; semantic interpretation; discourse and dialogue processing; natural language generation; applications. Prerequisite: CS 301 or MCS 441
3 Hours. course website. User interface design, implementation, and evaluation; user-centered design methodologies, windowing systems, I/O devices and techniques, event-loop programming, user studies. Programming projects. Prerequisite: CS 340
3 Hours. course website . Geospatial visualization, scientific visualization, medical visualization, information visualization, and social network visualization, interaction, data analysis, human factors, dynamic data, privacy, uncertainty, data transforms. Programming projects. Prerequisite: CS 202
3 Hours. Interdisciplinary teams will design, develop and demonstrate real-time interactive applications such as video games and computer-based museum installations. Topics will focus on emerging computer science techniques that are relevant to the development of these types of environments. Prerequisite: CS 107 and CS 201
3 Hours. Software life-cycle model, requirement specification techniques, large-scale software design techniques and tools, implementation issues, testing and debugging techniques, software maintenance. Prerequisite: CS 340
3 Hours. Extensive computer use required. Design and implementation of distributed object programs using middleware software standards; interface definition languages and programming language mappings; static and dynamic object communication mechanisms. Prerequisite: CS 340 and CS 385
3 Hours. Advanced concepts in software development: requirements engineering, cost estimation, risk analysis, extreme programming, regression test case selection, and design patterns. Software lab assignments required. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite: CS 440
3 Hours. Course Wiki. Credit is not given for CS 450 if the student has credit in ECE 433. Network protocols, algorithms, and software issues. Topics include the open systems interconnect model, data link, network and transport layers, TCP/IP, ATM, mobile networks. Prerequisite: CS 202 and CS 385, and either Stat 381 or Stat 401 or IE 342
3 Hours. Network protocols and their software. Examines OS network interface through network layers. Topics include routing, congestion control, fault tolerance, security, name servers, multicast, and performance. Prerequisite: CS 340 andCS 450
3 Hours. Credit is not given for CS 466 if the student has credit in ECE 466. Design of high performance computer architecture. Cost-performance; instruction sets; pipelining; memory hierarchy; I/O. Prerequisite: CS 366
3 Hours. Credit is not given for CS 469 if the student has credit in ECE 368 or ECE 469. Analysis and modeling of digital systems; hardware description languages; CAD tools for simulation, synthesis, and verification of computer systems. Project: a simple processor design. Prerequisite: CS 366
3 Hours. Same as Mathematical Computer Science 411. Language translation: lexical analysis, parsing schemes, symbol table management, syntax and semantic error detection, and code generation. Development of fully-functional compiler. Prerequisite: Grade of C or better in either CS 301 or MCS 441, and in either CS 202 or MCS 360 and CS 266
3 Hours. Data abstraction, classes and objects, messages and methods, polymorphism and dynamic binding, inheritance. Object-oriented design. Pure and hybrid object-oriented languages. Prerequisite:CS 340
3 Hours. Same as Mathematical Computer Science 415. Definition, design and implementation of programming languages. Syntactic and semantic description; variable bindings, control and data structures; parsing, code generation, optimization; exception handling; data abstraction. Prerequisite: MCS 261 and MCS 275; or CS 340
3 Hours. Database design, logical design, physical design. Relational, hierarchical and network databases. Recovery, concurrency control. Normalization. Prerequisite: CS 202
4 Hours. Concepts, design, and programming of multi-process and distributed systems; inter-process communications; fault tolerance; distributed programming semantics. Programming assignments and project required. Prerequisite: CS 385
3 Hours. Introduction to computer security. Techniques for secure programming of systems (avoiding stack smashing attacks, race conditions). Security and privacy issues in existing host systems including viruses, worms, sandboxing. Network security including TCP/IP security, firewalls and intrusion detection. Prerequisite: CS 385; CS 450 Recommended
3 Hours. Same as Art and Design 488. Principles of interactive computer graphics. Raster and vector display, techniques and hardware considerations. Introduction to two-dimensional and three dimensional rendering. Laboratory. Prerequisite: Credit or concurrent registration in CS 340
4 Hours. May be repeated for credit. Topics of mutual interest to a faculty member and a group of students. Offered as announced by department bulletin or the Timetable Prerequisite: Consent of the instructor.
4 Hours. No graduate credit for computer science majors. Special problems or reading by special arrangement with the faculty. Prerequisite: Consent of the instructor
4 Hours. Same as MCS 501. Continuation of CS 401 (same as MCS 401). Advanced topics in algorithms. Lower bounds. Union-find problems. Fast Fourier transform. Complexity of arithmetic, polynomial, and matrix calculations. Approximation algorithms. Parallel algorithms. Prerequisite: CS 401
4 Hours. Sequence alignment, motifs, RNA structure and protein secondary structure from sequence, phylogeny reconstruction, haplotype problem, gene expression, biological networks, pedigree and kinship reconstruction. Prerequisite: CS 401
4 Hours. Paths, circuits, trees, cutsets, planarity, duarity, matrices and vector space of graphs, directed graphs, coloring, covering, matching and applications to switching networks and computer science. Prerequisite: Consent of the instructor
4 Hours. Turing machines, undecidability, Rice’s theorem, recursively enumerable sets, complexity theory, hierarchy theorems, alternation, parallel complexity classes, complete problems. Prerequisite:CS 301
4 Hours. Predicate logic and resolution strategies, reasoning under uncertainty, incomplete information reasoning, state and change, planning, temporal reasoning knowledge representation, learning, advanced search techniques and current topics. Prerequisite:CS 411
4 Hours. Anatomy of expert systems, types of expert systems, architecture of an expert system, expert system tools, building an expert system; expert systems in the marketplace. Prerequisite: CS 411
4 Hours. Analysis of 3-D scene images. Shape from shading, texture, line drawings, and surface orientation. Surface representation methods and reconstruction of 3-D scenes. Design of knowledge-based vision systems and 3-D applications in robotics and industrial environments. Prerequisite: CS 415
4 Hours. Statistical techniques for Natural Language Processing, including maximum likelihood estimation, Hidden Markov Models, and probabilistic grammars; and their applications, including parsing, semantic inference, dialogue processing and summarization. Prerequisite: CS 421; or consent of the instructor.
4 Hours. The computer-user interface: media, languages, interaction techniques, user modeling. Human factors in software development. Theory, experimental methods, evaluation, tools. Project required. Prerequisite: CS 422
4 Hours. Principles of multi-media interface design for computer applications. Multi-disciplinary approaches to integrating text, still images, animation, and sound into human-computer interfaces. Prerequisite: CS 422 or consent of the instructor.
4 Hours.<a target=”_blank” href=”http://www.evl.uic.edu/aej/524″ title=”CS 524″>course website</a>.Current topics in scientific visualization, medical visualization, information visualization, volume rendering, isosurfaces. Project required. Prerequisite: CS 488 or CS 424 or consent of the instructor
4 Hours. course website. Principles of virtual reality and virtual environments: hardware, software, input and control devices, design issues, quantitative assessment of user performance. Prerequisite:CS 488 or consent of the instructor.
4 Hours. Formal methods; requirements and specification languages; program flow analysis; validation and verification; software metrics; program representations; software tools; software testing; software process. Prerequisite: CS 440 or consent of the instructor
4 Hours. Software configuration management; software quality assurance; software engineering economics; software factory; software reuse; computer-aided software engineering; software prototyping. Prerequisite: CS 540 or consent of the instructor
4 Hours. Fundamental concepts of distributed software. Task allocation algorithms, language concepts for concurrency and communication, analysis methods and tools, and formal models. Prerequisite: CS 440
4 Hours. Formal methods in concurrent and distributed systems, particularly temporal logic and automata for specifying and reasoning about security properties and real-time properties. Automated and manual techniques for checking correctness. Prerequisite: Consent of the instructor
4 Hours. Distributed computing systems terminology and design issues. Data communications protocols; distributed operating systems, resource management, and synchronization; security; database systems. Prerequisite: CS 366 and CS 385
4 Hours. Petri nets, methods and their applications to concurrent, distributed, parallel, and data-flow systems; logic programming and rule-based systems. Prerequisite: Consent of the instructor
4 Hours. Artificial neural networks for parallel computing including perceptrons, backpropagation and Kohonen nets, statistical methods in neural computing, Hopfield nets, associative memories, cognition and neocognition. Prerequisite: Consent of the instructor
4 Hours. Computer-aided physical design of integrated circuits; circuit partitioning and placement; floorplanning; global and detailed routing; timing optimization; general optimization tools: local search, constraint relaxation. Prerequisite: CS 401 andCS 466
4 Hours. Parallel processing from the computer science perspective. Includes architecture (bus based, lockstep, SIMD), programming languages (functional, traditional and extensions), compilers, interconnection networks, and algorithms. Prerequisite: CS 466
4 Hours. Builds on the fundamentals of transportation science and emphasizes its high-level computational aspects. Topics covered include database design and theory, spatial and temporal information systems issues and travel modeling. Same as CME 567 and UPP 567. Grade of B or better or concurrent registration in UPP 560. Open only to Ph.D. students; or consent of the instructor.
4 Hours. Instruction-level parallelism, multiple-instruction issue, branch prediction, instruction and data prefetching, novel cache and DRAM organization, high-performance interconnect, compilation issues, case studies. Prerequisite: CS 466
4 Hours. Use, design, and implementation of object stores. An object store enables object-oriented programming to be extended by storing objects on disk and communicating objects between processes. Prerequisite: CS 385, CS 480 and knowledge of C++, or consent of the instructor.
4 Hours. Same as IDS 511. Query processing in deductive databases and in distributed/parallel databases systems. Prerequisite:CS 480
4 Hours. Concurrency control; reliability, recovery, data integrity, database machines and current topics. Prerequisite: CS 480
4 Hours. Document retrieval, office automation. Optimal retrieval, relevance feedback, clustered search, construction of clusters, model of term weighting, thesaurus construction, multimedia data, handling of audio and video. Prerequisite: CS 480
4 Hours. Provide students with a sound knowledge in data and text mining tasks and techniques, as well as, ensure students ability to use this technology. Prerequisite: CS 401. Recommended background: Algorithm Probability.
4 Hours. Data modeling and semantics; knowledge representation, querying, and reasoning for the semantic web; metadata; data integration and interoperation; web services; applications. Extensive computer use required. Prerequisite: CS 480
4 Hours. Security of computer systems, including security definitions, models, and properties; structure of computer systems and its interaction with computer security; authentication; errant programs; access control models; and covert channels. Prerequisite: Consent of the instructor.
4 Hours. Security and privacy in networked and distributed systems including applied cryptography; network security protocols for authentication, confidentiality and integrity; distributed denial of service attacks and defenses; distributed authentication architectures; and privacy and anonymity. Prerequisite: Consent of the instructor
4 Hours. May be repeated for credit. Students may register for more than one section per term. Subject matter varies from term to term and section to section, depending on the specialties of the instructor. Prerequisite: Consent of the instructor
0 Hours. May be repeated. S/U grade only. Seminar by faculty and invited speakers. Prerequisite: NONE
4 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. Individual study or research under close supervision of a faculty member. For CS majors only. Prerequisite: Consent of the instructor
9 Hours. S/U grade only. Students may register for more than one section per term. For CS majors only. A research design or reading project approved by the committee appointed by the director of graduate studies. Prerequisite: Consent of the instructor
16 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. For CS majors only. MS thesis work under the supervision of a graduate advisor. Prerequisite: Consent of the instructor
16 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. For CS majors only.PhD thesis work under supervision of a graduate advisor. Prerequisite: Consent of the instructor
3 Hours. Elementary data types, arithmetic & logical operations, control structures & error handling, methods & functions, introduction to object-oriented programming design & implementation. Emphasis is placed on the development of problem-solving skills. Prerequisite: NONE
IT 201 Introduction to Computer Configuration and Operating System Software
3 Hours. Introduction to concepts of computer configuration, and OSS. Comparisons of commercially available CPU families, peripherals, system performance and evaluation. Discussions of technological developments and commercially available systems. Prerequisite: NONE
3 Hours. Introduction to internet, multimedia concepts, protocols, and tools. HTML document markup language. Web site design. Script programming for interactive web pages. Creating, editing images, video, and audio for internet use. Programming exercises. Prerequisite: NONE
IT 301 Networks and Distributed Computing
3 Hours. Introduction to the use of computers on a network. Installation and configuring of networking components: Firewalls, nameserver and gateways. Use of both wired and wireless networks. Prerequisite: NONE
3 Hours. A study of the use of existing databases (bibliographic and non-bibliographic formats), their data structure, processing and retrieval data, integrity and security, and interface design issues. Prerequisite: NONE