SI204 Introduction to Computer Science (3-2-4). Introduction to algorithmic development, problem solving and software design. Principles and concepts to provide foundational knowledge and experience upon which later computer science courses will build. This is the first course for computer science majors. Prereq: none. [fall, spring]
SI221 Data Structures (2-2-3). Data representation and information management. Lists, strings, arrays, and trees. Storage structures, allocation and collection. Sorting techniques, hashing and searching. Prereq: SI204. [fall,spring]
SI232 Computer Architecture and Organization (4-0-4). Performance metrics, instruction set architectures, assembly language, logic design, memory hierarchies. Prereq: SI204; Coreq: SI262. [spring]
SI250 Information Systems for the Junior Officer (2-2-3). The primary emphasis of the course is practical applications of personal computers in the fleet/Fleet Marine Force (FMF), with coverage of some special tactical computers as well. Application software is addressed from a junior officer's viewpoint, as an operational unit Branch/Division/Company Officer or as a support staff member. Prereq: none. [fall, spring]
SI262 Discrete Structures (2-0-2). An introduction to the mathematical foundations of computing through graph theory, set theory, propositional logic and numerical linear algebra. Coreq: SI204. [spring]
SI283 Programming for Engineers (1-2-2). An introduction to a structured programming language and its use in implementing algorithms to solve engineering problems. Prereq: none. [fall]
SI304 Programming Languages (3-0-3). A study of formal language specification. Topics include data typing, program structure, sequencing, recursion, storage management, file interfacing and translation and syntax. The implementation of features like run time stacks, environmental tables and parameter transmission are discussed in detail. Prereq: SI221, SI262. [spring]
SI305 Computer Programming (3-0-3). A programming course for non-majors that makes use of top-down design and software engineering methodology to develop algorithms for problem-solving. A high-level language is used to implement the algorithmic designs. Prereq: none (non-SCS major). [fall, spring]
SI311 Advanced Programming (3-0-3). Machine and assembly language, compilers and interpreters. Program segmentation and linking. Macros, sub-routines and utility routines. Input/output, peripheral devices and auxiliary storage. Program efficiency and documentation. Prereq: SI221, SI262. [fall]
SI321 Advanced Data Structures (3-2-4). Advanced object-oriented design, including abstract classes, polymorphisms, templates and inheritance. Advanced data structures including trees, heaps, priority queues and graphs. Graph algorithm analysis. Prereq: SI221 and SI262. [fall]
SI333 Advanced Computer Algorithms (4-0-4). Presents techniques for designing and analyzing computer algorithms including divide and conquer, dynamic programming and greedy methods. Introduces classic algorithms for problems such as searching and sorting, graph analysis, file compression, and cryptology. Previously designated as SI433. Prereq: SI321. [fall]
SI334 Software Engineering (4-0-4). An introduction to the basic principles of software engineering. Structured, object-oriented, and formal approaches are studied, with an emphasis on life cycle, object-oriented techniques, and team-oriented software development. Previously designated as SI434. Prereq: SI332 and SI411. [spring]
SI411 Operating Systems (3-0-3). The study of the operating system as a resource manager. Topics include process management, interrupt processing, memory management, deadlock handling, file systems, multiprogramming, multiprocessing, data security and protection. Prereq: SI221, SI332. [spring]
SI412 Compiler Construction (3-0-3). Using formal programming language theory as a foundation, the issues of automated theory, program optimization and language translation are examined. Sections of actual compilers are constructed to study the practical application of theory presented. Prereq: SI311, SI472. [spring]
SI420 Artificial Intelligence (3-0-3). A study of the fundamental concepts and techniques in the design and implementation of functionally intelligent machines. Topics include problem-solving using state-space search, problem-reduction techniques, game trees, general problem solver; and knowledge representation using production systems, first-order predicate calculus and natural language. Coreq: SI304. [fall]
SI430 Fundamentals of Microcomputer Systems (2-2-3). Analysis and design of software systems for micro-processors. Includes characteristics and organization of microprocessors, peripheral interface software and applications of software design. Prereq: SI221, SI311. [spring]
SI435 Advanced Software Engineering (2-2-3). This course will present the latest trends in modern techniques and methods for large scale software development activities, such as object oriented programming. The use of CASE tools and group design project is stressed. Prereq: SI434. [spring]
SI440 Database Organization (3-0-3). Topics include database systems architecture, the various approaches to database organization including relational, hierarchical and network models; normalization and implementation issues. Coreq: SI304. [fall]
SI452 Advanced Computer Architecture (3-0-3). This course provides an advanced study of the design and evaluation of high performance computer systems. Prereq: SI311, SI332. [spring]
SI454 Computer Networks (3-0-3). The course presents major topics in the area of computer networks. It views a computer network as a group of related layers or abstract machines as exemplified by the International Standards Organization (ISO) network reference model and Internet Layer Model. Prereq: SI332. [fall]
SI455 Advanced Computer Networks (3-0-3). This course provides an in-depth technical study of high-speed networking, client-server programming and applications, network firewall architectures and security procedures, and the ATM network. Prereq: SI454. [spring]
SI460 Computer Graphics (2-2-3). Presents the concepts, theories and algorithms related to computer graphics. Builds understanding in evaluating and implementing graphical support in various application setting. Prereq: SI221, SI262. [spring]
SI462 Advanced Computer Graphics (2-2-3). Presents the theories and techniques of producing 3-dimensional computer graphics, and the capabilities and limitations of existing graphics standards. Prereq: SI460. [fall]
SI472 Theory of Computing (3-0-3). Presents the theoretical foundations for computing, including the study of formal languages, finite state machines, pushdown automata, Turing machines and computability. Prereq: SI221 and SI262. (For the Class of 2005 and following, Prereq: SI321.). [fall]
SI475 Robotics and Computer Vision (2-2-3). Presents the concepts and theories related to computer-driven robotic systems and computer-based vision systems. Students apply acquired knowledge in a laboratory setting be designing, coding, and testing robotics control and vision systems. Prereq: SI221 and SI262 (For the Class of 2005 and following, Prereq: SI321.) [spring]
| EA | EE | EM | EN | ES | ||||
| SA | SB | SI | SM | SO | SP | SY | ||
| FE | ||||||||
| HE | HH | |||||||
| NE | NL | NN | NP | NS |
![]() |
Associate Dean for Academic Affairs Frederic I. Davis Comments to: fid@nadn.navy.mil |
|