# BS Courses

- CS 216 -
*Introduction to Software Engineering* - Software engineering topics to include: life cycles, metrics, requirements specifications, design methodologies, validation and verification, testing, reliability and project planning. Students will study and practice use of object-oriented design techniques and software tools in a modern development environment. Implementation of large programming projects will be stressed.
- EE 280 -
*Design of Logic Circuits* - Boolean algebra; combinational logic circuits; synchronous sequential circuits; asynchronous sequential circuits; design problems using standard integrated circuits.
- MA 321 -
*Introduction to Numerical Methods* - Floating point arithmetic. Numerical linear algebra; elimination with partial pivoting and scaling. Polynomial and piecewise interpolation. Least squares approximation. Numerical integration. Roots of nonlinear equations. Ordinary differential equations.
- CS 275 -
*Discrete Mathematics* - Topics in discrete math aimed at applications in Computer Science. Fundamental principles: set theory, induction, relations, functions, Boolean algebra. Techniques of counting: permutations, combinations, recurrences, algorithms to generate them. Introduction to graphs and trees.
- CS 315 -
*Algorithm Design and Analysis* - Introduction to the design and analysis of algorithms. Asymptotic analysis of time complexity. Proofs of correctness. Algorithms and advanced data structures for searching and sorting lists, graph algorithms, numeric algorithms, and string algorithms. Polynomial time computation and NP-completeness.
- EE 380 -
*Microcomputer Organization* - Hardware and software organization of a typical computer; machine language and assembler language programming, interfacing peripheral devices, and input-output programming; real-time computer applications, laboratory included.
- CS 405G -
*Introduction to Database Systems* - Study of fundamental concepts behind the design, implementation and application of database systems. Brief review of entity-relationship, hierarchical and network database models and an in-depth coverage of the relational model including relational algebra and calculi, relational database theory, concepts in schema design and commercial database languages. }
- CS 471G -
*Networking and Distributed Operating Systems* - Broad overview of networking concepts, with emphasis on data communications. Layered protocols. Analog and digital channel characteristics. Framing, error detection, error control, ARQ protocols. Network-layer functionality. End-to-end transport. Client-server architecture and programming.
- EE 461G -
*Introduction to Electronics* - Analysis and design of electronic circuitry incorporating nonlinear electronic elements such as transistors, FETs, and vacuum tubes. Applications to amplifiers.
- CS 375 -
*Logic/Theory of Computing* - Topics in logic and theory of computation aimed at applications in Computer Science. Logic, propositional calculus and predicate calculus, tautologies, soundness, proofs. Finite Automata, regular and non-regular languages. Regular expressions and their applications in programming languages, Turing machines, decidability, and complexity.
- CS 470G -
*Introduction to Operating Systems* - This course provides an introduction of operating system design, internals, and administration. Topics include process management, scheduling, memory management, device drivers, file systems, kernel/microkernel designs, concurrency, synchronization, interprocess communication, security, protection, and operating system administration.