Courses offered

The curriculum offers a holistic view of the discipline. It emphasizes both the state-of-the-art and the essential skills of modeling, abstraction and problem-solving that open up a wide range of industries to the students. Our courses are a mix from various areas that reflect the excitement and joy of computing, e.g. physics, mathematics, electronics, artificial intelligence, game development, software engineering, networks, operating systems, databases, computer vision, human-computer interaction.

Credit Hours per Course:

All courses are 3 credits unless otherwise stated.

Lab courses are also 3 credits, unless otherwise stated, and are (2+1), meaning 2 hours of lectures + 2 hours of lab per week.

Core and Supporting Courses:

Core and Supporting courses are shown in the following tables:

  Core Courses
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

COMP 102 Programming I (lab course)

COMP 111 Programming II (lab course)

COMP 113 Discrete Mathematics

COMP 200 Data Structures and Algorithms (lab course)

COMP 206 Hardware Logic & Design (lab course)

COMP 213 Database Systems (lab course)

COMP 220 Software Engineering

COMP 301 Operating Systems (lab course)

COMP 302 Theory of Automata

COMP 303 Design and Analysis of Algorithms

COMP 311 Computer Networks (lab course)

COMP 323 Computer Organization with Assembly Language (lab course)

COMP 360 Introduction to Artificial Intelligence (lab course)

COMP 401 Ethics for Computing Professionals (1 credit)

COMP 405 Human-Computer Interaction (lab course)

COMP 421 Information Security

COMP 451 Compiler Construction (lab course)

COMP 452 Computer Architecture

COMP 497 Senior Project (6 credits) (in two parts A and B in two semesters)

 

  Supporting Courses (these are also compulsory for all)
1

2

3

4

5

6

7

 

MATH 111 Calculus and Analytic Geometry

STAT 115 Probability and Statistics

CSCS 105 Basic Electronics (4-credits lab course) (3+1)

CSCS 201 Advanced Calculus

CSCS 202 Computational Linear Algebra

CSCS 203 Differential Equations

CSCS 320  Numerical Computing (lab course)

Computer Science Electives:

Following table contains a non-exhaustive list of electives offered by the department:

  Elective Courses
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

CSCS 210 Introduction to Multimedia (lab course)

CSCS 306 Embedded Systems (lab course)

CSCS 310/MATH 310* Numerical Analysis

CSCS 313 Software Requirements Engineering

CSCS 324 Database Administration

CSCS 342 Web Application Development (lab course)

CSCS 351 Software Quality Assurance

CSCS 352 Object-Oriented Analysis and Design

CSCS 403/MATH 403* Graph Theory

CSCS 405 Software Projects Management

CSCS 440 Systems Programming (lab course)

CSCS 450 Technology Management

CSCS 453 Computer Graphics

CSCS 455 Data Mining and Data Warehousing

CSCS 457 Computer Vision

CSCS 461 Principles of Programming Languages

CSCS 464 Visual Programming (lab course)

CSCS 466 Wireless Networks

CSCS 468 Mobile Application Development (lab course)

COMP 295/495 Special Topics in Computing / Themes (1-3 credits)

 

* Cross-listed Courses:

Courses with two designators (coding) are marked with an asterisk * to identify them as cross-listed courses. Students must select the correct designator for their applicable program and requirement. Students may earn credit in only one of the two cross-listed courses.

General Education Notes:

CSCS 105 Basic Electronics (4 credits) is cross-listed with PHYS 102 General Physics II (4 credits) and will fulfill the requirement of one of the two lab courses that must be completed in the Science and Mathematics category of General Education.

CSCS 100 Introduction to Computing course can be taken by BS Computing students only in their Freshman year, and not afterwards, as part of their General Education requirement (and not Computing Electives requirement) to establish a basic skill level in the use of computer based tools (like word processing, presentation and spreadsheet software) and for an understanding of basic computing concepts.