Computer Science

Department of Computer Science

The Computer Science program offers an undergraduate education that promotes lifelong intellectual growth and prepares students for professional careers and advanced study. The program is grounded in the principles, theories, and application of the science of computing with special emphasis in the areas of Big Data Analytics and Software Development.

Students will develop the ability to effectively apply discipline knowledge to solve real-world problems, adapt as the field changes, and make ethical decisions. The curriculum provides the foundations of team skills and allows students to improve their interpersonal skills and professional attitudes. Students will have an opportunity to participate in an internship and in undergraduate research.

A laptop computer running Windows, macOS, or Linux is required for courses in the Computer Science program. 16GB of memory is suggested. A Chromebook will not work.

Faculty

Ali Al-Faris, Assistant Professor (2021), B.S., College of Electronic Technology at Bani-Walid, Libya; M.S., University of Technology, Malaysia; Ph.D., University of Science, Malaysia

Nada AlSallami, Assistant Professor (2019), B.S., University of Technology, Iraq; M.S., University of Technology, Iraq; Ph.D., University of Technology, Iraq

Elena Braynova, Department Chair, Professor (2003), M.S., State University of New York, Buffalo; M.S., Ph.D., Moscow State University, Russia

Saba Kadady, Instructor (2022), B.S., MS., Al Nahrain University, Iraq

Karl R. Wurst, Professor (1999), B.S., Central Connecticut State University; M.S., Ph.D., University of Connecticut

Courses

CS-101 Basics of Computer Science

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations. Pass math placement test with code of 3 or above, or a passing grade in a college level math course.

A survey course that provides a foundation in computer science by presenting a practical and realistic understanding of the field.

Fall and Spring and every year. 3 Credits

CS-120 Microcomputer Applications

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations. Pass math placement test with code of 3 or above, or a passing grade in a college level math course.

Learning state-of-the-art application packages including but not limited to word processing, file and database management systems and spreadsheets.

Fall and Spring and every year. 3 Credits

CS-124 Health Informatics

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations. Pass math placement test with code of 3 or above, or a passing grade in a college level math course.

Use of computers and information systems in health care. Databases and spreadsheets. electronic health records. [Credit will not be awarded for both CS-120 and CS-124.]

Spring only and every year. 3 Credits

CS-131 Data Visualization and Statistical Analysis

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations such as using a text editor, saving and opening files, and MA 150 or MA 302 or EC 150 or PS 275 or SO 275 or familiarity with basics of Statistics.

The course focuses on basic data visualization methods; basic statistical analysis; use of R; current visualization and statistical analysis tools.

Every year. 3 Credits

CS-135 Programming for Non-CS Majors

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations. Pass math placement test with code of 3 or above, or a passing grade in a college level math course.

Introduction to programming. Emphasis on practical skills, working with data sets, doing analysis and visualization. No prior programming experience required.

Fall only and every year. 3 Credits

CS-140 Introduction to Programming

LASC Categories: NLL

Prerequisites or Corequisite: CS-101

Introduction to fundamental structures and concepts of Computer Science including object-oriented programming; three lecture hours and one two-hour laboratory.

Every year. 4 Credits

CS-141 Data Cleaning and Preprocessing

Prerequisites: Familiarity with basic computer operations such as using a text editor, saving and opening files, and Math placement code of 3 or above or successful completion of a College level Math course.

The course focuses on basic data cleaning and preprocessing tasks, basic methods to perform them; methods to generalize and summary data.

Every year. 3 Credits

CS-155 Computer Networking and Security

LASC Categories: QR

This course covers network protocols and the Internet; computer security fundamentals.

Spring only and every year. 3 Credits

CS-161 Web Design Using HTML

Introduces concepts needed for creation, design and implementation of effective web pages. Latest versions of mark-up language(s) will be used.

Every year. 3 Credits

CS-165 Digital Forensics

Prerequisites: CS-155

Digital forensics investigation; data acquisition; processing crime and incident scenes; multiple operating systems and file fomats; digital forensics tools, analysis and validation.

Every year. 3 Credits

CS-193 Special Topics in Computer Science for First Year Students

LASC Categories: FYS

Introductory level course covering topics of special interest to first year students. Offered only as a First Year Seminar.

3 Credits

CS-225 Discrete Structures I

Prerequisites: MA 180 or math placement code 6 or above.

Asymptotic notation, sequences, recursions and methods to solve them, proof techniques, relations, functions, sets and their basic properties.

Every year. 3 Credits

CS-234 Data Mining for Non-Cs Majors

Prerequisites: MA 150 or MA 302 or EC 150 or PS 275 or SO 275 or familiarity with basic statistical methods, and familiarity with basic computer operations such as using a text editor, saving and opening files.

This course introduces basic Data Mining problems and methods to solve them: Classification, Numerical Prediction, Clustering, Association Rule Mining.

Every year. 3 Credits

CS-242 Data Structures

LASC Categories: QAC

Prerequisites: CS-140.
Prerequisites or Corequisite: Pre-requisite or co-requisite of CS-225.

Introduces time complexity and covers fundamental data structures: lists, stacks, ques, search trees , dictionaries, priority ques, B-trees and inverted files.

Every year. 3 Credits

CS-248 Algorithm Analysis

Prerequisites: CS-242
Prerequisites or Corequisite: CS-295.

Different algorithm design strategies, sorting, searching graph algorithms, parallel algorithms, algorithm complexity, turing machines, NP-hard and NP-complete problems.

Every year. 3 Credits

CS-254 Computer Organization and Architecture

LASC Categories: NLL

Prerequisites: CS-140 EN-102.
Prerequisites or Corequisite: Pre-requisite or co-requisite of CS-295.

Combinational and sequential circuits, assembly language programming, digital computer architecture, instruction sets, addressing modes, memory hierarchies, I/O, and control circuits. Three lecture hours and two laboratory hours per week.

Fall only and every year. 4 Credits

CS-265 Database Applications

LASC Categories: QR

Prerequisites: Familiarity with basic computer operations. Pass math placement test with code of 3 or above, or a passing grade in a college level math course.

This course introduces basic database concepts and teaches how to create and manage a database; relational databases, use SQL; NoSQL databases. Credit will not be awarded for both CS 265 and CS 286.

Fall only and every 2-3 years. 3 Credits

CS-282 Unix Systems Programming

Prerequisites: CS-135 with a minimum grade of C-, or CS-140 with a minimum grade of C-, or CS-242.

Problem solving and software design using C; introduction to UNIX programming utilities and text manipulation; low-level system programming in UNIX and C.

Spring only and every year. 3 Credits

CS-286 Database Design and Applications

Prerequisites: CS-135 or CS-140

Covers relational databases; database design using ER model; query processing using SQL; NoSQL databases. Credit will not be awarded for both CS 265 and CS 286.

Fall only and every year. 3 Credits

CS-295 Discrete Structures II

Prerequisites: CS-225

Logic, basic counting techniques, probabilities, basic graph theory.

Every year. 3 Credits

CS-335 Networking and Web Security

Prerequisites: CS-282

This course covers web and security problems, solutions, and techniques. Encryption, worms, viruses, firewall, safe practices, etc. are covered.

Every 2-3 years. 3 Credits

CS-343 Software Construction, Design and Architecture

Prerequisites: CS-286
Prerequisites or Corequisite: CS-348

Software construction techniques and tools, software architectures and frameworks, design patterns, object-oriented design and programming. efficiency, reliability and maintainability of software.

Fall only and every year. 3 Credits

CS-348 Software Process Management

Prerequisites: CS-140.
Prerequisites or Corequisite: PH-134 or UR-230.

Project management including planning, progress measurement, estimation, and risk assessment. Functional and non-functional requirements. Software licenses, contracts and intellectual property.

Fall only and every year. 3 Credits

CS-373 Operating Systems

Prerequisites: CS-254 and CS-282

Hardware and Software as an integrated system; development of system software for process management, resource allocation, memory management and I/O processing. [Formerly CS 385 Operating Systems]

Every year. 3 Credits

CS-383 Cloud, Parallel an Distributed Computing

Prerequisites or Corequisite: CS-135 or CS-140 or CS-141.

The course introduces basics of Cloud Computing and fundamental computing technologies used for Big Data platforms such as Parallel, Distributed Computing.

Spring only and every year. 3 Credits

CS-405 Data Communications and Networking

Prerequisites: CS-373

Data transmission, encoding, interfacing, synchronization, data-link control, multiplexing, networking, circuit switching, packet switching, radio and satellite, local area networks, network access protocols.

Other or on demand and other or on demand. 3 Credits

CS-408 Directed Study: Computer Science

Directed study offers students, who because of unusual circumstances may be unable to register fro a course when offered, the opportunity to complete an existing course with an established syllabus under the direction and with agreement from a faculty member.

3 Credits

CS-443 Software Quality Assurance and Testing

Prerequisites: CS-242 and CS-295

Requirements analysis and test plan design. Testing strategies and techniques. Test coverage using statistical techniques. Code reviews and insepctions.

Spring only and every year. 3 Credits

CS-448 Software Development Capstone

LASC Categories: CAP

Prerequisites: CS-343
Prerequisites or Corequisite: CS-373 and CS-443 as prereq or coreq.

Development of a significant software system, following appropriate project and team management techniques. Requirements, design, implementation, quality assurance, professional, social and ethical issues.

Every year. 3 Credits

CS-453 Data Mining

Prerequisites or Corequisite: CM-110, UR-230 or PH-134 Take MA-150 or MA-302;

Topics include data warehousing and mediation techniques; data mining meathods: rule-based learning; decision trees, association rules and sequence mining.

Fall only and every year. 3 Credits

CS-472 Robotics

Prerequisites: CS-282

Design and implementation of robotic systems, snesors and sensing, effectors, mechanics, control startegies and architectures, hardware and software issues.

Other or on demand and other or on demand. 3 Credits

CS-483 Big Data Analytics Capstone

LASC Categories: CAP

Prerequisites: CS-453
Prerequisites or Corequisite: CS-383

The course introduces methods and techniques used for Big Data analysis. The course discusses Analytics tools for a variety of data applications and includes a major team project.

Every year. 3 Credits

CS-497 Selected Topics: Computer Science

Prerequisites: CS-282

Selection of topics of mutual interest to student and faculty.

Other or on demand. 1-6 Credits

CS-498 Internship: Computer Science

Prerequisites: 21 credit hours in Computer Science courses including CS-282

Working in and for an organization where skills can be tested in real situations in order to gain experience, increase knowledge in various functional areas, and establish important contacts with an organization.

Every year. 3 Credits

CS-499 Independent Study: Computer Science

Prerequisites: 18 credit hours in Computer Science including CS-282.

An opportunity for advanced students to examine topics not normally taught in other mathematics or computer courses. Geared to the interests of both the student and the instructor.

Every year. 1-6 Credits

Program Learning Outcomes

  • Analyze a problem, design/develop multiple solutions and evaluate and document the solutions based on the requirements.
  • Communicate effectively in both oral and written form.
  • Identify professional and ethical considerations and apply ethical reasoning to technological solutions to problems.
  • Demonstrate an understanding of and appreciation for the importance of negotiation, effective work habits, leadership, and good communication with teammates and stakeholders.
  • Learn new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development.