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 140 Fundamentals of Computational Problem Solving (3.00)
An introduction to computing focusing on problem solving, algorithm construction, data organization, and program development using Python. Topics include basic programming fundamentals and constructs such as variables and assignment statements; arithmetic,relational, and logical operators; decisions and loops; modularization with functions; files; and data structures such as lists and dictionaries. Prior programming experience is not required.

CSC 150 C++ Programming for Science and Engineering (Lab) (3.50)
An introduction to computing for students of Science and Engineering using C++ in a Unix Environment. Concepts covered include use of the Unix command line, C++ data types and control structures, algorithmic problem solving, object oriented software development, and an introduction to numerical methods. Programming exercises and examples will be drawn from a variety of scientific disciplines. Extensive programming required. Laboratory required.

CSC 160 Computer Science I (3.50)
An introduction to computer science and programming emphasizing the development of algorithms and their implementation in Java using both procedural and object-oriented approaches. Topics include data types; assignment statements; I/O; arithmetic, relational and logical operators; control structures for selection and iteration; functions; the use of classes and objects; simple data structures, such as arrays; graphical user interfaces and event-driven programing. Extensive programming required. May not be taken after a higher level programming class.

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 inheritance and polymorphism; stream and file I/O; exception handling; algorithms for searching and sorting; recursion; graphical user interfaces; and more advanced data structures, such as linked lists, stacks, queues, and the Java collection classes. Extensive programming required. May not be taken after higher level programming class.

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.

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.

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.

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: MED 215.

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.

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.

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. 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.

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. 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.

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.

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.

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

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

CSC 410 Mobile Applications Development (3.00)
An introduction to creating applications that run on smart phones, tablets, and other handheld devices, using the Android platform. Topics include Android OS and device hardware; XML interfaces and themes; activates and fragments; services and multi-threading; the SQLite database; multimedia; and an introduction to iOS and Objective C. Students may not receive credit for both CSC 410 and 510.

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. Students may not receive credit for both CSC 415 and 515.

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. Students may not receive credit for both CSC 420 and 520.

CSC 425 Computer Graphics (3.00)
2D and 3D graphical applications implemented in OpenGL. Includes graphics, display technologies, and human factors. Extensive programming required. Students may not receive credit for both CSC 425 and 525.

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. Students may not receive credit for both CSC 427 and 527.

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. Students may not receive credit for both CSC 435 and 535.

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. Students may not receive credit for both CSC 436 and 536.

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. Students may not receive credit for both CSC 453 and 553.

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. Students may not receive credit for both CSC 460 and 560.

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. Students may not receive credit for both CSC 464 and 564.

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. Students may not receive credit for both CSC 469 and 569.

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. Students may not receive credit for both CSC 479 and 579.

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. Students may not receive credit for both CSC 487 and 587. Repeats CSC 635.

CSC 490 Special Topics (3.00)
A course covering a topic of current interest. Students may not receive credit for both CSC 490 and 590. 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. 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.