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 YLIB
  • CSCI-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 C AND (MATH-120C Y C OR MATH-150C Y C)
  • 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 C
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-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-150C C OR MATH-200C C
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-342 Operating Systems (3)

    This course explores operating systems concepts and concurrent programming using C. Discussed are multithreaded programming, synchronization, classic synchronization problems and their solutions, and distributed programming.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C AND CSCI-241 C AND CSCI-303 C
  • CSCI-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 SQL and QBE, 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-231 C
  • CSCI-365 Computer Graphics (3)

    This course is an introduction to graphics software. Topics include vector and raster graphics, viewing and window coordinates, two-dimensional and three-dimensional transformations, three-dimensional ray tracing, and graphics packages and systems.

    Attributes: YLIB
    Pre-requisites: CSCI-162 C
  • CSCI-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 (HTML5, XHTML, XML) and scripting languages (JavaScript, PHP, Perl) are studied. Additional topics include: client/server databases, 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 C
  • CSCI-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 C
  • CSCI-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.

    Attributes: YLIB
    Restrictions: Including: -Major: Computer Science -Class: Junior, Senior
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-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 C
  • CSCI-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: Senior
  • CSCI-480 Senior Project (3)

    This course involves the application of formal design technique to the development of a large software project performed by students producing a non-trivial software system. Students discuss the project and implementation options with a client, present their accomplishments and progress, as well as document the product and its development process throughout the semester.

    Attributes: NLIB
    Restrictions: Including: -Major: Computer Science -Class: Senior
  • CSCI-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: Computer Science -Class: Junior, Senior
  • CSCI-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 -Class: Senior

Computer Science


For More Information

Admissions
(585) 385-8064
admissions@sjfc.edu