Computer Science and Engineering

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.

 

Computer Science, B.A.

Computer science offers a mix of theory of computation, software development, systems concepts, and computing applications. Our graduates are employed in a wide range of companies and research labs.

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

Core Courses

Electives

  • One four credit hour CSCE or INFS elective at the 200-level or above
  • One four credit hour CSCE elective at the 300-level or above *
  • One four credit hour CSCE elective at the 400-level *

Note:

Support Courses

Ethics

One of the following:

Communications

One of the following:

Foreign Language

Students must demonstrate elementary competence in a foreign language. For more information, see the B.A. Degree Requirements within the Academic Regulations section of this catalog.

Communication Courses

  • Two additional four credit hour courses from the Communications list above, not already taken for the major.

Computer Science, B.S.

Computer science offers a mix of theory of computation, software development, systems concepts and computing applications. Our graduates are employed in a wide range of companies and research labs.

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

Core Courses

Electives

  • One four credit hour CSCE or INFS elective at the 200-level or above

  • One four credit hour CSCE elective at the 300-level or above *

  • One four credit hour CSCE elective at the 400-level *

Note:

Support Courses

Ethics

One of the following:

Communications

One of the following:

Statistics

One of the following:

Computer Engineering, B.S.

Computer Engineering is a blend of computer science and electrical engineering. Our students see a broad spectrum of applications in the areas of computer hardware/software and electronics.

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

A minimum of 45 credit hours of Engineering coursework to include:

Core Courses

Ethics

One of the following:

Mathematics and Laboratory Science

A minimum of 30 credit hours of Mathematics and Science coursework to include:

Mathematics

Laboratory Science

Eight credit hours from the following:

Statistics/Probability

A minimum of four credit hours from one of the following options:

Option 1:

Option 2:

One of the following:

Notes:

  • *Mathematics and Laboratory Science hours based on ABET criteria:
    • CSCE 230 applies to the Mathematics and Science total hours.
    • If students do not meet the minimum Mathematics and Science requirements, additional coursework may need to be taken.
    • Courses below MATH 151 do not apply to the required credit hours in Mathematics and Science.
  • **Students who do not place into MATH 151 must successfully complete the course prerequisite, MATH 140.

Computer Science Minor

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

A minimum 20 credit hours in Computer Science, including:

Note:

*Only one IFS course may be used to satisfy minor requirements. An internship cannot be used to meet minor requirements.

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.

Course Descriptions

The courses listed herein have been approved by the faculty as authorized by the Board of Trustees.  Prerequisites (if any) and the General Education Requirement(s) which each course fulfills (if any) are noted following each course description.

Current course offerings are available in Merlin.

CSCE 160 - Introduction to Computer Programming

4.00 credit hours - An introduction to computer science and programming, emphasizing the development of algorithms and problem solving skills using both procedural and object-oriented approaches. Topics include data types; I/O; arithmetic, relational and logical operators; control structures; functions; simple data structures; different computing environments such as the Linux operating system are also explored. Integrated laboratory.

CSCE 210 - Data Structures

4.00 credit hours - Elementary data structures and algorithms. Topics include the design, implementation, application and variations of the following: linked lists, stacks and queues; different types of trees; searching and sorting algorithms; graphs; and introduction to analysis of algorithms. Extensive programming required. Integrated laboratory.

Prerequisite(s): Minimum grade of C- in CSCE 160.

CSCE 220 - Computer Organization and Design

4.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. Integrated laboratory.

Prerequisite(s): Minimum grade of C- in CSCE 160.

CSCE 230 - Discrete Structures

4.00 credit hours - Fundamental topics in mathematics and computer science including: formal logic; proof techniques; sets, relations and functions; combinatorics and counting techniques; induction and recursion; discrete probability; number theory and cryptography; graphs; Boolean algebra; finite state machines and modeling computation; program verification and algorithm analysis. Programming may be required.

Prerequisite(s): CSCE 160.

CSCE 297 - Internship

0.00-12.00 credit hours - Valuable professional experiences supplement classroom instruction and allow students to apply theories and concepts to broader issues and system. Students explore career options within a specific area of study and critically reflect on the experience in a structured manner. May be repeated with different professional experience.

Prerequisite(s): Sophomore standing.

CSCE 299 - Independent Study

1.00-12.00 credit hours - Individual studies undertaken with guidance of a faculty member. May be repeated with different content.

CSCE 306 - Object Oriented Software Development

4.00 credit hours - Object-oriented design and implementation of large scale software. Topics include object-oriented modeling and design, such as the use of UML and software design patterns, object-oriented language features, such as inheritance, polymorphism, encapsulation and overloading, and using existing class libraries. Extensive programming required. Integrated laboratory.

Prerequisite(s): Minimum grade of C- in CSCE 210.

CSCE 315 - Web Applications

4.00 credit hours - Development of web applications. Topics include HTTP, the Browser and Document Object Models; Server-side technologies such as Java Servlets, ASP.NET MVC and NodeJS/Express; Client-side technologies JavaScript, AJAX and JQuery; and server-side database access. Introduction to Single Page Apps and Restful services using JAXRS and ASP.NET Web API. Extensive programming required.

Prerequisite(s): CSCE 210.

CSCE 320 - Computer Architecture

4.00 credit hours - Introduction to digital computer architecture. Topics include performance metrics and evaluation, instruction set architecture, data representation, processor design, memory hierarchy and cache, I/O, data path and control, pipelining, branching, multiprocessors and (review of) assembly language programming. Integrated laboratory.

Prerequisite(s): CSCE 220.

CSCE 327 - Linux Programming

4.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 required in C/C++.

Prerequisite(s): CSCE 220 and CSCE 306.

CSCE 330 - Mobile Applications Development

4.00 credit hours - An introduction to creating applications that run on mobile devices such as smartphones, tablets and smart watches. Topics include device hardware and development platforms; interface design; interactivity; SQLite database; multimedia; monetization. Extensive programming required. Integrated laboratory.

Prerequisite(s): CSCE 306.

CSCE 335 - Introduction to Game Design and Development

4.00 credit hours - Project-based course; The design and development of computer games, with an introduction to a modern game engine such as Unity or Unreal Engine. Extensive programming and major project required. Integrated laboratory.

Prerequisite(s): CSCE 306.

CSCE 336 - Human Computer Interaction

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

Prerequisite(s): CSCE 210.

CSCE 340 - Design and Analysis of Algorithms

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

Prerequisite(s): CSCE 210 and CSCE 230.

CSCE 370 - Principles of Programming Languages

4.00 credit hours - Design principles behind modern programming languages, analysis of languages, language implementation, formal specification, semantics and parsing, and comparative study of programming paradigms. Programming required.

Prerequisite(s): CSCE 210 and CSCE 230.

CSCE 390 - Special Topics

4.00 credit hours - A course covering a topic of current interest, such as game development, eBusiness, social analytics, virtual/augmented reality or mobile computing.

CSCE 397 - Internship

0.00-12.00 credit hours - Valuable professional experiences supplement classroom instruction and allow students to apply theories and concepts to broader issues and system. Students explore career options within a specific area of study and critically reflect on the experience in a structured manner. May be repeated with different professional experience.

Prerequisite(s): Junior standing.

CSCE 399 - Independent Study

1.00-12.00 credit hours - Designed for students who want to study a topic not covered in a regular course.

CSCE 420 - Operating Systems

4.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. Research literature is used to introduce systems research topics. Extensive programming required. Integrated laboratory.

Prerequisite(s): CSCE 220 and CSCE 306.

CSCE 455 - Windows and .NET Programming

4.00 credit hours - System and application programming on Windows and the .NET platform using C#. Topics include Windows Forms and the Windows Presentation Foundation, inter-process communication, .NET network programming, ADO.NET and security.

Prerequisite(s): CSCE 306.

CSCE 460 - Database Systems

4.00 credit hours - Introduction to data modeling, database design and implementation, SQL, transaction processing, concurrency and recovery with emphasis on the relational model. Database connectivity APIs, such as JDBC are also covered. Programming required.

Prerequisite(s): CSCE 210 and Junior standing.

CSCE 464 - Data Mining and Machine Learning

4.00 credit hours - Introduction to the data mining process and its application to real-world problems. Topics include data preparation techniques, supervised and unsupervised machine learning algorithms and post-processing metrics to identify information of interest. Programming required.

Prerequisite(s): CSCE 210CSCE 230MATH 280 or MATH 340.

CSCE 469 - Computer Networks

4.00 credit hours - Exploration of the theory and design issues in data communications and computer networks. Topics include network architecture, TCP/IP protocols, wireless and mobile networks and network security. Extensive programming required. Integrated laboratory.

Prerequisite(s): CSCE 220 and CSCE 306.

CSCE 479 - Computer and Network Security

4.00 credit hours - Introduction 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. Modern topics, such as cryptocurrency, cyber physical systems, cloud computing, etc., are covered through a survey of research and technical literature. Programming required. Integrated laboratory.

Prerequisite(s): CSCE 220 and CSCE 306.

CSCE 480 - Introduction to Artificial Intelligence

4.00 credit hours - Foundational concepts in artificial intelligence (AI); definitions, survey of AI topics, problem solving and searching, heuristics, knowledge representation, reasoning, learning, programming languages for AI; study of applications areas and the research literature. Programming required.

Prerequisite(s): CSCE 230 and CSCE 306.

CSCE 487 - Parallel and Concurrent Programming

4.00 credit hours - 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.

Prerequisite(s): CSCE 420.

CSCE 490 - Special Topics

4.00 credit hours - A course covering a topic of current interest, such as cloud computing, e-Business, machine intelligence, social analytics, video design, virtual/augmented reality or mobile computing.

CSCE 494 - Senior Capstone

4.00 credit hours - Students 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 computing solution (software/hardware) to a substantive problem. Group process and leadership skills are addressed as well as ethical considerations important to computer science professionals. Formal project proposal, progress report and technical report writing are emphasized.

Prerequisite(s): CSCE 420 and Senior standing.
Cardinal Directions Designation(s): Career Preparation, Career Experiential.

CSCE 497 - Internship

0.00-12.00 credit hours - Valuable professional experiences supplement classroom instruction and allow students to apply theories and concepts to broader issues and system. Students explore career options within a specific area of study and critically reflect on the experience in a structured manner. May be repeated with different professional experience.

Prerequisite(s): Junior standing.

CSCE 499 - Independent Study

1.00-12.00 credit hours - Designed for students who want to study a topic not covered in a regular course.

Faculty Emeriti

Godfrey A. Muganda
Professor of Computer Science Emeritus 
B.S., Eastern Mennonite College, 1979; M.S., College of William and Mary, 1980; Ph.D., Lehigh University, 1984
gcmuganda@noctrl.edu

Stephen C. Renk
Professor of Computer Science Emeritus 
B.A., 1973, M.S., 1979, Ph.D., 1986, University of Iowa
screnk@noctrl.edu

Caroline St. Clair
Professor of Computer Science Emerita 
B.S., Loyola University, 1984; M.S., 1991, Ph.D., 2000, DePaul University
cstclair@noctrl.edu

Judy C. Walters
Associate Professor of Computer Science Emerita 
B.A., University of Iowa, 1968; M.S., Illinois Institute of Technology, 1984
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

Jennifer Dust
B.A., M.S., North Central College
Web Applications Programmer and Graduate Assistant, North Central College

Ronald Hurlbut
B.S., M.S., Michigan Tech University

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