Data Structures (CS251)
Course Summary:
- Design, usage and analysis of data structures: review of lists, stacks and queues
- Hash tables, priority queues, search trees, introduction to graphs
- Searching and sorting
- Runtime analysis
- Programming projects and lab exercises based on the topics listed
Programming Language Design and Implementation (CS341)
Course Summary:
- Programming language paradigms, design and implementation: syntax and semantics
- Parsing
- Runtime systems
- Data types, data and procedural abstraction
- Function programming
Software Design (CS342)
Course Summary:
- Software design principles and practices: Object-oriented design
- Design patterns
- Software reuse
- Unit testing
- Event driven programming and concurrency
- Graphical user interface design and development
- Team development
Systems Programming (CS361)
Course Summary:
- Study of computer systems emphasizing impact on application level programming
- Virtual memory and memory management
- Code optimization
- System-level I/O
- Concurrency and threads
- Synchronization
- Introduction to network programming
Computer Design (CS361)
Course Summary:
- Computer hardware building blocks.
- Logical gates, combinational circuits, arithmetic circuits
- Flip flops and sequential circuits
- Registers and memory, CPU Design, I/O Design
Computer Algorithms I (CS401)
Course Summary:
- Design and analysis of computer algorithms.
- Divide-and-conquer, dynamic programming, greedy method, backtracking.
- Algorithms for sorting, searching, graph computations, pattern matching, NP-complete problems.
Introduction to Software Engineering (CS440)
Course Summary:
- Software life-cycle model.
- Requirement specification techniques.
- Large-scale software design techniques and tools.
- Implementation issues.
- Testing and debugging information.
- Software maintenance.
Introduction to Networking (CS450)
Course Summary:
- The Open Systems Interconnect model.
- Data link.
- Network and transport layers.
- TCP/IP, ATM, and mobile networks.
Other Related Courses
- Program Design I and II (CS 111 and CS 141)
- Mathematical Foundations of Computing (CS 151)
- Programming Practicum (CS 211)
- Machine Organization (CS 261)
- Languages and Automata (CS 301)