COMPUTER SCIENCE (CS)

CS-COMP Comprehensive Exam (0 Credits)

Restrictions: RG.86+

CS-101 Beauty & Joy of Computer Science (3 Credits)

This course presents the history, social implications, great principles, and future of computing. It examines the computing applications that have changed the world and how computing empowers discovery and progress in other fields. The relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. The course consists of two lecture hours and one two-hour laboratory per week.

CS-131 OBJECT ORIENTED PROGRAMMING (4 Credits)

This is the first course in the computer science major sequence. The course introduces the object- oriented approach to software design using the programming language Java. Topics covered are software design, implementation and testing, basic computer organization and source code translation. No previous programming experience is presupposed. The course consists of three lecture hours and one two-hour laboratory per week.

Prerequisite(s): TAKE CS-101

Corequisite(s): Take CSL-131

CS-132 ALGORITHMS & DATA STRUCTURES (4 Credits)

This is the second course in the computer science major sequence. The course utilizes the object- oriented design approach to building applications, which emphasizes the creation and utilization of reusable software tools. Students are introduced to data structures that are commonly encountered in building software applications and to the analysis of the efficiency of algorithms used to solve problems. The programming language Java is used to implement software designs. The course consists of three lecture hours and one two-hour laboratory per week.

Prerequisite(s): Take CS-131

Corequisite(s): Take CSL-132

CS-133 INTRODUCTION TO PYTHON (3 Credits)

This course introduces the Python programming language and compares its syntax and semantics to those of Java. Fundamental programming concepts and approaches covered in prior Computer Science programming classes will be built upon to increase students' proficiency in software development. The course will focus on the application of Python to problems commonly encountered in the area of data sciencel and will guide students through initial requirements gathering, planning, development, and testing of code. The course consists of three lecture hours and one two-hour laboratory per week.

Prerequisite(s): Take CS-132

Corequisite(s): Take CSL-133

CS-241 COMPUTERS, SOCIETY & ETHICS (3 Credits)

Computers are ubiquitous in our society today. They have impacted the way we think about reality because we gain insights through googling questions and through social media. We often forget that this access to realityis mediated and might be false. Also, a large part of human interactions happens in cyberspace. And white we intuitively apply norms that guide our offline behavior to our online lives cyber communications don't necessarily trigger empathy which makes numerous of those interactions hurtful. Finally, we do online shopping, putting brick and mortar stores out of business which is leading to a reconstruction of the job market. This class addresses the impact computers have on our daily lives and presents ethical solutions.

Prerequisite(s): Take CS-101

CS-243 DATABASE AND BIG DATA (3 Credits)

An introduction to database management systems, including database design and application development. Different database models are introduced, with emphasis on the relational model. The theoretical principles underlying the design of a database and the physical storage of data and its integrity are covered. The laboratory component is used to design and implement a real-world database application that illustrates theory.

Prerequisite(s): Take CS-101

Corequisite(s): Take CSL-243

CS-244 APP DEVELOPMENT (3 Credits)

Introduction to the design and implementation of a database-driven application using a tool such as Microsoft ASP.Net. Students will design and implement an e-commerce application based upon a SQL server database. The course presupposes familiarity with relational database design and application development. Topics include Visual Studio.Net tools for managing data sources, data controls for populating Web pages, data presentation tools, configuring, deploying and trouble-shooting an ASP.Net application. Students will build a data-driven Web site.

Prerequisite(s): Take CS-131

Corequisite(s): TAKE CSL-244

CS-254 COMPUTER NETWORKS (4 Credits)

A study of computer networks based on the OSI model of a layered network architecture. The TCP/IP protocol suite is used to illustrate network protocols. The course includes an overview of local area networks, routing algorithms, and network applications. The course consists of three lecture hours and one two-hour laboratory per week. The laboratory component provides experience in network programming using sockets.

Prerequisite(s): Take CS-101

Corequisite(s): Take CSL-254

CS-255 SERVER MANAGEMENT (4 Credits)

This course conveys knowledge and skills to understandan dperform basic operations involved in deploying and managing server systems, applications, and their requisite security in the enterprise. Instructions on "Simplicity of Design" will be given to help students understand the impact of system design on implementation and ongoing support costs. Thinking in Systems will be covered to address the critical thinking skills necessary for good system design.

Prerequisite(s): Take CS-254

Corequisite(s): TAKE CSL-255

CS-257 USER EXPERIENCE DESIGN (4 Credits)

This course will expose the student to a wide variety of human-computer interaction material to enable them to understand and design positive user experiences with technology. Students will study the theory of user interface/experience design in class and will put that theory into practice through laboratory exercises and teamwork. Ways to learn from users will be covered, as well as design methods including prototyping, heuristics, and best practices. Broader design topics related to current computing trends will also be discussed from a human-centered perspective.

Prerequisite(s): TAKE CS-101

Corequisite(s): Take CSL-257

CS-258 MACHINE LEARNING (3 Credits)

Machine Learning (ML) uses interdisciplinary techniques such as statistics, linear algebra, optimization, and computer science to create automated systems that can sift through large volumes of data at high speed to make predictions or decisions without human intervention. ML is all about finding patterns in data to get computers to solve complex problems. Machine learning as a field is now incredibly pervasive, with applications spanning from business intelligence to homeland security, from analyzing biochemical interactions to structural monitoring of aging bridges, and from emissions to astrophysics, and medicine and many more. This class will familiarize students with a broad cross-section of models and algorithms for machine learning and prepare students for research or industry application of machine learning techniques.

Prerequisite(s): Take CS-133

Corequisite(s): TAKE CSL-258

CS-334 COMPUTER ORGANIZATION (3 Credits)

The Computer Organization course is designed to introduce students to computer system engineering which comprises of lower level abstractions of a computer (CPU, memory, resisters, ALU, and input/output devices), it's interconnections between hardware and software, functional performance, and cost objectives. The course also introduces students to computing data, assembly language, and basic circuit design. he use of assembly language leads to students' understanding of reduced instruction set architectures (RISC) using the MIPS as well as the SPIM simulator for the MIPS architecture. A brief introduction to hardware level security and realated protocols is provided. The course consists of three lecture hours and one two-hour laboratory per week.

Prerequisite(s): Take CS-132

Corequisite(s): Take CSL-334

CS-341 AI AND ROBOTICS (4 Credits)

A laboratory course that implements some of the artificial intelligence systems discussed in CS 141. The course is designed for computer science majors wishing to take CS 141 for credit towards the major. It must be taken at the same time as CS 141. The prerequisite is enforced strictly.

Prerequisite(s): Take CS-132

Corequisite(s): Take CSL-341

CS-346 OPERATING SYSTEMS (4 Credits)

A study of modern multiprogrammed operating systems including system structure, concurrency, process scheduling and control, memory management, file systems, and system performance. The course consists of three lecture hours and on two-hour laboratory per week. The laboratory component provides experience in concurrent programming using Java threads and in system level programming using C in a UNIX environment.

Prerequisite(s): Take CS-101

CS-354 INTRO INTERNET SYS. SECURITY (4 Credits)

Introduction to network security auditing. Students will learn how to perform the different phases of an audit, including discovery and penetration, as well as how to prevent hackers from controlling your network. This course introduces various tools to help students in the auditing process. Students will be exposed to international standards, along with time-tested methods for auditing a network efficiently, and they will be able to use specific, practical tools for counteracting network attacks. Finally, they will be able to analyze all findings and make informed recommendations for establishing the best security possible in a given scenario.

Prerequisite(s): Take CS-254

CS-390 SOFTWARE ENGINEERING (3 Credits)

The course provides an overview of software requirements analysis, the software design process, verification and validation, software maintenance, and documentation. A major component of the course is a project that provides experience in the analysis and design of a software product using an object-oriented methodology.

Prerequisite(s): TAKE CS-257

Corequisite(s): Take CSL-390

CS-401 RESEARCH METHODS (2 Credits)

As part of the Senior Capstone, students will formulate and carry out a unique research project within or across one or more areas of Computer Science. In this first capstone course, students will learn how to choose a research topic, conduct a literature review, and choose appropriate research methods. Students will also be introduced to a variety of qualitative and quantitative research methods used by Computer Science researchers.

Prerequisite(s): TAKE CS-133

CS-402 RESEARCH PRESENTATION (1 Credit)

As part of the senior capstone, students will build on their research from the first capstone course to formulate and report on their results. In this course, students will synthesize research findings, write a research paper, and give a research presentation to the department.

Prerequisite(s): TAKE CS-401

CS-480A SP.TOP:FORMAL LANG. THEORY (3 Credits)

CS-491 INTERNSHIP IN COMPUTER SCI. (1-3 Credits)

This program provides students with on-the-job training and experience which is not obtainable in classroom situations. The student is expected to secure a full-time position which involves significant work in an area of computer science. Each internship is individually arranged, subject to the approval of the computer science faculty.

Prerequisite(s): Take CS-101

CS-492 IND.STUDY IN COMP.SCIENCE (1-3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

Prerequisite(s): TAKE CS-133

CS-492A IND ST: DATABASE DESIGN (3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

Prerequisite(s): TAKE CS-133

CS-494 INTERNSHIP IN COMPUTER SCI. (0 Credits)

This program provides students with on-the-job training and experience which is not obtainable in classroom situations. The student is expected to secure a full-time position which involves significant work in an area of computer science. Each internship is individually arranged, subject to the approval of the computer science faculty.

Prerequisite(s): Take CS-101

CS-495 Technical Consulting in the Community (3 Credits)

CS 495 TECHNICAL CONSULTING IN THE COMMUNITY This course provides students with the opportunity to experience a technical consulting role with a local non-profit community organization. The student will apply professional and communication skills as he/she works with a community partner as a technical consultant. The student will spend at least three hours a week on-site at the organization and will write and present consulting reports based on his/her experience.

Prerequisite(s): Take CS-101

Restrictions: RGC.105