INDIANA UNIVERSITY SOUTH BEND 2003 - 2005 BULLETIN

 

IUSB Course Descriptions

P = Prerequisite, R = Recommended, C = Concomitant
I =  Fall Semester, II = Spring Semester, S = Summer Session(s)

 

Afro-American Studies | Radiography/Allied Health | Anatomy | Anthropology | Astronomy | Biology | Business | Graduate Business | Chemistry | Comparative Literature | College of Arts & Sciences | Computer Science | Dental Assisting | Dental HygieneEconomics | Education | English | Fine Arts | Folklore | French | General Studies | Geography | Geology | German | Gerontology | History | Honor's Courses | HPER | History & Philosophy of Science | Informatics | Japanese | Journalism | Liberal Studies | Linguistics (ESL) | Labor Studies | Latin American Studies | Mathematics | Microbiology | Music | Nursing | Philosophy | Physiology | Physics | Plant Sciences | Political Science | Psychology | Religious Studies | Sociology | Spanish | Speech Communication | SPEA | Social Work | Telecommunications | Theatre & Drama | Women's Studies | Zoology

 

 

CSCI: Computer Science

 

CSCI A106 Introduction to Computing (3 cr.) Fundamentals of computer hardware and software; use of packaged programs in areas such as word processing, spreadsheets, database management, communications, graphics; the role and impact of computers in society. Course is designed for people with little or no computer experience. One class per week is spent in the microcomputer teaching laboratory. Students may not receive credit for both BUS K201 and CSCI A106. May not be taken for graduation credit after CSCI C101 or CSCI C201.

 

CSCI A107 PROGRAMMING WITHIN APPLICATIONS (4 cr.) P: CSCI A106 or equivalent. Advanced study and use of the Microsoft productivity suites: Word, Excel, Outlook, Access, PowerPoint. Programming within applications using Visual BASIC for Applications. Elementary database design and development. Advanced features of the Windows operating system. Design, construction and publishing of Web pages. May not be taken for graduation credit after CSCI C101 or CSCI C201.

 

CSCI A150 UNDERSTANDING OPERATING SYSTEMS (1 cr.) P: CSCI A106 or equivalent. Study of the basic concepts of operating systems. Understanding the role of operating systems in providing a virtual machine interface. Understanding the relationship between the hardware and operating system. Survey of the user level operating system facilities and commands. May not be taken for graduation credit after CSCI C101 or CSCI C201.

 

CSCI A201 INTRODUCTION TO PROGRAMMING (4 cr.) R: MATH M014, CSCI A106. Fundamental programming constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular programming, user-interface design, and developing good programming style. Not intended for computer science majors. May not be taken for graduation credit after CSCI C101 or CSCI C201.

 

CSCI A338 NETWORK TECHNOLOGIES AND ADMINISTRATION (3 cr.) P: CSCI A150. Introduction to network principles and current network technology, both hardware and software. Network administration tools and techniques. Laboratory provides practical experience. May not be taken for graduation credit after CSCI C101 or CSCI C201.

 

CSCI A340 INTRODUCTION TO WEB PROGRAMMING (3 cr.) P: CSCI A201 or CSCI C101. An introduction to programming Web documents, including HTML, JavaScript and Perl. Creation of a simple Web site, including a home page with dynamic elements, using both client-side and server-side techniques. Not intended for computer science majors.

 

CSCI A505 object-oriented programming (4 cr.) Provides students with background in computer programming skills. The focus is on a fundamental understanding of the programming process, particularly object oriented, related to business and managerial applications. Students will be expected to create working programs in a suitable language, such as Visual BASIC, C++, or Java (or whatever language is appropriate as circumstances change), but more emphasis will be placed on design principles and concepts such as "object," "class," and "interface" than on coding proficiency.

 

CSCI A510 database management systems (3 cr.) P: CSCI A505; C: BUSB A505. Provides students with a background in database management systems development and application. Emphasizes fundamental understanding of database management systems as they relate to businesses and management computer applications. Students will be exposed to various logical data models including hierarchical, network, relational, and object-oriented. Topics covered include file systems and databases, the relational database model structured query language, entity relationship modeling, normalization of database tables, database design, conceptual design, conceptual design verification, logical design implementation, transaction management concurrence control distributed database management systems, object-oriented databases, client/server systems, data warehouse, databases and the internet, and database administration.

 

CSCI A515 telecommunications (4 cr.) P: CSCI A505. Provides students with a background in telecommunications and computer networking. Emphasizes fundamental understanding of telecommunications as they relate to business and management computer applications. Students are expected to become conversant with telecommunication systems design principles and concepts, not to develop the network building skills associated with a technician.

 

CSCI B424 parallel and distributed programming (3 cr.) P: CSCI C243, MATH M301. Overview of parallel computers, shared memory, message passing, MIMD and SIMD classifications. Understanding and use of message passing and synchronization facilities such as MPI. Study of parallel programming models such as master-slave, client-server, task-farming, divide-and-conquer and pipelining. Performance analysis of parallel systems, execution time, time complexity, load balancing and scalability. Credit not given for both CSCI B424 and CSCI B524.

 

CSCI B438 COMPUTER NETWORKS (3 cr.) P: CSCI C243, CSCI 335. Fundamental concepts and technologies used in design of computer networks. Architecture and design philosophy of Internet and basic performance issues. Low-level technologies like Ethernet and wireless. Packet switching and virtual circuits. Core protocols of the Internet, such as TCP and IP. Error control, congestion control, and routing.

 

CSCI B481 interactive computer graphics (3 cr.) P: CSCI C243, MATH M301. An introduction to interactive programming: design and implementation of graphical user interfaces (GUI). Fundamentals of modern interactive graphics: hardware, software, data structures, mathematical manipulation of graphical objects, algorithms for two- and three-dimensional graphics. No prior background in graphics is needed, although a good background in C++ programming and data structures is required. Some familiarity with computer architecture is assumed.

 

CSCI B503 ALGORITHMS DESIGN AND ANALYSIS (3 cr.) P: CSCI C251, MATH M209 or MATH M216. Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds, worst-case and average-case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases), Graphs algorithms: spanning trees, shortest paths, connectivity, depth-first, breadth-first search.

 

CSCI B524 parallelism in Programming languages and systems (3 cr.) P: CSCI C243, MATH M301. Overview of parallel computers, shared memory, message passing, MIMD and SIMD classifications. Understanding and use of message passing and synchronization facilities such as MPI. Study of parallel programming models such as master-slave, client-server, tast-farming, divide-and-conquer and pipelining. Performance analysis of parallel systems, execution time, time complexity, load balancing and scalability. Credit not given for both B424 and B524.

 

CSCI B538 networks and distributed computing (3 cr.) P: CSCI B438; R: CSCI C435. Advanced concepts and technologies of computer networks. Protocols and protocol stacks. Client-server models. Distributed object technology. High-performance and high-bandwidth techniques. Distributed operating systems.

 

CSCI B541 hardware system design i (3 cr.) P: CSCI C243, CSCI C335, PHYS P303. Structured approach to hardware design, emphasizing hardwired and microprogrammed control. Boolean algebra, hardware building blocks, architecture and control, implementation issues. In the laboratory, students build a working computer using hardware prototyping technologies. Basic training in the use of design and simulation software. Lecture and laboratory. Credit not given for both CSCI B541 and CSCI C421.

 

CSCI B551 elements of artificial intelligence (3 cr.) P: CSCI C463. Major issues and approaches in artificial intelligence. Principles of reactive, goal-based, and utility-based agents. Problem-solving and search. Knowledge representation and design of representational vocabularies. Inference and theorem proving, reasoning under uncertainty, and planning. Overview of machine learning.

 

CSCI B561 advanced database concepts (3 cr.) P: CSCI C442. Database models and systems: specially relational and object-oriented; relational database design theory; structures for efficient data access; query languages and processing; database applications development; views. Transaction management: concurrency and recovery.

 

CSCI B581 advanced computer graphics (3 cr.) P: CSCI C481. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics, transformations, viewing geometry, object modeling and interactive manipulation methods. Basic lighting and shading. Video and animation methods. A selection of topics from contemporary computer graphics incorporating and extending the material in CSCI C481, such as advanced rendering, procedural modeling, and data visualization. Topics will include exposure to current research as well as providing an historic perspective. A sampling of research papers and a project in computer graphics form a substantial portion of this course.

 

CSCI B582 image synthesis (3 cr.) P: CSCI C481. Raster image display: color theory, gamma correction, and filtering. Advanced shading methods: local illumination models, global illumination models. Surface display, including ray tracing and Z-buffering. Solid modeling; spline surfaces, CSG, superquadrics, and deformations. Scientific visualization: isosurfaces and volume rendering.

 

CSCI B651 natural language processing (3 cr.) P: CSCI C463. Theory and methods for natural language processing. Algorithms for sentence parsing and generation. Context-free and unification grammars. Question-and-answer systems. Analysis of narratives. Finite-state approaches to computational phonology and morphology. Machine translation. Machine learning of natural language. Speech recognition. Neural-network and statistical alternatives to symbolic approaches.

 

CSCI B661 database theory and systems design (3 cr.) Database models: relational, deductive, complex-object, object-oriented. Query languages: relational algebra and calculus, datalog, fixpoint logics, object-oriented query languages. Transaction management theory: concurrency control, recovery, distribution. Post-relational and object-oriented database systems.

 

CSCI B665 software engineering management (3 cr.) (Course currently under development.)

 

CSCI C101 Computer Programming i (4 cr.) P: MATH M014 or equivalent. Fundamental concepts of algorithm development, computer programming, and data structuring.

 

CSCI C151 multiuser operating systems (2 cr.) P: CSCI C101. Survey of the operating system facilities and commands. Installation and maintenance of operating systems such as Linux. Understanding process management, file systems, memory and virtual memory management issues. Understanding networking and its role in modern computing environment. Operating system security. Writing shell scripts and batch files.

 

CSCI C201 Computer Programming II (4 cr.) P: CSCI C101. Fundamental concepts of computer science, including top-down design, data structures, structured control flow, modular programming, recursion, and standard algorithms.

 

CSCI C243 Introduction to Data Structures (4 cr.) P: CSCI C151, CSCI C201. Abstract data types and their implementations using various data structures and algorithms; elementary algorithm analysis; space/time trade-offs; sorting and searching; finite graph algorithms; introduction to object-oriented design and programming; software engineering principles.

 

CSCI C251 Foundations of Digital Computing (3 cr.) P: CSCI C243, a course in calculus. Mathematical foundations of computing, including mathematical induction, propositional logic, proofs of correctness. Turing machines, computability, and the halting problem.

 

CSCI C297 Sophomore Topics in Computer Science (2-3 cr.) Contents and prerequisites vary from year to year. This course may count toward a minor but not a major. The department uses this course to present current and future trends in computing.

 

CSCI C308 System Analysis and Design (4 cr.) P: CSCI C243. The software development life cycle; structured top-down and bottom-up design; data flow diagramming; entity relationship modeling; study of computer-aided software engineering; I/O design and validation; file and database design; design of user interfaces; comparison of structured vs. object-oriented design. A team project will be completed.

 

CSCI C311 Organization of Programming Languages (3 cr.) P: CSCI C243, CSCI C335. Design and implementation of programming languages: syntax; semantics; comparison of programming paradigms such as imperative, functional, logic, and object-oriented. Implementation of concepts such as binding, scope, looping, branching, subprograms and parameter passing, tasks and concurrency, heap management, exception handling, templates, inheritance, overloading.

 

CSCI C335 COMPUTER STRUCTURES (4 cr.) P: CSCI C201. Computer architecture and machine language; internal data representation; assembly systems; macros; program segmentation and linking; I/O devices; serial communication. Projects to illustrate basic machine structure and programming techniques.

 

CSCI C421 Computer Organization (3 cr.) P: CSCI C243, CSCI C335, PHYS P303. Principles of logic design; addressing; central processing units; microprogrammed versus hardwired control; input-output organization, interrupts; other topics chosen by the instructor.

 

CSCI C431 Assemblers and Compilers I (3 cr.) P: CSCI C311. Analysis and implementation of a compiler for a high-level programming language. Relationship between regular languages, finite automata, lexical analysis, and scanner generators such as lex. Relationship between context-free grammars, stack machines, parsers, and parser generators such as yacc and llgen. Symbol tables and semantic analysis for translating declarations, expressions, assignments, I/O, control structures, and subroutines. Large programming project.

 

CSCI C435 Operating Systems (4 cr.) P: CSCI C251, CSCI C308, CSCI C335. R: CSCI C311. Design and implementation of operating systems: the process model, process synchronization, semaphores, deadlock management, multi-tasking, multi-threading, interprocess communication, process scheduling, memory management, paging, segmentation, virtual memory management, file system design and implementation, I/O device drivers, interrupt handlers and spoolers. Students will complete the design and implementation of a simulated multi-tasking operating system.

 

CSCI C441 Information Organization and Retrieval (3 cr.) P: CSCI C243. Fundamental structures and algorithms for the management of secondary storage devices: persistence; sharability; file and database organization; fields; records; transactions; hardware concepts of storage devices; sequential, random, indexed, hashed, and B-tree files; operations on files; search; sort; performance issues.

 

CSCI C442 Database Systems (3 cr.) P: CSCI C308. The fundamental concepts, theory, and practices in the design and implementation of database management systems: data independence; data modeling; entity relationship modeling; functional dependencies; normalization; relational, hierarchical, network, and object-oriented data models; relational algebra; relational calculus; data definition and manipulation languages; recovery; concurrency; security; integrity of data.

 

CSCI C455 Analysis of Algorithms (3 cr.) P: CSCI C251, MATH M209 or MATH M216, and a course in probability. Mathematical analysis of time and space requirements for algorithms, using combinatorics, recurrence relations, and elementary probability theory. Advanced graph algorithms. Tractable and intractable problems.

 

CSCI C463 Artificial Intelligence (3 cr.) P: CSCI C251. R: CSCI C311. Techniques and principles of artificial intelligence and implementations of some of these techniques. Various formalisms for representing knowledge, and relationships of this to such tasks as inference, game playing, planning. and machine learning.

 

CSCI C481 INTERACTIVE Computer Graphics (3 cr.) P: CSCI C243 and MATH M301. Computer graphics techniques. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations and interactive methods. Three-dimensional graphics, transformations and viewing geometry. Three-dimensional object modeling and interactive manipulation methods. Basic lighting and surface shading. Introduction to video and animation methods.

 

CSCI C490 Seminar in Computer Science (1-3 cr.) P: Varies. Special topics in computer science. May be repeated to earn a maximum of 6 credit hours.

 

CSCI P536 advanced operating systems (3 cr.) P: CSCI C435. Advanced topics in operating systems, such as: multi-tasking, synchronization mechanisms, distributed system architecture, client-server models, distributed mutual exclusion and concurrency control, agreement protocols, load balancing, failure recovery, fault tolerance, cryptography, multiprocessor operating systems.

 

CSCI P565 software engineering i (3 cr.) P: CSCI C308. Analysis, design and implementation of software systems. Requirements specification: data and process modeling. Software design methodologies. Software quality assurance: testing and verification. Software development processes.

 

CSCI Y398 Internship-Professional Practice (3 cr.) P: CSCI C308, CSCI C335 and one other CSCI course above the level of CSCI C243. Enrollment requires that the student be accepted as a temporary employee of an organization or business outside the university. The work must offer the student challenging computer experience in a closely supervised position. The student will report weekly to the faculty member in charge. Prior approval of the position is required.

 

CSCI Y790 graduate independent study (1-6 cr.) Independent study under the direction of a faculty member, culminating in a written report. May be repeated for credit. R grade not allowed. The different departmental options for independent study are: research and reading, software system development, master's research project, master's software project, and a university master's thesis.

 

 


acadaff@iusb.edu
Last updated: 04/07/2003