Academic Catalog

Computer Science (CMSC)

CMSC 1180 Introduction to Computing. (Formerly 180) An introduction to the fundamental principles of computing and the computers relevance and impact on the world today with an overriding theme of algorithms. Topics include hardware, software, data representation, networks, and databases with applications in simulation, modeling, electronic commerce and artificial intelligence. 2 semester credit hour/s. 
Designation: Computational, Mathematical, and Analytical (QCM) 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 1181 Visual Programming Laboratory. (Formerly 181) Provides programming fundamentals, with applications developed in a visual programming language. Programming topics include variables, formatted output, looping, conditional execution, subroutines and functions. Co-registration or credit in CMSC 1180. 1 semester credit hour/s. 
Designation: Computational, Mathematical, and Analytical (QCM) 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 1182 Science Applications Laboratory. (Formerly 182) A laboratory experience for all students interested in analyzing, processing, graphing, displaying, and presenting scientific data through the use of spreadsheet software (Microsoft Excel). Co-registration or credit in CMSC 1180. 1 semester credit hour/s. 
Designation: Computational, Mathematical, and Analytical (QCM) 
Campus: LISLE (Typically Offered: Spring Term) 
CMSC 1184 Microsoft Excel Laboratory. (Formerly 184) Introduction to the software application of spreadsheets using Microsoft Excel. Designed for students interested in manipulating, organizing, analyzing, and presenting numerical data and information within the context of business applications. Co-registration or credit in CMSC 1180. 1 semester credit hour/s. 
Designation: - 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 1185 Python Programming Laboratory. (Formerly 185) An introduction to the fundamentals of programming in Python for students interested in engineering, physics, and computer science. Programming topics include problem solving, variables, calculations, I/O, conditions, looping, and functions. Co-registration or credit in CMSC 1180. 2 semester credit hour/s. 
Designation: Computational, Mathematical, and Analytical (QCM) 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 1186 Web Development Laboratory. (Formerly 186) An introduction to the fundamentals of web design and implementation of client side web applications geared for students in the arts,humanities and education. Topics include HTML and JavaScript for webpage design and interactive applications. 1 semester credit hour/s. 
Designation: - 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 2200 Computer Programming. (Formerly 200) An introduction to software design, algorithm development and implementation in a high-level programming language. Elementary programming structures, methods, string processing and functions, and file processing. Functional design and programming, real world and application modeling, testing and debugging. Prerequisites: MATH 1105, MATH 1110, or placement in a course above Basic Skills. IAI CS911. 3 semester credit hour/s. 
Designation: Computational, Mathematical, and Analytical (QCM) 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 2205 Data Structures and Algorithms I. (Formerly 205) The study of data structures, their applications and implementations including two dimensional arrays, classes, lists, stacks, queues, and linked lists. Introduction to object-oriented programming, exception handling and unit testing. Prerequisite “C” or better in CMSC 2200. IAI CS912. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 2220 Computer Architecture. (Formerly 220) A breadth course in computer architecture including logic design, CPU organization, integer and floating point representations, instruction representation, pipelining, and memory hierarchy. Prerequisite: “C” or better in CMSC 2200. 3 semester credit hour/s. 
Designation: - 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 2264 Introduction to Web Application Development. (Formerly 264) An introduction to modern web application development with a focus on the client-side and an introduction to server-side fundamentals. Prerequisite: “C” or better in CMSC 2200. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 2330 Introduction to Database Systems. Introduces the fundamentals of database management systems, SQL, query processing and optimization. Prerequisite: "C" or better in MATH 1105, MATH 1110, or placement in a course above Basic Skills. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 2365 Introduction to Computer Networks. Introduces fundamental concepts in the design and implementation of computer networks and protocols, as well as various applications. Prerequisite: "C" or better in CMSC 2200. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 3270 Data Structures and Algorithms II. (Formerly 270) The further study of data structures including trees, heaps, and graphs. Sorting algorithms, hashing, and recursion. Algorithm analysis techniques. Prerequisite: "C" or better in both CMSC 2205 and MATH 2240. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 3274 Object-Oriented Design and Programming. (Formerly 274) Design and implementation of object-oriented applications through the use of Java programming language. Includes classes, inheritance, encapsulation, polymorphism, interfaces, graphical user interface, nested classes, generics, abstract classes, reflection, multithreading, UML, and design patterns. Prerequisite: “C” or better in CMSC 2205 and Corequisite of MATH 2240. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 3301 Technical Communications. (Formerly 301) A focus on communication from both an oral and a written perspective within a purely technical environment. Topics include client/customer requirements gathering, project leadership, and detailed application documentation intended for various audiences. Prerequisite: "C" or better in CMSC 3274. 3 semester credit hour/s. 
Designation: Writing Intensive 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 3303 Computer Science Ethics. Discussion of various case studies in computer science, in order to examine complex ethical issues in the technological environment. Prerequisite: "C" or better in CMSC 3301. 1 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 3330 Database Management Systems. (Formerly 330) Database design and implementation including the relational and non-relational data models, ER diagrams, relational algebra, functional dependency theory, normalization techniques, concurrency control, recovery, and security. Prerequisite: “C” or better in CMSC 3274. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)
 
CMSC 3387 Independent Study. (Formerly 387) Independent Study: Provides an opportunity for an advanced student in the major to pursue study in a computer science topic of interest outside of the current curriculum. 1-3 semester credit hour/s. Course Repeatable. Maximum number of units allowed: 6. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 3391 Current Topics in CS. Covers a variety of current topics in computing that are not otherwise addressed in the curriculum. Topics will vary each time the course is offered due to the nature of the material covered. Prerequisite: "C" or better in CMSC 3301. 2 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 3396 ACCA Seminar. (Formerly 396) Evening seminar at Associated Colleges of Chicago Area schools dealing with advanced topics in computer science. Topics are announced in advance. 1 semester credit hour/s. Course Repeatable. Maximum number of units allowed: 3. Department Consent Required.  
Campus: LISLE (Typically Offered: Fall Term) 
CMSC 3397 Undergraduate Project. (Formerly 397) Independent work on a project supervised by a faculty member in the program. 1-3 semester credit hour/s. Course Repeatable. Maximum number of units allowed: 12. 
Designation: Engaged Learning 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 3399 Internship. (Formerly 399) Practical experiences in computer science related fields under the supervision of the program. Prerequisite: GPA 3.00 in computer science course work. 1-6 semester credit hour/s. Course Repeatable. Maximum number of units allowed: 12. Department Consent Required.  
Designation: Engaged Learning 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 4310 Operating Systems. (Formerly 310) An introduction to operating systems including the topics of processes, threads, synchronization, CPU scheduling, deadlocks, memory management, virtual memory, and distributed systems. Prerequisites: “C” or better in both CMSC 2220 and CMSC 3274. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term, Odd Years)
MESA (Typically Offered: Spring Term, Odd Years)
 
CMSC 4363 Data Mining. (Formerly 363) Investigation of data mining techniques and their various applications. Topics include data quality and preprocessing, classification methods, association analysis (attributes and patterns), and cluster analysis (K-means, prototype-based, density-based, and graph based clustering). Prerequisite: "C" or better in CMSC 3270. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term, Even Years) 
CMSC 4364 Mobile Commerce. (Formerly 364) Examination of current mobile technologies, including implementation, application, and marketability. Topics include mobile commerce, application design and usability, responsive design, mobile operating systems and database technology, and networking and security. Prerequisites: "C" or better in both CMSC 2205 and CMSC 2264. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 4365 Computer Networks and Data Communication. (Formerly 365) An introductory course in computer networking and data communications. Discussion is focused on the layers of the Internet Protocol Stack. Prerequisite: “C” or better in both CMSC 2220 and CMSC 3274. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 4370 Algorithm Design and Analysis. (Formerly 370) Methods of designing efficient algorithms including divide and conquer, backtracking, greedy approach, dynamic programming and branch-and-bound. Complexity analysis of algorithms including computational complexity and NP-complete problems. Prerequisite: "C" or better in CMSC 3270. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 4373 Big Data. (Formerly 373) Introduction to concepts of working with big data. Topics include Map-Reduce, mining data streams, link analysis (PageRank), frequent Itemsets, recommendation system and dimensionality reduction. The course also includes practical exercises implementing big data algorithms. Prerequisite: "C" or better in CMSC 3270. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term, Odd Years) 
CMSC 4374 Advanced Web Application Development. (Formerly 374) An in-depth study of building large-scale Web Applications focusing on the MVC design pattern. Topics include: Application configurations, mobile application development, database APIs, modern application frameworks, and system load testing. Pre-requisites: "C" or better in both CMSC 2264 and CMSC 3274. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term, Odd Years)
MESA (Typically Offered: Fall Term, Odd Years)
 
CMSC 4375 Software Engineering. (Formerly 375) An introduction to software engineering from project conception to implementation. Students will work in teams to develop multiple software projects throughout the semester practicing various types of software development processes and working in multiple roles within their team. Topics include software development processes (waterfall, Agile, etc. ) unit testing, calc overage, requirements elicitation and specification, software documentation, work estimation, and release planning. Prerequisite: “C” or better in both CMSC 3301 and CMSC 3330. 3 semester credit hour/s. 
Designation: Writing Intensive 
Campus: LISLE (Typically Offered: Fall Term)
MESA (Typically Offered: Fall Term)
 
CMSC 4380 Artificial Intelligence. (Formerly 380) Problem solving methods such as logic programming and heuristic search strategies are applied to topics such as game playing, pattern recognition, and machine learning. Prerequisite: "C" or better in CMSC 3270. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Spring Term, Even Years)
MESA (Typically Offered: Spring Term, Even Years)
 
CMSC 4383 Machine Learning. (Formerly 383) Investigation of the design, implementation and application of various machine learning algorithms. Topics include decision trees, artificial neural networks, Bayesian learning, computational learning theory, instance-based learning, and genetic algorithms. Prerequisite: "C" or better in CMSC 3270. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Fall Term, Odd Years) 
CMSC 4384 Enterprise Architecture. (Formerly 384) An advanced course in designing, modeling, building and testing software at an enterprise level. Topics include business architectures, enterprise software (network and web services), advanced web frameworks, design methodologies, data processing, cost management, and scalable, multi-tiered, and secure network applications. Prerequisites: "C" or better in both CMSC 3270 and CMSC 4374. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 4385 Theory of Programming Languages. (Formerly 385) Organization of programming languages analyzed through representative languages. Introduction to concepts of programming language specification and analysis. Includes type issues, scope, subprograms, runtime behavior and models of programming. Prerequisite: "C" or better in CMSC 3274. 3 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 4386 Programming Languages Practicum. (Formerly 386) A hands-on experience with current issues in programming languages. A more in-depth view of modern languages such as Perl, C#, VB Script and JavaScript and historical languages such as LISP, Prolog, FORTRAN and COBOL. Prerequisite: Credit or co-registration in CMSC 4385. 1 semester credit hour/s. 
Campus: LISLE (Typically Offered: Periodically) 
CMSC 4391 Selected Topics. (Formerly 391) Various topics to supplement the curriculum. 3 semester credit hour/s. Course Repeatable. Maximum number of units allowed: 12. 
Campus: LISLE (Typically Offered: Periodically)
MESA (Typically Offered: Periodically)
 
CMSC 4398 Capstone Project. (Formerly 398) A team-oriented, software engineering project experience to implement a solution to an information-based problem. Prerequisite: Senior Standing and "C" or better in both CMSC 3330 and CMSC 4375. 3 semester credit hour/s. 
Designation: Engaged Learning 
Campus: LISLE (Typically Offered: Spring Term)
MESA (Typically Offered: Spring Term)