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.
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.
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.
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.
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.
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.
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.
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.
Selected readings or projects to supplement lower division CSCI courses. May be repeated to a maximum of 3 semester hours. PRQ: Consent of department.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Individual readings in computer science. May be repeated to a maximum of 6 semester hours. PRQ: Consent of department.