North Central College - Naperville, IL

Computer Science Courses

NOTE: This page contains all of the regular course descriptions for this discipline or program. Academic credit for each course is noted in parenthesis after the course title. Prerequisites (if any) and the general education requirements, both Core and All-College Requirements (ACRs), which each course fulfills (if any) are noted following each course description. Not all courses are offered every year. Check Merlin, our searchable course schedule, to see which courses are being offered in upcoming terms.

CSC 160 Computer Science I (3.50)
An introduction to computer science and programming emphasizing the development of algorithms and their implementation in Java. Topics include inheritance, data types such as arrays and strings, control mechanisms for selection and iteration, objects and classes, graphical user interfaces, and event-driven programming. Extensive programming required. Laboratory. May not be taken after a higher level programming class. Prerequisite: MTH 121 or higher or appropriate placement.

CSC 161 Computer Science II (3.50)
A second course in object-oriented programming, emphasizing design and implementation of efficient, well-constructed programs using Java. Topics include graphical user interfaces, polymorphism, exception handling, stream and file I/O, algorithms for searching and sorting, recursion, linked lists, stacks, and queues. Extensive programming required. Laboratory. Prerequisites: CSC 160 or one year H.S. programming in Java; MTH 121 or higher or appropriate placement.

CSC 171 Elements of Java I (1.50)
An introduction to Java for students with some programming experience in an object-oriented language, but with little or no knowledge of Java. Covers event-driven programming and graphical user interfaces. Prerequisite: Transfer credit for (non Java) Computer Science I.

CSC 172 Elements of Java II (1.50)
Further study of Java for students who have some knowledge of Java and are familiar with the concepts of searching and sorting, recursion, and elementary data structures such as linked lists, stacks, and queues. Covers graphical user interfaces, polymorphism, exception handling, streams, and files. Prerequisite: Transfer credit for (non Java) Computer Science II.

CSC 210 Data Structures & Algorithms (3.00)
Structures, techniques, and algorithms for managing data. Topics include variations of linked lists; binary trees, B- trees, and other types of search trees; advanced searching and sorting algorithms; graphs and graph algorithms; and analysis of algorithms. Programming required. Prerequisites: CSC 161 and knowledge of C++ or Java; CSC 230 recommended.

CSC 215 Introduction to Web Programming (3.00)
Topics include the use of PHP and Ruby for server-side generation of content. Also covers HTML/CSS and Javascript for client-side presentation, SQL databases for information management and retrieval, management of shopping carts and client sessions, and security. Extensive programming required. Same as: IMS 215. Prerequisite: CSC 161; IFS 115 recommended.

CSC 220 Computer System Concepts (3.00)
Basic computer architecture including combinational circuits, instruction sets, microprogramming, and assembly language, I/O (devices, busses and interrupts), and memory systems and organization. Programming required. Prerequisite: CSC 161; CSC 230 recommended.

CSC 225 Web and Animation Programming With Flash (1.50)
Course covers program control of Flash animations to build content-rich interactive Web pages. Topics include: client-side scripting, plug-ins, environment and session variables, components, animation control with ActionScript, audio and video, interaction with HTML elements, usability, and interface design. Prerequisites: CSC 161, IFS 115, IFS 125.

CSC 230 Discrete Structures I (3.00)
Fundamental topics in mathematics and computer science including formal logic, proof techniques, sets, relations and functions, combinatorics, graphs, Boolean Algebra, logic circuits, and finite state machines. Same as: MTH 230. Prerequisites: CSC 160; MTH 121 or higher. Core: Mathematics.

CSC 231 Discrete Structures II (3.00)
A second course in discrete mathematics that introduces more advanced topics as well as covering some of the material introduced in CSC 230 in more depth. Topics include growth of functions and complexity of algorithms; number theory; recursive definitions and algorithms; proof techniques; program verification; discrete probability; finite state automata; and formal grammars and language recognizers. Hands-on labs allow students to apply one or more course topics to build practical working systems. Same as: MTH 231. Prerequisite: CSC/MTH 230.

CSC 242 Introduction to Bioinformatics (3.00)
Introduction to the field of bioinformatics. Computational methods for study of biological sequence data in comparative biology and evolution. Analysis of genome content and organization. Techniques for searching sequence databases, pairwise and multiple sequence alignment, phylogenetic methods, and methods for pattern recognition and functional inference from sequence data. Database theory, information extraction, algorithm analysis, and data mining are utilized. Same as: BIO 242. Prerequisites: CSC 160; BIO 100 or BIO 151; BIO 152 recommended. Core: Science.

CSC 297 Internship (0.00-4.00)
Instructor consent required.

CSC 299 Independent Study (1.00-4.00)
Instructor consent required.

CSC 306 Software Development in C++ (3.00)
Object-oriented design and implementation of large scale software using C++. Topics include inheritance, polymorphism, virtual functions, operator overloading and the STL. Extensive programming required. Prerequisite: CSC 161 and knowledge of C++ or Java; CSC 210 recommended.

CSC 340 Algorithms (3.00)
Design and analysis of algorithms. Classification of algorithms by time and space complexity. Algorithm design techniques such as divide and conquer, the greedy method, and dynamic programming. NP-complete problems and approximation algorithms. Introduction to parallel algorithms. Programming may be required. Repeats CSC 440. Prerequisites: CSC 210, CSC 230.

CSC 355 Windows and .Net Programming (3.00)
System and application programming on Windows and the .NET platform using C#. Topics include Windows Forms and the Windows Presentation Foundation, interprocess communication, .NET network programming, ADO.NET, and security. Prerequisite: CSC 161.

CSC 397 Internship (0.00-4.00)
Instructor consent required.

CSC 399 Independent Study (1.00-4.00)
Instructor consent required.

CSC 415 Web Applications (3.00)
Development of web applications using various client-side and server-side web technologies on the Java EE and .NET platforms. Topics include: HTTP protocols, the Model-View-Controller design pattern, JavaScript, AJAX, Java Servlets, Java Server Pages, JSTL, ASP.NET MVC, ASP.NET web forms, JDBC and ADO.NET for database access, and web applications security. Extensive programming required. Same as: CSC 515. Prerequisites: CSC 161; Junior standing or instructor consent.

CSC 420 Operating Systems I (3.00)
An examination of approaches to computer system resource management. Topics include scheduling, memory management, file systems, I/O management, multiprocessing, security, and protection. Programming may be required. Same as: CSC 520. Prerequisites: CSC 161, CSC 220. Junior standing or instructor consent.

CSC 425 Computer Graphics (3.00)
2D and 3D graphical applications implemented in OpenGL. Includes graphics, display technologies, and human factors. Extensive programming required. Same as: CSC 525. Prerequisite: CSC 306. Junior standing or instructor consent.

CSC 427 Linux Programming (3.00)
Fundamental concepts, library facilities, and programing techniques that provide the foundation for application, systems, network and Internet programming on Linux and Unix systems. Course topics include the operating system kernel, process management, I/O, pipes, signals, sockets, and shell programming. The course does not cover system administration. Extensive programing in C and C++ required. Students many not receive credit for both CSC 427 and CSC 490/590 Special Topics: UNIX/Linux. Same as: CSC 527. Prerequisite: CSC 306; CSC 420 recommended. Junior standing or instructor consent. Repeats CSC 490/590 Special Topics:Linux.

CSC 435 Windows Game Programming (3.00)
Design and development of Windows game software. Topics include computer graphics, networking, event-driven programming, the Windows API, XNA, modeling tools, graphics engines for games, and an introduction to C#. Extensive program required. Repeats CSC 490/590 Special Topics: Game Software. Same as: CSC 535. Prerequisite: CSC 425. Junior standing or instructor consent. Repeats CSC 490/590 Special Topics: Game Software.

CSC 436 Human Computer Interaction (3.00)
Fundamental principles in the design, implementation, and evaluation of human-machine interfaces with emphasis on human computer interaction. Topics include user psychology, theories of human learning and perception, audio and visual physiology, graphical user interfaces, task analysis, and usability heuristics. Same as: CSC 536. Prerequisite: CSC 160. Junior standing or instructor consent.

CSC 453 Systems Analysis (3.00)
Methods, techniques, and tools to model and analyze systems. Topics include problem definition, the project life cycle, data acquisition, data flow and entity-relationship modeling, use cases, and the use of project management CASE tools. Major project required. Same as: CSC 553. Prerequisite: CSC 161. Junior standing or instructor consent.

CSC 460 Database Systems (3.00)
Data modeling, and database design and implementation, with emphasis on the relational model. Includes SQL, PHP, JDBC, integrity, security, recovery and concurrency issues, and business applications of database systems. SQL, PHP and JDBC programming required. Same as: CSC 560. Same as: CSC 560. Prerequisite: CSC 161. Junior standing or instructor consent.

CSC 464 Data Mining (3.00)
An introduction to data mining in the context of KDD (Knowledge Discovery and Data Mining), covering the three main phases of the KDD process: preprocessing, data extraction, and data analysis. Includes data cleaning and preparation techniques; extraction methods such as deviation detection, classification, dependency modeling, and clustering; statistical analysis methods; and visualization techniques. Repeats CSC 692 Special Topics: Data Mining. Same as: CSC 564. Prerequisites: CSC 460. Junior standing or instructor consent.

CSC 469 Computer Networks (3.00)
Exploration of data communications and computer networks. Topics include network architecture, TCP/IP protocols, wireless and mobile networks, and network security. Includes hands-on lab activities and an introduction to network programming. Same as: CSC 569. Same as: CSC 569. Prerequisites: CSC 220. Junior standing or instructor consent.

CSC 479 Computer and Network Security (3.00)
Students are introduced to the theory and methods for developing and maintaining secure systems and applications. Topics include secure infrastructures, intrusion prevention and detection, virus and anti-virus software, software security, authentication, cryptography, and legal and ethical issues. Same as: CSC 579. Prerequisite: CSC 469.

CSC 487 Parallel Processing & Concurrent Prog (3.00)
A course in hardware, software, and language aspects of parallel computing, focusing on the development of effective parallel algorithms and their implementation on a variety of parallel architectures and interconnection networks. Same as: CSC 587. Prerequisite: CSC 420. Junior standing or instructor consent. Repeats CSC 635.

CSC 490 Special Topics (3.00)
A course covering a topic of current interest. Same as: CSC 590. Junior standing or instructor consent. Instructor consent required.

CSC 495 Capstone Seminar (3.00)
This Computer Science capstone course allows students to apply the many skills they have acquired during their undergraduate studies by participating as a member of a team to design, develop, and present a software solution to a substantive problem. Group process and leadership skills are addressed as well as ethical considerations important to computer science professionals. Prerequisite: Junior standing; CSC major or minor. ACR: Leadership, Ethics, & Values.

CSC 497 Internship (0.00-4.00)
Instructor consent required.

CSC 499 Independent Study (1.00-4.00)
Junior standing or instructor consent. Instructor consent required.