10.03.2014 Views

Current version - Indiana University South Bend

Current version - Indiana University South Bend

Current version - Indiana University South Bend

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IU SOUTH BEND COURSE DESCRIPTIONS 4299<br />

CSCI-C 251<br />

CSCI-C 297<br />

CSCI-C 308<br />

CSCI-C 311<br />

CSCI-C 335<br />

CSCI-C 421<br />

Foundations of Digital Computing<br />

(3-4 cr.)<br />

P: P: CSCI-C 243 and MATH-M215.<br />

Mathematical foundations of computing,<br />

including mathematical induction,<br />

propositional logic, proofs of correctness.<br />

Turing machines, computability, and the<br />

halting problem.<br />

Sophomore Topics in Computer<br />

Science (2-4 cr.)<br />

Contents and prerequisites vary from year<br />

to year. This course may count toward a<br />

minor, but not a major. The department<br />

uses this course to present current and<br />

future trends in computing.<br />

System Analysis and Design (1-4 cr.)<br />

P: CSCI-C 243. The software<br />

development life cycle, structured topdown<br />

and bottom-up design, data<br />

flow diagramming, entity relationship<br />

modeling, study of computer-aided<br />

software engineering, I/O design and<br />

validation, file and database design,<br />

design of user interfaces, comparison of<br />

structured vs. object-oriented design. A<br />

team project is completed. I<br />

Programming Languages (3-4 cr.)<br />

P: CSCI-C 243, CSCI-C 335. Design<br />

and implementation of programming<br />

languages: syntax; semantics;<br />

comparison of programming paradigms<br />

such as imperative, functional, logic,<br />

and object-oriented. Implementation of<br />

concepts such as binding, scope, looping,<br />

branching, subprograms and parameter<br />

passing, tasks and concurrency, heap<br />

management, exception handling,<br />

templates, inheritance, overloading.<br />

COMPUTER STRUCTURES (4 cr.)<br />

P: CSCI-C 201. Computer architecture<br />

and machine language, internal data<br />

representation, assembly systems, macros,<br />

program segmentation and linking, I/O<br />

devices, serial communication. Projects<br />

to illustrate basic machine structure and<br />

programming techniques. I, II<br />

DIGITAL DESIGN (3-4 cr.)<br />

P: CSCI-C 243, CSCI-C 335, PHYS-P<br />

303. Principles of logic design,<br />

addressing, central processing units,<br />

microprogrammed versus hardwired<br />

control, input-output organization,<br />

interrupts, other topics chosen by the<br />

instructor.<br />

CSCI-C 431<br />

CSCI-C 435<br />

CSCI-C 441<br />

CSCI-C 442<br />

Assemblers and Compilers 1 (3-4 cr.)<br />

P: CSCI-C 311. Analysis and<br />

implementation of a compiler for a<br />

high-level programming language.<br />

Relationship between regular languages,<br />

finite automata, lexical analysis,<br />

and scanner generators such as lex.<br />

Relationship between context-free<br />

grammars, stack machines, parsers, and<br />

parser generators such as yacc and llgen.<br />

Symbol tables and semantic analysis for<br />

translating declarations, expressions,<br />

assignments, I/O, control structures, and<br />

subroutines. Large programming project<br />

Operating Systems 1 (3-4 cr.)<br />

P: CSCI-C 243, CSCI-C 335, and three<br />

additional computer science courses<br />

above the level of CSCI-C 243. Design and<br />

implementation of operating systems: the<br />

process model, process synchronization,<br />

semaphores, deadlock management,<br />

multi-tasking, multi-threading,<br />

interprocess communication, process<br />

scheduling, memory management,<br />

paging, segmentation, virtual memory<br />

management, file system design and<br />

implementation, I/O device drivers,<br />

interrupt handlers and spoolers. Students<br />

complete the design and implementation<br />

of a simulated. multi-tasking, operating<br />

system. II<br />

Information Organization and<br />

Retrieval (3 cr.)<br />

P: CSCI-C 243. Fundamental structures<br />

and algorithms for the management of<br />

secondary storage devices: persistence;<br />

sharability; file and database organization;<br />

fields; records; transactions; hardware<br />

concepts of storage devices; sequential,<br />

random, indexed, hashed, and B-tree<br />

files; operations on files; search; sort;<br />

performance issues.<br />

Database Systems (3 cr.)<br />

P: CSCI-C 308. The fundamental concepts,<br />

theory, and practices in the design and<br />

implementation of database management<br />

systems: data independence; data<br />

modeling; entity relationship modeling;<br />

functional dependencies; normalization;<br />

relational, hierarchical, network, and<br />

object-oriented data models; relational<br />

algebra; relational calculus; data<br />

definition and manipulation languages;<br />

recovery; concurrency; security; integrity<br />

of data. II

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!