CSC-2100: Discrete Structures (3 hours)
An introduction to the analysis of discrete collections: sets, counting, recursion, graph theory, algorithms and combinatorics. Cross-Listed: MAT-2100. Fee: Required. Prerequisite: C or higher in MAT-1805 or department consent. IAI:M1905.
CSC-2410: Computer Science I (3 hours)
An introduction to a current and dominant object-oriented programming language. Topics covered include basic principles of programming, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers and introduction to classes for programmer-defined data types. Corequisite: CSC-2411.
CSC-2411: Applied Programming Techniques in Computer Science I (1 hour)
Intensive focus on program-writing using introductory methods such as Input, Output, Control Structures, Classes, Functions, Arrays, Vectors, and Pointers. Corequisite: CSC-2410.
CSC-2510: Computer Science II (3 hours)
Advanced object-oriented programming concepts to prepare for focused studies in extreme programming, game programming, hand-held device programming or other advanced programming arenas. The topics include but are not limited to inheritance, polymorphism, templates, exceptions and operator overloading strings, streams, files, templates and data structures. Prerequisite: C or higher in CSC-2410.
CSC-2620: Database Systems & Design (3 hours)
Introduction to database systems, including but not limited to the following topics: Types of database models, database management systems, SQL language, relational data model and relational database constraints, relational database design by ER and EER-to-relational mapping, introduction to SQL programming techniques, object and object-relational databases and XML language. Prerequisite: C or higher in CSC-2410.
CSC-2710: Computer Organization and Architecture (3 hours)
Principles and application of computer hardware and software. Theoretical underpinnings, installation, and configuration. Computer architecture for effective use in a business environment. System architecture for networked computing systems and operating systems. Operational laboratory experiences. Prerequisite: C or higher in CSC-2410.
CSC-3210: Object-Oriented and Database Programming Practicum (1 hour)
The practice of topics from lecture courses covering object-oriented and database programming through problem-based assignments. This course may be repeated up to four times. Prerequisite: C or higher in CSC-2410 and instructor consent.
CSC-3420: Data Structures and Algorithms (3 hours)
Development of methods for organizing and processing large data sets. Types of data structures analyzed include linear lists, stacks, queues, graphs and trees. Algorithm analysis methods are used throughout to analyze the various data structures and algorithm design alternatives. Prerequisite: C or higher in CSC-2510. Corequisite: CSC-3421. May be taken concurrently with CSC-4450.
CSC-3421: Applied Programming Techniques in Data Structures and Algorithms (1 hour)
Intensive focus on program-writing using data structure concepts such as Lists, Queues, Stacks, Sorting algorithms and Trees. Corequisite: CSC-3420.
CSC-3422: Data Structures with Data Science II (3 hours)
Development of methods for organizing and processing large data sets. Types of data structures analyzed include linear lists, stacks, queues, graphs and trees using the C++, C#, Java and Python programming language. Algorithm analysis methods are used throughout to analyze the various data structures and algorithm design alternatives. Prerequisite: C or higher in CSC-3420.
CSC-3424: Data Structures with Data Science III (3 hours)
Development of methods for organizing and processing large data sets. Types of data structures analyzed include Linear Lists, Graphs, Trees, Heaps, Dictionaries and Their Implementations, Balanced Search Trees, Graphs and Processing Data in External Storage using the C++, C#, Java and Python programming languages. Algorithm analysis methods are used throughout to analyze the various data structures and algorithm design alternatives. Prerequisite: C or higher in CSC-3422.
CSC-3430: Advanced Object-Oriented Programming (3 hours)
Advanced object-oriented programming concepts, including but not limited to inheritance, polymorphism, templates, exceptions and operator overloading, files and advanced data structures topics, graphical user interface, game programming and hand-held device programming. Prerequisite: C or higher in CSC-2510.
CSC-3440: Computer Networking and Communication (3 hours)
In-depth networking and telecommunications fundamentals, including LANs, MANs, WANs, intranets, the Internet and the WWW. Data communication and telecommunication concepts, models, standards and protocols will be studied. Laboratory practice in installation, configuration, systems integration and management of infrastructure technologies. Prerequisite: C or higher in CSC-2510.
CSC-3450: Website Design and Development (3 hours)
Comprehensive introduction to the tools and skills required for both client and server-side programming and development of platform-independent sites using the most current web development technology. Prerequisite: C or higher in CSC-2510 and CSC-2620 or instructor consent.
CSC-3460: Software Engineering I (3 hours)
A wide perspective on software development, including ethics, project management, software development lifecycle, problem specification and analysis, system design techniques, implementation and documentation. Prerequisite: C or higher in CSC-2410. Recommended: CSC-2510.
CSC-4430: Mobile Application Development (3 hours)
Fundamental concepts of application development for Android smartphones and tablets using Java, including some game development and an introduction to the development of iOS mobile applications. Prerequisite: C or higher in CSC-3430 or instructor consent.
CSC-4450: Operating Systems (3 hours)
An introduction to the basic concepts of operating system design, including messaging, data abstraction, processes, concurrency, protection and security, and virtual systems. The Windows and UNIX/Linux operating systems will be used as examples as well as some historically significant operating systems. Prerequisites: C or higher in CSC-2710 and CSC-3420. May be taken concurrently with CSC-3420.
CSC-4455: Operating Systems II (3 hours)
Advanced concepts of operating system design, including security, file systems, fault tolerance, reliable data delivery and networked applications. Focuses on Linux Operating System concepts, management, maintenance and the required resources. Prerequisite: C or higher in CSC-4450.
CSC-4460: Software Engineering II (3 hours)
A detailed insight into system design techniques, testing, implementation, dependability, security, software reuse, component-based, service-oriented, embedded and distributed software engineering. Prerequisite: C or higher in CSC-2620 and CSC-3460.
CSC-4730: ACCA - Seminar in Computer Science (3 hours)
Computer Science seminar course on selected topics as offered by the Associated Colleges of the Chicago Area (ACCA). Consult the department chair for details on specific courses. Prerequisite: Senior standing or instructor consent.
CSC-4910: Topics in Computer Science (3 hours)
Exploration of various current content topics in computer science not covered in current undergraduate or graduate courses. Prerequisite: Instructor consent.
CSC-4920: Capstone in Computer Science (3 hours)
Project-based integration of knowledge gained across the curriculum. Prerequisite: 24 hours of coursework in computer science and instructor consent.
CSC-4950: Independent Study in Computer Science (1-6 hours)
CSC-4991: Internship (3 hours)
Workplace experience in computer science under the supervision of faculty and the company’s staff. Prerequisite: 24 hours of coursework in computer science and instructor consent.