Courses
CSCI-140C P2Computer/Internet Ethics (3)
This course will cover a wide variety of issues of ethics in the areas of technology, Internet, and computers in society. Among these will be information privacy, codes of ethical behavior, the cost of not doing the job right, the use and misuse of creativity, and more.
Attributes: P2 YLIBCSCI-150 P4 Intro High Technology (3)
This course is a broad survey of data manipulation and visualization. Several different tools are introduced with which students will solve real-world problems. This course provides an examination of Excel, Access, and other relevant software as means of manipulating data. These tools are then used to show different ways that data can be visualized and organized, as well as providing paradigms by which data can be used in the solution of problems.
Attributes: P4 YLIBCSCI-158 P4 Int Computational Media (3)
Students will explore the creative possibilities of code and gain a working knowledge of variables, conditionals, loops, functions and objects as they learn the fundamentals of procedural thought. In different semesters, this course may focus on the design and creation of computer graphics, mobile apps, computational objects, or web applications. No previous programming experience assumed. Cross listed with DIGC 158. Formerly titled P4 Intro to Media Computing.
Attributes: P4 YLIB
Restrictions: Excluding: -Class: SeniorCSCI-162 Found of Comp Sci II (3)
In this course, there is a further emphasis on object-oriented design and data abstraction as problem-solving strategies. The object-oriented paradigm is a primary focus, and the course also covers topics such as Exception Handling and File Input/Output.
Attributes: NLIB
Pre-requisites: CSCI-161 D- AND (MATH-120C Y D- OR MATH-150C Y D-)CSCI-231 Data Structures&Algorithms (3)
This course covers a variety of algorithms and their analyses, using some of the mathematical tools. Complex linked structures such as B-trees, tries, graphs, hashing, searching, and sorting are implemented and analyzed.
Attributes: NLIB
Pre-requisites: CSCI-161 CCSCI-241 Computer Architecture (3)
This course provides an in-depth study of the interface between hardware and software including the history of computing technology and modern architectures. This course also gives an understanding of how computers are organized, including performance issues, processor design, pipelining, memory hierarchies, peripheral interfacing, and multiprocessing.
Attributes: NLIB
Pre-requisites: CSCI-161 Y CCSCI-251 Intro to Computer Security (3)
In this course, students will learn the fundamentals of computer security. Topics to be covered include: authentication, cryptography, steganography, methods of digital eavesdropping, wireless security, access control, exploits, denial of service attacks, intrusion detection and prevention, social engineering, and security policies.
Attributes: YLIB
Pre-requisites: CSCI-152 C OR CSCI-161 CCSCI-260 Int Databases&Applications (3)
This course presents an overview of database organization and management. Topics include database organization, querying techniques, data extraction and manipulation, and application development and design. Students work with databases in multiple environments, including PCs, networks, and the WWW, and design and develop a database application using Microsoft Access.
Attributes: YLIB
Pre-requisites: CSCI-150 C OR CSCI-155 CCSCI-290 Theory of Computation (3)
An elementary treatment of abstract computer modeling, including such topics as finite automata, languages, regular expressions, context-free grammars, and Turing machines.
Attributes: YLIB
Pre-requisites: MATH-200C Y CCSCI-300 Networking (3)
This course provides a fundamental understanding of networks as communication systems. Emphasis is placed on computer networks and how computer networks and distributed computing are used to solve customer problems. Throughout the course, students explore the telecommunications and networking industry, as well as the basic concepts inherent to the application of data communications and computer networks in a digital age.
Attributes: NLIB
Pre-requisites: CSCI-150 CCSCI-303 C Module (1)
This course is a rapid but thorough study of the syntax of C. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this popular high-level language, widely used in systems programming.
Attributes: NLIB
Pre-requisites: CSCI-162 CCSCI-304 Visual BASIC Module (1)
This course is a rapid but thorough study of the syntax and features of Visual BASIC from an advanced standpoint. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this important high-level language.
Attributes: NLIB
Pre-requisites: CSCI-162 CCSCI-307 Python Module (1)
This course is a rapid but thorough study of the syntax and features of the Python programming language from an advanced standpoint. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this important high-level language.
Attributes: NLIB
Pre-requisites: CSCI-162 D-CSCI-342 Operating Systems (3)
This course explores operating systems concepts and concurrent programming using Java. Discussed are multithreaded programming, synchronization, classic synchronization problems and their solutions, and distributed programming.
Attributes: YLIB
Pre-requisites: CSCI-231 C AND CSCI-241 CCSCI-351 Secure Software Dev (3)
Students learn advanced techniques in secure software development. This course covers classification of secure software development within different techniques for protecting software from exploitation. The material focuses on a set of software problems, including overflows, access control, rate conditions, and input validation, and examines the reasons for their introduction with respect to the software development process, as well as the techniques and methods that can be used to avoid the introduction of such security problems. Operating systems concepts and concurrent programming using Java are also explored. Discussed are multithreaded programming, synchronization, classic synchronization problems and their solutions, and distributed programming.
Attributes: YLIB
Pre-requisites: CSCI-231 C AND CSCI-251 C AND CSCI-303 CCSCI-353 Database Structures (3)
This course focuses on the internal, conceptual, and external views of modern database structures. The relational model is studied with specific attention to the theory and application of various query languages including Oracle SQL, QBE, and Ingres, and the usage of these languages to consider data. Additional topics include: data integrity, relational algebra, relational calculus, object-oriented databases, security issues, and concurrency issues.
Attributes: NLIB
Pre-requisites: CSCI-162 CCSCI-355 Mobile Computing (3)
Mobile computing (also known as ubiquitous computing) and devices such as the iPhone, iPad, and tablet have changed the way we look at computing. This course will cover basic mobile development concepts that apply to multiple platforms. Topics include: an introduction to user interface design, database connectivity, mobile web sites, and network communications. The course includes a project that requires the student to design and develop a mobile app of their choosing for both iOS and Android operating systems.
Attributes: YLIB
Pre-requisites: CSCI-231 CCSCI-365 Computer Graphics (3)
This course is an introduction to graphics hardware and software. Topics include vector and raster graphics, viewing and window coordinates, segmenting, two-dimensional and three-dimensional transformations, clipping, hidden surface algorithms, and graphics packages and systems.
Attributes: NLIB
Pre-requisites: CSCI-162 CCSCI-375 Programming the WWW (3)
This course focuses on the WWW and the various languages and technologies used to provide interactivity and dynamic content to web pages. The paradigm of programming within a web page is explored, as it is distinct from more traditional types of programming. Markup languages (HTML, XHTML, XML) and scripting languages (JavaScript, PHP, Perl) are studied. Additional topics include: client/server databases, multimedia (Flash), browser and web server technologies. Students build and maintain a web site and complete several programming projects using available technologies.
Attributes: NLIB
Pre-requisites: CSCI-162 CCSCI-385 Data Mining (3)
Data mining is concerned with the extraction of novel knowledge from large amounts of data and supports decision making by detecting patterns, devising rules, identifying new decision alternatives and making predictions. Topics include: data warehousing and data cleaning, data preparation and variable selection, clustering, classification, association rules, text indexing and searching algorithms, decision trees, neural networks and techniques for mining text. Data visualization techniques will be used whenever possible to reveal patterns and relationships. Students will use a variety of tools and techniques to mine large databases.
Attributes: YLIB
Pre-requisites: CSCI-353 OR CSCI-260CSCI-395 Artificial Intell (3)
Fundamental concepts used in computer implementation of processes, which imitate human cognition are studied. Topics include knowledge representation, logical deduction and problem-solving, natural language understanding, knowledge bases, and expert systems. Students complete several programming projects.
Attributes: YLIB
Pre-requisites: CSCI-231 CCSCI-400 Special Topics (3)
This course presents a special topic that would not regularly be offered, such as compiler construction. May be taken only once. Fall2014 Topic: Mobile Computing This three-hour course introduces application development for mobile computing devices such as the iPhone, iPad or Android. Students learn basic mobile development concepts that apply to multiple platforms. Topics include: an introduction to user interface design, database connectivity, mobile web sites, and network communications. The course includes a project that requires the student to create a small mobile app of their choosing for both iOS and Android.
Attributes: YLIB
Restrictions: Including: -Major: Applied Information Technology, Computer Science -Class: Junior, SeniorCSCI-451 Applied Security Technique (3)
Students learn advanced concepts of computer attacks and defenses in an intensive, hands-on setting. Students learn the details of various exploits, including buffer overruns and format string attacks. Other specific attack techniques, such as Man-In-The-Middle, Denial of Services, Worms, Viruses, and Trojan Horses are examined. Students then learn to craft defenses to these attacks from both a host-based and network-based point of view.
Attributes: YLIB
Pre-requisites: CSCI-231 C AND CSCI-251 C AND CSCI-303 CCSCI-452 Database Applications (3)
Relational database design and implementation are studied within the context of the Oracle database management system. Students design and implement a menu-driven application using Oracle and PL/SQL. Topics include: database and application design principles, including data normalization, data integrity, entity-attribute-relationship methodology, UML, and human-computer interactions.
Attributes: NLIB
Pre-requisites: CSCI-353 CCSCI-461 Progrmng Language Concepts (3)
This course is a study of the general principles of programming language design and implementation. Central concepts of syntax, semantic structures, and run-time representations are discussed. Several programming languages are studied to compare and contrast their design, rather than to master one particular language.
Attributes: YLIB
Pre-requisites: CSCI-231 C AND CSCI-290 C AND CSCI-303 C AND CSCI-304 C AND CSCI-307 CCSCI-470 Computer Network&Internet (3)
This course discusses the basic paradigms and technologies of data communications, computer networks, and the Internet. Data transmission techniques, communication codes and protocols, and data communication hardware are discussed. Networking topics include: topologies in LANs and WANs, interconnection hardware, addressing and routing techniques, and wireless networks protocols.
Attributes: YLIB
Pre-requisites: CSCI-241 CCSCI-475 Software Engineering (3)
The course covers topics in the development of software systems, including software life models, requirements definition, design, verification and validation, and project management techniques. Each student then applies this knowledge in an individual software design project.
Attributes: YLIB
Restrictions: Including: -Major: Computer Science -Class: SeniorCSCI-480 Senior Project (3)
This course involves the application of formal design technique to the development of a large software project performed by students working in teams. Each team produces a non-trivial software system, discusses the project and implementation options with a client, presents their accomplishments and progress, as well as documents the product and its development process throughout the semester.
Attributes: NLIB
Restrictions: Including: -Major: Computer Science -Class: SeniorCSCI-490 Internship (3)
The student accepted into this course spends 10 to 15 hours per week as an intern with an organization in the Rochester area. The student performs tasks assigned by the supervisor in the organization with the goal of participating meaningfully in real-world computer applications or research. Completion of at least one upper-level CSCI course and a minimum GPA of 3.00 or higher is recommended before registering for this course. Permission of the internship coordinator is required to register.
Attributes: NLIB
Restrictions: Including: -Major: Applied Information Technology, Computer Science -Class: Junior, SeniorCSCI-496 Independent Study (1 TO 3)
Well-qualified seniors may initiate and carry out a proposal for independent, advanced work under the supervision of a member of the department. Completion of the Independent Study/Tutorial Authorization is required.
Attributes: YLIB
Restrictions: Including: -Major: Computer Science, Computer Science, Computer Science, Computer Science -Class: Senior