Quick Navigation

Undergraduate Program

2006-2007 CSCI Undergraduate Course Catalog

CSCI 205, Introduction to Computing – 3 hours.

Introduction to computers, computer science, and programming techniques. Not available for credit toward the major in computer science or for students with prior credit in CSCI 210, CSCI 230, CSCI 240, CSCI 250, or OMIS 259. PRQ: Placement through MATH 110 or consent of department.


CSCI 210, Programming for the Social Sciences – 4 hours.

Laboratory course in computer programming using a major high level computing language such as C and statistical packages such as SAS and SPSS.  Not available for credit to students with prior credit in CSCI 230 or CSCI 240. PRQ: MATH 110 or consent of department.


CSCI 215, Visual Basic – 4 hours.

Laboratory course in computer programming using Visual Basic.  Not available for credit to students with prior credit in courses numbered above CSCI 465. PRQ: MATH 110, satisfactory performance on the Mathematics Placement Examination, or consent of department.


CSCI 230, Computer Programming in FORTRAN – 4 hours.

In-depth laboratory course in computer programming using the FORTRAN language. Applications to mathematical problems in the physical sciences. Extensive laboratory work.  PRQ: MATH 211 or MATH 229.


CSCI 240, Computer Programming in C++ – 4 hours.

Emphasis on algorithm development and structured programming design and testing. Topics include input and output, decisions, loops, funtions, arrays, text manipulation, files and data abstraction.   PRQ: MATH 110 or consent of department.


CSCI 241, Intermediate Programming in C++ – 4 hours.

A second course in computer programming and programming techniques with emphasis on design and implementation of data structures applied to large-scale projects. Topics include static and dynamic implementation of linear and nonlinear data structures, recursion, searching and sorting algorithms, and algorithmic complexity analysis. PRQ: CSCI 240 or consent of department.


CSCI 250, Computer Programming in COBOL – 4 hours.

A laboratory course in computer programming using the COBOL language. Emphasis is on applications which require data management and the solution of problems involving evaluation of large amounts of data. Extensive laboratory work.  Not available for credit to students with credit in CSCI 360. PRQ: MATH 110 or consent of department.


CSCI 275, Elementary Web Design – 3 hours.

Practical techniques for building web sites using HTML, CSS, and an integrated development environment. Aesthetic topics include designing an effective user interface with color, graphics, navigation, and layout. Not available for credit to students who have prior credit for COMS 359.


CSCI 297, Directed Study – 1 to 3 hours.

Selected readings or projects to supplement lower division CSCI courses. May be repeated to a maximum of 3 semester hours. PRQ: Consent of department.


CSCI 330, The UNIX System – 4 hours.

In-depth laboratory course in the UNIX operating system. Applications to a wide variety of problems in computer science. Extensive laboratory work. PRQ: CSCI 230, CSCI 240, or CSCI 250.


CSCI 360, Computer Programming in the Assembler Language – 4 hours.

In-depth study of assembler language programming on a third-generation computer, including internal and external subroutines, conditional assembly, and the macro language. Students are required to write a number of substantial programs. Extensive laboratory work. PRQ: CSCI 230 or CSCI 240.


CSCI 390, Internship – 3 hours.

Work as an intern for a minimum of 20 hours per week in an off-campus agency. Reading and preparation of a paper under faculty supervision. May be repeated once. S/U grading basis is used. No more than 6 semester hours of internship and/or cooperative education credit can be counted toward NIU's required hours for graduation or toward NIU's 40 upper division hour requirement. PRQ: Consent of department and CSCI 230 or CSCI 240.


CSCI 434X / MATH 434, Numerical Linear Algebra – 3 hours.

Crosslisted as MATH 434. Roundoff errors and computer arithmetic. Direct and iterative methods for solving linear systems; norms and condition numbers, iterative refinement. Linear least squares problems: the normal equations and QR approach for overdetermined systems. Numerical methods for eigenvalues: an introduction to the QR iteration. The course makes extensive use of computers. PRQ: MATH 232, MATH 240, and CSCI 230, CSCI 240, or approved equivalent.


CSCI 435X / MATH 435, Numerical Analysis – 3 hours.

Crosslisted as MATH 435.  Polynomial interpolation, numerical solutions of nonlinear equations, least squares approximation by polynomials, orthogonal polynomials, economization of power series. Numerical integration including quadrature formulae, adaptive quadrature, composite quadrature formulae, and Romberg integration. Numerical methods for initial value problems including Taylor series methods, Runge-Kutta methods, and multistep methods. The course makes extensive use of computers. PRQ: MATH 232, MATH 240, and CSCI 230, CSCI 240, or approved equivalent.


CSCI 440, Data Structures and Algorithm Analysis – 4 hours.

Application of analysis and design techniques to nonnumeric algorithms acting on data stuctures. Utilization of algorithmic analysis and design criteria in the selection of methods for data manipulation. Computing projects will be done in a high level computing language. Laboratory projects. PRQ: CSCI 241 and CSCI 360, or consent of department.


CSCI 461, Techniques of Computer Programming and Algorithmic Processes – 3 hours.

Advanced course in algorithmic processes and computer programming. A major higher-level language will be used in developing applications and the solutions of current problems. Knowledge of programming is required. PRQ: Consent of department. Recent course topics


CSCI 462, Introduction to the Foundations of Computer Science – 3 hours.

Introduction to the mathematical languages, automata theory, and the theory of recursive functions and computability. Serves as a capstone course for the emphasis in theoretical computer science. PRQ: MATH 232 or MATH 240, and CSCI 230 or CSCI 240.


CSCI 463, Computer Systems Organization – 4 hours.

Organization and use of distributed computer systems. Basic concepts and examples from microcomputers and networks, peripheral components, data communications, and the organization of operating systems such as UNIX and DOS. Extensive laboratory work. PRQ: CSCI 360 or consent of department.


CSCI 464, Data Structures – 4 hours.

In-depth study of the theory and the programming techniques related to the storage and management of various forms of data. Programming assignments require an advanced understanding of asssembler language. Extensive laboratory work. PRQ: CSCI 360 or consent of department.


CSCI 465, External Data Structures – 4 hours.

Formal organization of files, organization techniques using direct access, and indexed sequential and sequential files. COBOL topics, job control language, access methods and utilities with applications to data processing. Extensive laboratory work. PRQ: CSCI 360, or consent of department.


CSCI 466, Database/Data Communications Software – 4 hours.

Software development in a representative current database and an on-line interactive teleprocessing system. Extensive laboratory work. PRQ: CSCI 241, or consent of the department.


CSCI 467, Systems Design and Analysis – 4 hours.

Phases of the systems development life cycle and the tools used by the analyst in planning, specifying, and implementing a complex computer-based system. Related topics include documentation standards, interaction with users, and design of interfaces. Assignments include at least one major group project. Serves as a capstone course for the emphases in general computer science and in applied computer science. PRQ: CSCI 440, or consent of the department.


CSCI 468, Systems Programming – 4 hours.

Detailed study of systems programming on a third-generation computer. Emphasis on the logical organization of the computer used. Extensive laboratory work. PRQ: CSCI 464 or equivalent.


CSCI 470, Programming in JAVA – 3 hours.

Intermediate-level course in object-oriented programming in JAVA, including multi-threading, graphical applets, and Internet-based distributed client-server database applications.  Extensive laboratory work.  PRQ: CSCI 440 or CSCI 240 and CSCI 464.


CSCI 473, .NET Programming – 3 hours.

Comprehensive introduction to builiding Windows and web applications and web services using the Microsoft .NET development platform. Includes programming in the C# language, graphics programming, the .NET Common Language Runtime, the .NET Framework classes, ADO.NET, ASP.NET, and web services.  Extensive laboratory work.  PRQ: CSCI 440 or CSCI 464, or consent of department.


CSCI 475, Web Development – 3 hours.

Examination of web application development. Technical topics include HTML, Cascading Style Sheets, JavaScript, and cross-browser compatibility. Includes designing an effective user interface with color, graphics, navigation, and related topics.   Extensive laboratory work.  PRQ: CSCI 440 or CSCI 464, or consent of department.


CSCI 480, Theoretical Operating Systems – 4 hours.

Principles and practices of modern operating system design. Includes file systems organization; multi-tasking; windowing interfaces such as Windows or OS/2; interprocess communication, including communications across a network; server-client models of processing. PRQ: CSCI 330 or CSCI 463, and CSCI 440 or CSCI 464, or consent of department.


CSCI 490, Topics in Computer Science – 3 hours.

Selected topics in computer science. May be repeated when subject varies.
A. Algorithms. Crosslisted as MATH 490AX.
B. Artificial Intelligence.
C. Automata, Computability, and Formal Languages. Crosslisted as MATH 490CX.
D. Compiler Design and Implementation.
E. Computer Systems.
G. Database Concepts
J. Information Systems.
K. Programming Languages.
M. Computer Applications.
N. Computer Graphics.
Q. Computer Security.
R. Computer Networks.
U. Web Development.

Each lettered topic may be repeated to a maximum of 6 semester hours when subject changes.  PRQ: Senior standing and consent of department. Recent course topics


CSCI 497, Undergraduate Readings in Computer Science – 3 hours.

Individual readings in computer science. May be repeated to a maximum of 6 semester hours. PRQ: Consent of department.