Computer Science and Engineering Computer Science and Engineering Computer Science and Engineering Computer Science and Engineering Computer Science and Engineering

College of Arts & Sciences

Computer Science and Engineering

Questions?

Sun-il Kim
Wentz Science Center 148

630-637-5176

skim@noctrl.edu

Computer Scientists and Computer Engineers design and build hardware and software systems that operate devices from the smallest components in your smartphone and tablet to the largest satellites orbiting the globe. As the demand for these technologies continues to increase, so too does the need for computer scientists whose skills drive the next innovation.

Like many highly-rated computer science and engineering programs, our programs prepare our graduates to stay ahead of the curve, thanks to a solid theoretical foundation, a pragmatic curriculum that teaches the most widely used skills and languages, and opportunities outside the classroom, such as internships and student research projects.

What sets our program apart is the understanding that computer science isn't about building programs for computers. It's about building systems for people. Our curriculum helps you develop the skills employers consistently mention as highly valued, yet often absent in the profession--communication skills. At North Central you will learn to write, to speak and listen, and to work effectively with others.

Learn about: 

 

Computer Science, B.A.

For additional programs and courses in this department, see Computer Science.

Major Requirements

A minimum of 39 credit hours to include:

Core for the B.A. Degree

  • CSC 160 - Computer Science I

    CSC 160 - Computer Science I

    3.50 credit hours

    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 programming. Extensive programming required. Laboratory required.

    Prerequisite(s)


    MTH 121 or higher or appropriate placement.

    Schedule Of Classes

  • CSC 161 - Computer Science II

    CSC 161 - Computer Science II

    3.50 credit hours

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

    Prerequisite(s)


    CSC 160 or one year of high school programming in Java; MTH 121 or higher or appropriate placement.

    Schedule Of Classes

  • CSC 210 - Data Structures and Algorithms

    CSC 210 - Data Structures and Algorithms

    3.00 credit hours

    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.

    Prerequisite(s)


    CSC 161 and knowledge of C++ or Java; CSC 230 recommended.

    Schedule Of Classes

  • CSC 220 - Computer System Concepts

    CSC 220 - Computer System Concepts

    3.00 credit hours

    Basic computer architecture including combinational circuits, instruction sets, microprogramming, assembly language, I/O (devices, busses and interrupts) and memory systems and organization. Programming required.

    Prerequisite(s)


    CSC 161; CSC 230 recommended.

    Schedule Of Classes

  • CSC 230 - Discrete Structures I

    CSC 230 - Discrete Structures I

    3.00 credit hours

    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.

    Prerequisite(s)


    CSC 160; MTH 121 or higher.

    Core

    Mathematics.

    Schedule Of Classes

  • CSC 306 - Software Development in C++

    CSC 306 - Software Development in C++

    3.00 credit hours

    Object-oriented design and implementation of large scale software using C++. Topics include inheritance, polymorphism, virtual functions, operater overloading and the STL. Extensive programming required.

    Prerequisite(s)


    CSC 161 and knowledge of C++ or Java; CSC 210 recommended.

    Schedule Of Classes

  • CSC 495 - Capstone Seminar

    CSC 495 - Capstone Seminar

    3.00 credit hours

    The 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(s)


    Senior standing; Computer Science major or minor.

    Schedule Of Classes

  • Students with equivalent background for a core course may have it waived by the department chair and substitute an additional CSC elective in its place.

Electives

Choose six electives, at least three of which must be chosen from the following:

  • CSC 215 - Introduction to Web Programming

    CSC 215 - Introduction to Web Programming

    3.00 credit hours

    Topics include the use of PHP and other web languages and framework 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.

    Prerequisite(s)


    CSC 161; IFS 115 or MED 105, or concurrent enrollment.

    Schedule Of Classes

  • CSC 415 - Web Applications

    CSC 415 - Web Applications

    3.00 credit hours

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

    Prerequisite(s)


    CSC 161; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 436 - Human Computer Interaction

    CSC 436 - Human Computer Interaction

    3.00 credit hours

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

    Prerequisite(s)


    CSC 160; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 453 - Systems Analysis

    CSC 453 - Systems Analysis

    3.00 credit hours

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

    Prerequisite(s)


    CSC 160; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 460 - Database Management Systems

    CSC 460 - Database Management Systems

    3.00 credit hours

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

    Prerequisite(s)


    CSC 161; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 464 - Data Mining

    CSC 464 - Data Mining

    3.00 credit hours

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

    Prerequisite(s)


    CSC 460; Junior standing or instructor consent.

    Schedule Of Classes

Required Communications Support

Two of the following courses (one of which may be used to fulfill the College's general education speech communication requirement):

  • COM 100 - Introduction to Public Speaking

    COM 100 - Introduction to Public Speaking

    3.00 credit hours

    An introduction to a wide array of public speaking skills, including preparation, presentation and evaluation of speeches. Recommended primarily for first year students and sophomores.

    Core

    Communication
    IAI

    C2 900

    Schedule Of Classes

  • COM 200 - Interpersonal Communication

    COM 200 - Interpersonal Communication

    3.00 credit hours

    A study of communication in face-to-face interactions. The course examines the role of perception of self and others in communication and explores such topics as nonverbal communication, verbal styles, relationship development and conflict management. Skills training is an important component of the course.

    Core

    Communication.

    Schedule Of Classes

  • COM 214 - Group Process

    COM 214 - Group Process

    3.00 credit hours

    The understanding and practice of small group communication theory and skills in information-sharing and decision-making discussions.

    Core

    Communication.

    Schedule Of Classes

  • COM 230 - Business and Professional Communication

    COM 230 - Business and Professional Communication

    3.00 credit hours

    This course focuses on developing the skills and strategies involved in written, face-to-face and electronic communication in professional settings. Students learn fundamentals of interviewing, writing and presenting in professional contexts and may investigate organizational communication practices such as performance feedback, training, meeting management and organizational identity.

    Prerequisite(s)


    One of COM 100, COM 200 or COM 214; Junior standing.

    Schedule Of Classes

  • ENG 265 - Style

    ENG 265 - Style

    3.00 credit hours

    An examination of the linguistic structure and rhetorical effects of sentences, paragraphs, and essays in the works of selected writers. Students review English syntax in order to expand their understanding of how stylistic choices affect the creation of meaning.

    Prerequisite(s)


    ENG 115 or ENG 125.

    Schedule Of Classes

  • IFS 320 - Multimedia Presentations

    IFS 320 - Multimedia Presentations

    1.50 credit hours

    Design, production and delivery of multimedia presentations. Using a hands-on approach, students learn to create and integrate text, graphics, audio and video into presentations that enhance communication.

    Prerequisite(s)


    One CSC or IFS course.

    Schedule Of Classes

  • LEV 230 - Conflict Resolution

    LEV 230 - Conflict Resolution

    3.00 credit hours

    An inquiry into the theories and skills relating to the resolution of conflict in the community and the workplace. A variety of approaches are used to understand and analyze issues and develop skills including lecture/discussion, negotiation exercises and simulated mediations. The course focuses on developing the ability to practice as a mediator.

    Prerequisite(s)


    Sophomore standing.

    Core

    Communication or Social Science.

    Schedule Of Classes

  • MED 200 - Digital Writing

    MED 200 - Digital Writing

    3.00 credit hours

    Digital writing introduces students to writing on different types of platforms including the web, applications and social media. Students learn to write for a variety of different topics including blog writing, online news and public relations. The course also hones writing and research skills for digital writing.

    Prerequisite(s)


    ENG 115 or ENG 125.

    Schedule Of Classes

Additional Requirements for the B.A. Degree

  • Complete a second major or a minor outside of CSC -or-
  • Complete three additional communications courses from the communications support list above

Typical B.A. Course Sequences

Students needing Math Prerequisite:

  FALL WINTER SPRING
FIRST YEAR
  • IFS 115*
  • MTH 121 
  • CSC 140 
     
 
SECOND YEAR
  • CSC 160 
  • CSC 161 
  • CSC 230 

*IFS 115 is a recommended elective.

 Students meeting Math Prerequisite:

  FALL WINTER SPRING
FIRST YEAR
Sequence One
Students new to
computer programming
  • IFS 115*
  • CSC 140 
  • CSC 160 
     
  • CSC 161 
  • CSC 230 
Sequence Two
Students with some programming background
  • IFS 115*
  • CSC 160 
  • CSC 161 
     
  • CSC 230 
     
SECOND YEAR
  • CSC 220 
  • CSC elective or support course
  • CSC 210 
  • CSC elective or support course
  • CSC 306 
  • CSC elective or support course

*IFS 115 is a recommended elective.

Computer Science, B.S.

For additional programs and courses in this department, see Computer Science.

Major Requirements

A minimum of 39 credit hours to include:

Core for the B.S. Degree

  • CSC 160 - Computer Science I

    CSC 160 - Computer Science I

    3.50 credit hours

    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 programming. Extensive programming required. Laboratory required.

    Prerequisite(s)


    MTH 121 or higher or appropriate placement.

    Schedule Of Classes

  • CSC 161 - Computer Science II

    CSC 161 - Computer Science II

    3.50 credit hours

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

    Prerequisite(s)


    CSC 160 or one year of high school programming in Java; MTH 121 or higher or appropriate placement.

    Schedule Of Classes

  • CSC 210 - Data Structures and Algorithms

    CSC 210 - Data Structures and Algorithms

    3.00 credit hours

    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.

    Prerequisite(s)


    CSC 161 and knowledge of C++ or Java; CSC 230 recommended.

    Schedule Of Classes

  • CSC 220 - Computer System Concepts

    CSC 220 - Computer System Concepts

    3.00 credit hours

    Basic computer architecture including combinational circuits, instruction sets, microprogramming, assembly language, I/O (devices, busses and interrupts) and memory systems and organization. Programming required.

    Prerequisite(s)


    CSC 161; CSC 230 recommended.

    Schedule Of Classes

  • CSC 230 - Discrete Structures I

    CSC 230 - Discrete Structures I

    3.00 credit hours

    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.

    Prerequisite(s)


    CSC 160; MTH 121 or higher.

    Core

    Mathematics.

    Schedule Of Classes

  • CSC 306 - Software Development in C++

    CSC 306 - Software Development in C++

    3.00 credit hours

    Object-oriented design and implementation of large scale software using C++. Topics include inheritance, polymorphism, virtual functions, operater overloading and the STL. Extensive programming required.

    Prerequisite(s)


    CSC 161 and knowledge of C++ or Java; CSC 210 recommended.

    Schedule Of Classes

  • CSC 495 - Capstone Seminar

    CSC 495 - Capstone Seminar

    3.00 credit hours

    The 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(s)


    Senior standing; Computer Science major or minor.

    Schedule Of Classes

  • Students with equivalent background for a core course may have it waived by the department chair and substitute an additional CSC elective in its place.

Electives

Choose six electives, at least three of which must be chosen from the following:

  • CSC 340 - Algorithms

    CSC 340 - Algorithms

    3.00 credit hours

    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.

    Prerequisite(s)


    CSC 210; CSC 230; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 415 - Web Applications

    CSC 415 - Web Applications

    3.00 credit hours

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

    Prerequisite(s)


    CSC 161; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 420 - Operating Systems I

    CSC 420 - Operating Systems I

    3.00 credit hours

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

    Prerequisite(s)


    CSC 161; CSC 220; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 427 - Linux Programming

    CSC 427 - Linux Programming

    3.00 credit hours

    Fundamental concepts, library facilities and programming 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 programming in C and C++ required. Students may not receive credit for both CSC 427 and CSC 527.

    Prerequisite(s)


    CSC 306; Junior standing or instructor consent; CSC 420 highly recommended.

    Schedule Of Classes

  • CSC 469 - Computer Networks

    CSC 469 - Computer Networks

    3.00 credit hours

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

    Prerequisite(s)


    CSC 220 or concurrent enrollment; Junior standing or instructor consent.

    Schedule Of Classes

  • CSC 479 - Computer and Network Security

    CSC 479 - Computer and Network Security

    3.00 credit hours

    Students are introduced to the theory and methods for developing and maintaining secure systems and applications. Topics include secure infrastructures, intrusion prevention and detection, viruses and anti-virus software, software security, authentication, cryptography and legal and ethical issues.

    Prerequisite(s)


    CSC 469; Junior standing or instructor consent.

    Schedule Of Classes

Required Communications Support:

Two of the following courses (one of which may be used to fulfill the College's general education speech communication requirement):

  • COM 100 - Introduction to Public Speaking

    COM 100 - Introduction to Public Speaking

    3.00 credit hours

    An introduction to a wide array of public speaking skills, including preparation, presentation and evaluation of speeches. Recommended primarily for first year students and sophomores.

    Core

    Communication
    IAI

    C2 900

    Schedule Of Classes

  • COM 200 - Interpersonal Communication

    COM 200 - Interpersonal Communication

    3.00 credit hours

    A study of communication in face-to-face interactions. The course examines the role of perception of self and others in communication and explores such topics as nonverbal communication, verbal styles, relationship development and conflict management. Skills training is an important component of the course.

    Core

    Communication.

    Schedule Of Classes

  • COM 214 - Group Process

    COM 214 - Group Process

    3.00 credit hours

    The understanding and practice of small group communication theory and skills in information-sharing and decision-making discussions.

    Core

    Communication.

    Schedule Of Classes

  • COM 230 - Business and Professional Communication

    COM 230 - Business and Professional Communication

    3.00 credit hours

    This course focuses on developing the skills and strategies involved in written, face-to-face and electronic communication in professional settings. Students learn fundamentals of interviewing, writing and presenting in professional contexts and may investigate organizational communication practices such as performance feedback, training, meeting management and organizational identity.

    Prerequisite(s)


    One of COM 100, COM 200 or COM 214; Junior standing.

    Schedule Of Classes

  • ENG 265 - Style

    ENG 265 - Style

    3.00 credit hours

    An examination of the linguistic structure and rhetorical effects of sentences, paragraphs, and essays in the works of selected writers. Students review English syntax in order to expand their understanding of how stylistic choices affect the creation of meaning.

    Prerequisite(s)


    ENG 115 or ENG 125.

    Schedule Of Classes

  • IFS 320 - Multimedia Presentations

    IFS 320 - Multimedia Presentations

    1.50 credit hours

    Design, production and delivery of multimedia presentations. Using a hands-on approach, students learn to create and integrate text, graphics, audio and video into presentations that enhance communication.

    Prerequisite(s)


    One CSC or IFS course.

    Schedule Of Classes

  • LEV 230 - Conflict Resolution

    LEV 230 - Conflict Resolution

    3.00 credit hours

    An inquiry into the theories and skills relating to the resolution of conflict in the community and the workplace. A variety of approaches are used to understand and analyze issues and develop skills including lecture/discussion, negotiation exercises and simulated mediations. The course focuses on developing the ability to practice as a mediator.

    Prerequisite(s)


    Sophomore standing.

    Core

    Communication or Social Science.

    Schedule Of Classes

  • MED 200 - Digital Writing

    MED 200 - Digital Writing

    3.00 credit hours

    Digital writing introduces students to writing on different types of platforms including the web, applications and social media. Students learn to write for a variety of different topics including blog writing, online news and public relations. The course also hones writing and research skills for digital writing.

    Prerequisite(s)


    ENG 115 or ENG 125.

    Schedule Of Classes

Additional Requirements for the B.S. Degree

  • MTH 152 - Calculus II

    MTH 152 - Calculus II

    3.00 credit hours

    Continuation of Calculus I with emphasis on integration and its applications. Required for the B.S. degree in any department.

    Prerequisite(s)


    MTH 141 or MTH 151.

    Core

    Mathematics.
    IAI

    M1 900

    Schedule Of Classes

One of the following:

  • CSC 231 - Discrete Structures II * (same as MTH 231)

    CSC 231 - Discrete Structures II

    3.00 credit hours

    A second course in discrete mathematics that introduces more advanced topics as well as covering some of the material introduced in CSC/MTH 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.

    Prerequisite(s)


    CSC 230/MTH 230.

    Schedule Of Classes

  • MTH 153 - Calculus III

    MTH 153 - Calculus III

    3.00 credit hours

    Continuation of Calculus II with an emphasis on infinite series.

    Prerequisite(s)


    MTH 152.

    Core

    Mathematics.
    IAI

    M1 900

    Schedule Of Classes

Note(s):

* CSC 231 may be used as a CSC elective or a B.S. support course, but not both.

One of the following:

  • BUS 241 - Business and Economic Statistics

    BUS 241 - Business and Economic Statistics

    3.00 credit hours

    This course is designed to provide students with the ability to apply and interpret descriptive and inferential procedures, probability distributions, statistical sampling and design, hypothesis testing and regression. Primary objectives are to improve the statistical capabilities of students as well as their abilities to apply statistical concepts in a business setting.

    Prerequisite(s)


    MTH 121 or higher or appropriate placement.

    Core

    Mathematics.

    Schedule Of Classes

  • MTH 342 - Probability and Statistics II

    MTH 342 - Probability and Statistics II

    3.00 credit hours

    A continuation of MTH 341 to include continuous distributions, central limit theorem, estimations, hypothesis testing and applications.

    Prerequisite(s)


    MTH 341.

    Schedule Of Classes

  • PSY 250 - Statistics

    PSY 250 - Statistics

    3.00 credit hours

    A course stressing the methods, concepts and logic underlying the statistical evaluation of research data. The course stresses descriptive and inferential statistics, estimation and hypothesis testing and "why" as well as "when" to use various statistical methods. A working knowledge of basic algebraic techniques is necessary. Only one of PSY 250 and BUS 241/ECN 241 may be taken for credit.

    Prerequisite(s)


    MTH 118 or higher.

    Core

    Mathematics.
    IAI

    M1 902

    Schedule Of Classes

Typical B.S. Course Sequences

  FALL WINTER SPRING
FIRST YEAR
Sequence One
Students new to
computer programming
  • IFS 115*
  • CSC 140 
  • CSC 160 
     
  • CSC 161 
  • CSC 230 
Sequence Two
Students with some programming background
  • IFS 115*
  • CSC 160 
  • CSC 161 
     
  • CSC 230 
     
SECOND YEAR
  • CSC 220
  • MTH 151 or CSC elective
  • CSC 210
  • MTH 152 or CSC elective
  • CSC 306 
  • MTH 153 or CSC elective

*IFS 115 is a recommended elective.

Computer Science Minor

For additional programs and courses in this department, see Computer Science.

Minor Requirements

A minimum of 19 credit hours in Computer Science.

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.

Frank Harwath

Professor of Engineering, Director of Engineering Program
Engineering
630-637-5173
Christopher Kardaras

Visiting Assistant Professor of Computer Science
CSC
Sun-il Kim

Associate Professor of Computer Science; Chairperson, Department of Computer Science
CSC
5176
Godfrey Muganda

Professor of Computer Science
CSC
5174
Stephen Renk

Professor of Computer Science; Coordinator of Master of Science Computer Science (MSCS) Program
CSC
630-637-5170
Caroline St. Clair

Associate Dean for Student Success; Professor of Computer Science
CSC
5171

Faculty Emeriti

Judy C. Walters
Associate Professor of Computer Science Emerita 
B.A., University of Iowa, 1968; M.S., Illinois Institute of Technology, 1984
Office: Carnegie Hall 311D 
630-637-5177
jcwalters@noctrl.edu

 

Adjunct Faculty

Pero Atanasov
B.S., North Central College; M.S., University of Chicago
Senior Software Engineer, Informatica

Brian Craig
B.S., M.S., North Central College
Software Engineer Specialist, Argonne National Laboratory

William Krieger
B.S., University of Illinois at Urbana-Champaign; M.S., University of Illinois at Chicago
Co-founder, Synopsys


 

 

Computer Science students have the opportunity to participate in a number of activities outside the classroom that will enhance their learning experiences in the classroom.

Students have the opportunity to participate in the yearly ACCA programming competition where our students compete with students from other schools in the Chicagoland area. Students may also choose to participate in our internship program and our summer undergraduate research program where they can gain valuable real-world experience. In addition, students may serve as lab assistants or tutors, or participate in the college's preceptor program.

Students interested in these opportunities should contact the computers science department for more information.


News