Difference between revisions of "CurriculumAllSyllabiBasic"

From BU Computer Science
Jump to navigation Jump to search
(Created page with "{{:CSC102ForSyllabus}}<br> {{:CSC110ForSyllabus}}<br> {{:CSC112ForSyllabus}}<br> {{:CSC121ForSyllabus}}<br> {{:CSC122ForSyllabus}}<br> {{:CSC150ForSyllabus}}<br> {{:CSC210ForS...")
 
 
Line 32: Line 32:
 
{{:CSC463ForSyllabus}}<br>
 
{{:CSC463ForSyllabus}}<br>
 
{{:CSC490ForSyllabus}}<br>
 
{{:CSC490ForSyllabus}}<br>
 +
 +
[[CSC102ForSyllabus]]

Latest revision as of 00:56, 9 July 2021

Contents

CSC 102: Introduction to Programming: 2 hours.

Description

A gentle introduction to programming for students with no previous computer programming experience. Students will write many small computer programs to practice problem solving and programming methodology. Problems will be taken from a variety of application domains. One lecture and one lab per week. Lab: CSC 102L

Goals for CSC 102 are:

  1. Have and introductory knowledge of programming
  2. Be able to write simple programs

Course outcomes for CSC 102 are:

Upon completion of CSC 102, students will understand:

  • how to write simple programs
  • programming terms including variables, selection, repetition, functions/procedures.

Program outcomes for CSC 102 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

Integration

  1. Note taking at the introductory level via accountability for class notes
  2. Team work at the introductory level by working in pairs with a robot
  3. Professionalism at the introductory level by requiring all communications about the course to be at a professional level
  4. Ethics at an introductory level by covering:
    • being honest about what your software can and cannot do
    • encouraging their project to be socially responsible
  5. Cybersecurity at the introductory level by covering:
    • secure programming in terms of what crazy input can be given to the program.
  6. Verbal communications at an introductory level by requiring each team to present their project and include the some grading of the quality of the presentation as part of the rubric with feedback on how to improve

CSC 110: Introduction to Computer Science: 2 hours.

Description

This course serves as an introduction to the Computer Science and Cyber Security majors. Topics include current issues in computer science and an introduction to logic and programming. LAB CSC 110L. Prerequisite: MATH 107 or Demonstrated Competency

Goals for CSC 110 are:

To be determined

Objectives for CSC 110 are:

To be determined

Course outcomes for CSC 110 are:

To be determined

Program outcomes for CSC 110 are:

To be determined

Integration

To be determined

CSC 112: Digital Citizen of the 21st Century: 2 hours.

Description

Study of computing and ways it shapes and influences 21st century citizens and society. Provides basic understanding of computing capability and limitations for more informed discussion of issues. Topics may include: news, entertainment, media, identity, communication, relationships, financial transactions, intellectual property, privacy, security. Two lectures a week.

Goals for CSC 112 are:

  1. To help the student become a responsible citizen in the areas of technology
  2. To give the students a basic understanding of the field of computing

Course outcomes for CSC 112 are:

Upon completion of CSC 112, Students will:

  • understand various ethical issues in today's digital world
  • understand various cyber security issues in today's world
  • understand the impact of technology on today's world
  • understand the world's impact on technology
  • be able to write good 2-3 page paper
  • be able to take complete lecture notes

Program outcomes for CSC 112 are:

  1. Communicate effectively in a variety of professional contexts.
  2. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  3. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

  1. Note taking at the introductory level by requiring students to take lectures notes. Should include posting videos of some class lectures so they can review their technique.
  2. Technical writing at the introductory level by requiring written work to have section headers, decent size paragraphs, and giving feedback on transitions.
  3. Ethics at an introductory level by covering:
    • digital divide
    • ownership of digital material
  4. Cybersecurity at the introductory level by covering:
    • securing one's self in social media
    • the fundamental concept of cyber security

CSC 121: Programming 1: Control Structures: 3 hours.

Description

An introduction to computer application development using a high level, object oriented, GUI based language. Emphasis is on the use of problem solving methods, algorithms, control structures, documentation and debugging. Two lectures and one lab per week.

Goals for CSC 121 are:

Upon completion of the course, students will

  1. Be able to write small (two pages) programs independently of outside help
  2. Begin to develop technical writing skills
  3. Have developed simple habits of secure programming

Course outcomes for CSC 121 are:

Upon completion of CSC 121, students will know:

  • how to write 2 - 3 page programs in a high level language
  • how to document code and a program
  • how to come up with a simple testing plan that includes input, output, and some error conditions
  • how to work with a simple IDE to debug a program

Program outcomes for CSC 121 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Integration

  1. Self-learning at the introductory level by having some programming assignments that include using some simple features not covered in class (such as simple math function, formatting, string functions that are easy to understand and covered by the textbook)
  2. Note taking at the introductory level by not posting lecture notes and holding students responsible for the content.
  3. Technical writing at the introductory level by requiring students to understand and properly express a problem summary and requirements and the steps of a program and a complete (but somewhat informal) testing report.
  4. Professionalism at the introductory level by having students track how long it takes to write programs (so that they are better equip to estimate this in the future) and comment on what they learned and what they would want to to better with a program if they could.
  5. Cybersecurity at an introductory level by requiring students to document possible invalid input what happens for all programs. By the end of the semester, they should handle some of the invalid input (i.e. secure programming).
  6. Ethics at an introductory level by having at least two programs assigned that could have ethical implications and having the students discuss that in their reports.

CSC 122: Programming 2: Data Structures: 3 hours.

Description

Students learn data structures including stacks, queues, trees, lists, graphs. Other data structures and sorting and searching are covered. Students learn both how to use the data structures via standard api's and how to implement them. 2 lectures and one lab per week. Lab: CSC 122. Prerequisite: CSC 121

Goals for CSC 122 are:

  • Enhance the ability to program
  • Understand different data structures
  • Be able to use different data structures well

Course outcomes for CSC 122 are:

Upon completion of CSC 122, students will know:

  • how to use and build different data structures including stacks, queues, trees, graphs, and lists
  • a number of different searches and sorts (including O(nlogn) sorts)
  • how to identify Big-O for given algorithms
  • how to completely document code and programs
  • how to thoroughly test a program (including most error conditions)
  • how to identify some potential security issues with code being developed
  • the importance of designing before coding and practice it when warranted.

Program outcomes for CSC 122 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  7. Learn new areas of technology

Integration

  1. Self-learning at the introductory level by having some programming assignments that include using some simple features not covered in class (such as using a pre-defined data type)
  2. Note taking at the introductory level by not posting lecture notes and holding students responsible for the content.
  3. Technical writing at the application level by requiring students to do a formal software development report and requiring quality writing (and grading the quality of the writing), Also by the end of the semester by refusing to accept reports that don't meet a bare min. standard (such as standards, spell check, using bullet lists as appropriate.
  4. Team work at the introductory level by having at least two assignments where students are working in pairs with one developing the data structure and the other using it. Students need to take on both roles during the semester. Students also might have a third assignment where they are assigned one of the two roles and they have a partner that they don't know and must only communicate via the interface.
  5. Professionalism at the introductory level by having students track how long it takes to write programs (so that they are better equip to estimate this in the future) and comment on what they learned and what they would want to to better with a program if they could.
  6. Cybersecurity at an introductory level by requiring students to document possible invalid input what happens for all programs. By the end of the semester, they should handle some of the invalid input (i.e. secure programming).
  7. Ethics at an introductory level by having at least one program assigned that could have ethical implications and having the students discuss that in their reports.

CSC 150: Seminar 1: 0.5 hours.

Description

Covers technical skills (such as use of Linux) needed during the major, soft skills (including note taking and time management), specific CS topics, architecture, o.s., programming languages, and ethics. Also will include guest speakers from industry and projects done by upperclassmen. To be taken twice. One lecture per week.

Goals for CSC 150 are:

To be determined

Course outcomes for CSC 150 are:

Upon completion of CSC 150, students will understand:

  • how to take quality lecture notes and respond intelligently to a talk
  • different options in the curriculum available to them in the junior and senior years
  • additional ethical issues
  • additional security issues
  • (depending on the semester)
    • how to use Linux and vi
    • how to use and program Windows server
    • how to use other technologies as appropriate

Program outcomes for CSC 150 are:

  1. Communicate effectively in a variety of professional contexts.
  2. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  3. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

  1. Note taking at the introductory level by requiring students to summarize what was said by the speakers with details not found in any posted slides
  2. Technical writing at the introductory level by requiring all writing to adhere to format standards
  3. Professional at the introductory level by having working professionals talk to the students about what it means to be a professional and by having inflexible deadlines.
  4. Cybersecurity at an introductory level by
    • studying one current event associated with cybersecurity
  5. Ethics at an application level by
    • studying one current event associated with computing ethics including the Christian perspective

CSC 210: Database 3 hours.

Description

A course introducing the student to the principles and practices of data base management and database design. Topics will include relational database design, normalization, SQL queries, reports and other interfaces to database data, and documentation, as well as ethical and privacy issues associated with database systems. Three lectures a week. Prerequisite: CSC 102, CSC 121, ITSC 121, or permission of the instructor.

Goals for CSC 210 are:

To be determined

Course outcomes for CSC 210 are:

Upon completion of CSC 210, students will understand:

  • how to write complex SQL queries
  • how to design and implement quality databases
  • security issues associated with database technologies
  • ethical issues associated with database technologies
  • improved testing techniques

Program outcomes for CSC 210 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  6. Learn new areas of technology
  7. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

  1. Self-learning at the introductory level by having the students learn a few sql functions on their own but having them part of the assignments. This could include formatting associated with dates, string functions, and dealing with nulls.
  2. Note taking at the introductory level by requiring students take class notes and listen and record given guidelines (that may or may not be on slides) for sql and ER diagramming.
  3. Professionalism at the introductory level by
    • having students learn about the need for high quality work for table design
    • having students learn to respect the knowledge of the domain expert when designing tables.
    • not accepting any document/work that does not have a name on it
  4. Security at the introductory level by
    • having students learn about only storing the data needed and nothing more
    • having students learn about SQL injections.
    • having students learn how to secure data via views, constraints, and permissions, and the weaknesses of each.
  5. Ethics at the introductory level by discussing the responsibilities that come from having access to a lot of data.

CSC 230: Networking 3 hours.

Description

Introduction to design and performance evaluation of computer networks, including such topics as what protocols are, layered network architecture, internet protocol architecture, network applications, transport protocols, routing algorithms and protocols, internetworking, congestion control, and link layer protocols including Ethernet and wireless channels. Three lectures a week. Prerequisite: CSC 121 or ITSC 121

Goals for CSC 230 are:

To be determined

Course outcomes for CSC 230 are:

To be determined

Program outcomes for CSC 230 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Integration

To be determined

CSC 245: Computer and Systems Security: 3 hours

Description

This course provides students with a comprehensive examination of computer and systems security. The course focuses on the knowledge and skills that are essential to effectively participate in risk mitigation work. Students will learn about operational and information security while learning how to apply security controls to ensure effective protection. Students will be asked to identify appropriate technologies and strategies within appropriate legal, organizational, and regulatory guidelines.

Goals for CSC 245 are:

To be determined

Objectives for CSC 245 are:

To be determined

Course outcomes for CSC 245 are:

To be determined

Program outcomes for CSC 245 are:

To be determined

Integration

To be determined

CSC 255: Principles of Cybersecurity: 3 hours

Description

This course introduces students to the best practices in Cyber Security and examines the security technologies and methodologies that are in the field. Students will encounter the various concepts involved in protecting information assets within computer networks. Students will learn about the various security models, approaches to risk assessment, threat analyses, security policy formation, and security implementation. Notes: This course introduces students to the best practices in Cyber Security and examines the security technologies and methodologies that are in the field. Students will encounter the various concepts involved in protecting information assets within computer networks. Students will learn about the various security models, approaches to risk assessment, threat analyses, security policy formation, and security implementation.

Goals for CSC 255 are:

To be determined

Objectives for CSC 255 are:

To be determined

Course outcomes for CSC 255 are:

To be determined

Program outcomes for CSC 255 are:

To be determined

Integration

To be determined

CSC 261: Self-Directed Learning: Web Programming: 3 hours

Description

Students use independent learning techniques combine with class discussion to learn to build websites using HTML, CSS, PHP, and JavaScript. In the lab, students learn how to structure self-learning. One lecture, one lab, and on-line learning each week. Lab: CSC261L Corequisite: CSC 150

Goals for CSC 261 are:

Upon completion of this course students will:

  1. Be able to create web pages with HTML, CSS, JavaScript, and PHP
  2. Have developed skills in being a life long learner

Course outcomes for CSC 261 are:

Upon complete of CSC 261, students will understand:

  • how to build web sites uses HTML, CSS, JavaScript, and PHP
  • security issues associated with websites
  • ethical issues associated with websites
  • how to structure their own self learning on future tasks.

Program outcomes for CSC 261 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Learn new areas of technology

Integration

  1. Self-learning at the application level by
    • having the technical material being covered by existing online lessons found in the ACM learning center and other professional sites
    • having discussions about how to get the most out of online lessons
    • demonstrating how to establish education goals, outcomes, and tasks to learn specific tasks.
  2. Note taking at the application level by grading the notes students take while working through online lessons
  3. Technical writing by requiring students to create at least one website covering a technical topic and grading it on the way it communicates the information
  4. Professionalism at the application level by holding discussions about the differences between building websites for oneself/friends (as a hobby) and doing it as a job.
  5. Security at the introductory level by covering at least two different security issues associated with website development
  6. Ethics at an introductory level by discussing the responsibilities of a website provider for the content of the material posted on the website.
  7. Verbal communications at the introductory level by requiring each student to make presentation (at least 5 minutes) discussing either what was learned in a lesson or presenting a website created by the student.

CSC 262: Self-Directed Learning: System Administration: 3 hours

Description

Students learn the fundamentals of Linux and Windows Server Administration. On-line lessons will be used. In the lab, students learn how to structure self-learning. One lecture, one lab and on-line lessons each week. Lab CSC 262L Corequisite: CSC 150

Goals for CSC 262 are:

To be determined

Course outcomes for CSC 262 are:

Upon completion of CSC 262, students will understand:

  • how to install and administer Linux systems
  • how to install and administer Windows servers
  • security issues with both systems
  • how to structure their own self learning on future tasks.

Program outcomes for CSC 262 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Learn new areas of technology

Integration

  1. Self-learning at the application level by
    • having the technical material being covered by existing online lessons found in the ACM learning center and other professional sites
    • having discussions about how to get the most out of online lessons
    • demonstrating how to establish education goals, outcomes, and tasks to learn specific tasks.
  2. Note taking at the application level by grading the notes students take while working through online lessons
  3. Technical writing by requiring students to create at at least one user manual and creating the manual on both content and writing ability.
  4. Professionalism at the application level by holding discussions about the differences between maintain one's own (or friend's) systems and doing it as a profession and maintain many computers.
  5. Security at the application level by including modules on securing Windows servers and Linux boxes.
  6. Ethics at an introductory level by discussing TBD.
  7. Verbal communications at the introductory level by requiring each student to make a formal demonstration of their servers and grading not just the quality of the servers and what is installed but how well the presentation was organized.

CSC 263: Self-Directed Learning: Introductory CS Topics: 3 hours

Description

An introductory topic of computer science is covered. Students learn via on-line lessons and class discussion. In the lab, students learn how to structure self learning. One lecture, one lab and on-line lessons each week. Lab CSC 263L. Corequisite: CSC 150

Goals for CSC 263 are:

To be determined

Course outcomes for CSC 263 are:

Upon completion of CSC 263, students will understand:

  • a specific topic in computing and the ethical and security issues associated with it
  • how to structure their own self learning on future tasks.

Program outcomes for CSC 263 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Learn new areas of technology

Integration

To be determined

CSC 265: Management of Cybersecurity: 3 hours

Description

This course focuses on the administrative aspects of cyber security work. Particular focus is given to strategic planning and understanding of the policies and procedures for leadership with an organization. Students will learn about staffing procedures required for maintaining the ongoing security oversight in the organization. Prerequisite CSC 255

Goals for CSC 265 are:

To be determined

Objectives for CSC 265 are:

To be determined

Course outcomes for CSC 265 are:

To be determined

Program outcomes for CSC 265 are:

To be determined

Integration

To be determined

CSC 321: Programming 3: Object Oriented Programming: 3 hours

Description

Advanced programming with a focus on the components of designing and developing quality object oriented programs. Three lectures a week. Prerequisite: CSC 122 or ITSC 122

Goals for CSC 321 are:

For students:

  • to be able to develop object oriented systems
  • to become independent programmers

Course outcomes for CSC 321 are:

Upon complete of CSC 321, students will understand:

  • how to design and develop object-oriented programs of sufficient size
  • how to complete test significant programs
  • how to document programs
  • how to estimate time needed to develop a program

Program outcomes for CSC 321 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Integration

  1. Note taking at the application level. It is assumed that by this level students will be able to take quality notes in class. At least one assignment will have details only given in lecture requiring the students to take notes for any such assignment.
  2. Writing at the application level by requiring quality software development reports.
  3. Security at the introductory level by covering topics associated with secure programming in an object oriented environment

CSC 310: Advanced CS topics: 3 hours

Description

Advanced cutting edge CS topics such as cloud computing, machine learning, big data, Internet of things, or mobile computing will be covered. Can be taken up to 4 times as long as the content is different. 3 lectures a week. Prerequisite: Permission of the instructor.

Goals for CSC 310 are:

To be determined

Course outcomes for CSC 310 are:

Upon completion of CSC 310, students will understand:

  • a specific advanced topic in computing and the ethical and security issues associated with it

Program outcomes for CSC 310 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Communicate effectively in a variety of professional contexts.
  3. Learn new areas of technology

Integration

  1. Self-learning at the application level by requiring students to learn one component of the topic on their own (with little assistance from the instructor)
  2. Note taking at that master level by
    • not posting lecture slides,
    • requiring students to track all requirements themselves
    • having exam questions based on specifics in the lectures and presentations given by other students.
    • Technical writing at the mastery level by requiring to write a technical report of a project for the class in a quality manner. Advanced discussion on things such as a theme, transitions, use of diagrams, focus, and other items should be covered in class and graded on.
  3. Security at an application level by covering at least two separate security issues associated with the topic of the course.
  4. Ethics at an application level by covering at least two separate ethical issues associated with the topic of the course.
  5. Verbal communications at the application level by requiring students to present their projects and/or supplementary material to the class.

CSC 315: Principles of Cyber Define: 3 hours

Description

This course examines the strategies and tactics employed by cyber security experts to protect networks, systems, applications, and data. Building from the foundations of CSC 245, this course focuses on the practices and strategies of active cyber defense. Prerequisite: CSC 255

Goals for CSC 315 are:

To be determined

Objectives for CSC 315 are:

To be determined

Course outcomes for CSC 315 are:

To be determined

Program outcomes for CSC 315 are:

To be determined

Integration

To be determined

CSC 335: Cybercrime, Law,and Ethics: 3 hours

Description

A study of the history of cybercrime and how it has affected various entities – government, finance, retailers, and people. The course will cover ethical decision-making, cyber law, ethics, protection of financial and intellectual information and property, and potential ethical issues that cyber security leaders face. Prerequisite: CSC 110

Goals for CSC 335 are:

To be determined

Objectives for CSC 335 are:

To be determined

Course outcomes for CSC 335 are:

To be determined

Program outcomes for CSC 335 are:

To be determined

Integration

To be determined

CSC 340: Software Engineering Theory: 3 hours

Description

Students learn about the details of leading software engineering methodologies and how to implement the associated techniques. Two lectures and one lab per week. Prerequisite: (CSC 121 or ITSC 121) and CSC 150.

Goals for CSC 340 are:

To be determined

Course outcomes for CSC 340 are:

Upon completion of CSC 340, students will understand:

  • the techniques associated with current software engineering techniques (specifically Agile)
  • how to practice such techniques
  • the issues associated with communicating with a customer
  • how to write quality artifacts for a project and present them
  • how to refine their work

Program outcomes for CSC 340 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  7. Learn new areas of technology

Integration

  1. Self learning at the introductory level by requiring students to learn at least one aspect of Agile programming on their own and use it during the semester.
  2. Note taking at the application level by requiring students to take quality notes from meetings and grading those notes
  3. Technical writing at the application level by quality artifacts and documentation to be in a final form
  4. Team work at the application level by
    • requiring most (if not all) project work to be done in teams. Switching team members during the semester should be considered
    • having the roles in the team chance throughout the semester
  5. Professional at the application level by requiring students to treat all team meetings in a professional context and preparing their work to be at the professional level instead of homework level.
  6. Security at the application level by requiring all work on software to include a section on the security issues
  7. Ethics at the application level by
    • requiring all work on software to include a section on ethical issues
    • covering cases of software failure and the ethics associated with that
  8. Verbal communication at the application level by requiring each team to make at least two presentations to the class.

CSC 345: Network Defense and Countermeasures: 3 hours

Description

The purpose of this course is to examine the strategies and tools to secure information within a network. The course blends technical and detailed examination of the tools and technologies used in the technical securing of information assets. This course is designed to provide in-depth information on the software and hardware components of Cybersecurity. Topics covered include: security, and specific implementation of security models and architectures. Prerequisite: CSC 315

Goals for CSC 345 are:

To be determined

Objectives for CSC 345 are:

To be determined

Course outcomes for CSC 345 are:

To be determined

Program outcomes for CSC 345 are:

To be determined

Integration

To be determined

CSC 350: Seminar 2: 0.5 hours

Description

Covers career searching, advanced CS topics including optimization, parallelism, and concurrency and recent topics of computing. Students will present their work to their peers. Guest speakers will also present. To be taken twice. One lecture a week. Prerequisite: CSC 150.

Goals for CSC 350 are:

To be determined

Course outcomes for CSC 350 are:

Upon completion of CSC 350, students will understand:

  • how to prepare for entry into a career in computing
  • how to take quality notes
  • how to respond to a quality presentation
  • how to make quality presentations

Program outcomes for CSC 350 are:

  1. Communicate effectively in a variety of professional contexts.
  2. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  3. Learn new areas of technology
  4. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

To be determined

CSC 355: Linux Operating Systems and Security: 3 hours

Description

Introduces the UNIX/Linux family of operating systems. Basic commands, utilities, system structures, scripting and tools are explored. Elements of system administration are presented. Focus is on utilizing the command line, installing, configuring, maintaining, and securing the Linux server system. Prerequisite: CSC 220

Goals for CSC 355 are:

To be determined

Objectives for CSC 355 are:

To be determined

Course outcomes for CSC 355 are:

To be determined

Program outcomes for CSC 355 are:

To be determined

Integration

To be determined

CSC 397: Cybersecurity Internship: 3 hours

Description

This supervised internship provides students with the opportunity to integrate classroom instruction with work in the cyber security field. Students will be required to document a minimum of 45 hours of internship engagement per credit hour and written reflection in the course.

Goals for CSC 397 are:

To be determined

Objectives for CSC 397 are:

To be determined

Course outcomes for CSC 397 are:

To be determined

Program outcomes for CSC 397 are:

To be determined

Integration

To be determined

CSC 398: Internship: 3 hours

Description

Field experience in a selected area of interest, including on-the-job exposure and completion of a significant project. Prerequisite: CSC 150 and (CSC 121, ITSC 121 CSC 261, CSC 262, or CSC 263)

Goals for CSC 398 are:

To be determined

Course outcomes for CSC 398 are:

Upon completion of CSC 398 students will understand:

  • how to work in a professional environment
  • how to write a quality technical document

Program outcomes for CSC 398 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  7. Learn new areas of technology

Integration

To be determined

CSC 415: Penetration Testing: 3 hours

Description

This innovative course takes a hands-on approach to teaching, putting students in the role of potential hacker. Mock networks are constructed for students to attempt to hack in and obtain information. Students learn about the role of testing networks as cyber security leaders and what ethical hacking provides those entrusted with the defense against cyber attacks. Students who complete this course will be equipped with the knowledge necessary to analyze and evaluate systems security. Explore the use of intrusion detection/prevention technologies and information flow controls to protect networked systems. Prerequisite: CSC 345

Goals for CSC 415 are:

To be determined

Objectives for CSC 415 are:

To be determined

Course outcomes for CSC 415 are:

To be determined

Program outcomes for CSC 415 are:

To be determined

Integration

To be determined

CSC 420: Theory of Computation: 3 hours

Description

Covers the detailed comparative analysis of algorithms and their computational complexity. May also include formal language theory including finite automata, Turning machines, context-free grammars, and decidability. 3 lectures a week. Prerequisite: MATH 210 and (CSC 122 or ITSC 122).

Goals for CSC 420 are:

To be determined

Course outcomes for CSC 420 are:

Upon completion of CSC 420 students will understand:

  • the theory of computer science
  • Big O notation
  • N/NP problems
  • how to deal with complex material

Program outcomes for CSC 420 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Integration

To be determined

CSC 425: Network Forensics: 3 hours

Description

This course provides a detailed examination of techniques and tools used to investigate, search, collect, analyze, and report on network-based breaches and events. The course includes a strong emphasis on digital forensic procedures, digital forensic tools, and legal issues relating to digital forensics in a network environment. Specific topics include analysis of network traffic, communication artifacts, event logs, and potential malware. Prerequisite: CSC 345

Goals for CSC 425 are:

To be determined

Objectives for CSC 425 are:

To be determined

Course outcomes for CSC 425 are:

To be determined

Program outcomes for CSC 425 are:

To be determined

Integration

To be determined

CSC 435: Incident Response and Contingency Planning: 3 hours

Description

Emphasis will be given to developing and executing an overall plan to deal with incidents in the organization. Students will learn about incident responses activities and how to conduct thorough digital investigations. The course will also cover work that consists of the three most common areas of contingency planning – incident response, disaster recovery, and continuity strategies

Goals for CSC 435 are:

To be determined

Objectives for CSC 435 are:

To be determined

Course outcomes for CSC 435 are:

To be determined

Program outcomes for CSC 435 are:

To be determined

Integration

To be determined

CSC 441: Software Engineering in Practice: 3 hours

Description

Students take was learned in CSC 340 and put it into practice while working on a team on a real life problem. Two lectures and one lab per week. Prerequisite: CSC 340

Goals for CSC 441 are:

To be determined

Course outcomes for CSC 441 are:

Upon completion of CSC 441 students will understand:

  • how to work with real customers
  • how to work on a real project
  • how to apply the software engineering techniques learned in CSC 340
  • how to develop quality artifacts of a real project
  • how to present their work to a real customer

Program outcomes for CSC 441 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  7. Learn new areas of technology
  8. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

To be determined

CSC 445: Advanced Cyber Defense: 3 hours

Description

This capstone course centers on the construction of an E-portfolio and in the participation of a series of live in-course simulations. The portfolio serves as a comprehensive demonstration of the learning that the student has achieved. The simulations serve as a comprehensive exam that proves the readiness level of the student to take on the responsibility of ensuring cyber security. Portfolio topics will include cyber security policy and practice, the protection of communication resources, intrusion detection systems, firewalls, and use of anti-virus, patching practices, as well as personnel and physical security practices.

Goals for CSC 445 are:

To be determined

Objectives for CSC 445 are:

To be determined

Course outcomes for CSC 445 are:

To be determined

Program outcomes for CSC 445 are:

To be determined

Integration

To be determined

CSC 450: Senior Project: 3 hours

Description

Students will showcase knowledge and skills by completing a project of their own design (approved by the department). Prerequisite: Permission of the instructor.

Goals for CSC 450 are:

To be determined

Course outcomes for CSC 450 are:

Upon completion of CSC 450 students will understand:

  • how to define, research, and complete a complex project in computing
  • how to write up their work in a technical document
  • how to present their work
  • how to identify security and ethical issues in a topic of their choosing

Program outcomes for CSC 450 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  6. Learn new areas of technology
  7. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

To be determined

CSC 463: Self-Directed Learning: Advanced CS Topics: 3 hours

Description

Students will pick one advanced cutting edge topic (typically cloud computing, machine learning, big data, Internet of things, or mobile computing), develop their own learning goals and strategies, get them approved and learn the material on their own. Students will be required to develop a project to demonstrate what they have learned. Can be taken up to 2 times as long as the topic is different. Topics must also differ from those taken in CSC 410. One lecture a week. Prerequisite: (CSC 261, CSC 262, or CSC 263) and permission of the instructor

Goals for CSC 463 are:

To be determined

Course outcomes for CSC 463 are:

Upon complete of CSC 463 students will know:

  • how to direct their own self learning for future tasks
  • how to demonstrate the ideas they have learned
  • how to identify security and ethical issues in a topic of their own choosing.

Program outcomes for CSC 463 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Communicate effectively in a variety of professional contexts.
  3. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  4. Learn new areas of technology

Integration

To be determined

CSC 490: Senior Capstone: 2 hours

Description

This is a capstone experience for all computing majors. It covers advanced principles of computing including optimization, parallelism, advanced architecture, and other fundamental topics not covered elsewhere in the curriculum. Two lectures a week. Prerequisite: CSC 340 and one hour of CSC 150/350

Goals for CSC 490 are:

To be determined

Course outcomes for CSC 490 are:

Upon completion of CSC 490 students will understand:

  • how to learn and present new material
  • recurring themes in computing

Program outcomes for CSC 490 are:

  1. Communicate effectively in a variety of professional contexts.
  2. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  3. Learn new areas of technology
  4. Use technology to help bring Christ to the world and apply Christian principles to their work

Integration

To be determined

CSC102ForSyllabus