Curriculum
Required Courses (19 units)
Linear algebra concepts, Linear Transformations and Matrix Factorizations, Eigenvalues and Eigenvectors, Least Squares, error analysis, floating-point representations, roots of non-linear equations, systems of linear equations, interpolation, numerical integration.
Prerequisite(s): and
Component(s): Lecture Grading Basis: Graded Only CS 3110: Formal Languages and Automata (3) Finite automata. Non-determinism. Regular expressions and languages. Context-free grammars and push down automata. Ambiguity. Closure properties. Normal forms. Context-free and non-context-free languages. Prerequisite(s): Component(s): Lecture Grading Basis: Graded Only CS 3750 - Computers and Society (3)
Impact of computing technology on individuals and on society. Various current uses of computing devices, how these have evolved, and what the future might bring. Benefits and dangers of information technology. How the Internet and computing devices have fundamentally changed the way we work, play, and interact with others. Overview of computer and information technology (e.g., networking and communications, information management). Secure computing principles and practice. Consequent rise of new social and legal issues, making it essential for everyone to acquire a working understanding of the role of this technology in our daily lives. Prerequisite(s): None Component(s): Lecture Grading Basis: Graded Only |
Algorithms for fundamental problems. Efficiency analysis using asymptotic notation. Principal algorithm design techniques and their tradeoffs. NP-theory and approaches used to address intractability.
Prerequisite(s): and
Component(s): Lecture
Grading Basis: Graded Only
Prerequisite(s): and
Component(s): Lecture
Grading Basis: Graded Only
Elements of the object model. Abstraction, encapsulation, modularity, hierarchy and polymorphism. UML Modeling. Object-oriented design principles. Design patterns. Implementation and programming of system design. Code generation. Overview of advanced file and database technology. Model integration with database. Introduction to embedded software. Object and portable data. Comprehensive examples using a case study approach.
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only
Logic design and computer arithmetic. Logical properties of flip-flops and sequential machines. Datapath and control unit design. Pipelining. Memory hierarchy and storage technology. Multiprocessing and alternative architectures.
Prerequisite(s): and Component(s): Lecture Grading Basis: Graded Only |
Overview of operating systems. Operating system structures. Process management. Concurrency and synchronization. Deadlock. Processor management. Operating system security. Scheduling and dispatch. Memory management. Virtual memory. Device management. File systems.
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only
Models of the software development process and metrics. Software requirements and specifications. Methodologies, tools and environments. Human-computer interaction. Software architecture, design and implementation techniques. Project management. Cost estimation. Testing and validation. Secure software development life cycle and common software security issues. Automated build, deployment and continuous integration. Maintenance and evolution.
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only
Prerequisite(s):
Component(s): Lecture
Grading Basis: Graded Only