Computer Science

This is an archived copy of the 2015-16 Catalog. To access the most recent version of the catalog, please visit http://catalog.norwich.edu/.

Professor Mich Kabay; Associate Professors David Blythe and Huw Read; Assistant Professor Jeremy Hansen; Lecturers Matthew Bovee and Kris Rowley.

The program focuses on practical design and development in computational environments, as well as the underlying theoretical foundations that make these environments operate efficiently, reliably, and securely. Our graduates integrate knowledge from other disciplines such as mathematics and engineering and enter into organizations with a broad functional and enterprise perspective.

The Bachelor of Science program in Computer Science provides students with a solid foundation for a wide range of career fields and for entry into graduate-degree programs. This intense and challenging program provides extensive preparation in data structures, algorithms, and mathematics leading to advanced courses in computer architecture, operating systems, software engineering, computer networking, information security, and information management. The graduates of this program have the in-depth knowledge of hardware, software, and applications required to perform complex tradeoff analyses at the hardware and software level. The technical studies in this program, combined with thoughtful selection of electives in the humanities and social sciences, prepare the graduate to be a future leader in our progressive, information-based society.

Each student has an individually assigned faculty advisor from their very first day on campus. The faculty advisor assists in the development of an individualized academic program designed to meet the student's career goals. The student and the faculty advisor work together to keep the student's individualized program on track throughout their enrollment at Norwich. Committed to strong ties linking the classroom, the computer labs, and the real world, this program focuses extensively on the application of classroom work to solving real-world computer-design and -application problems.

Goals:

Graduates will be able to:

  • Apply their knowledge of computer science to problems encountered in their professional careers or in pursuit of advanced degrees.
  • Use evolving technologies, analytical thinking, and design to address contemporary issues.
  • Communicate well orally and in writing, interact professionally, and work effectively on multidisciplinary teams to achieve project objectives.
  • Uphold high ethical standards, including concern for the impact of computing on individuals, organizations, and society.

Outcomes:

Upon graduation, students will:

  • Be competent in theoretical and mathematical foundations of computer science.
  • Be proficient in at least one programming language and have a basic knowledge of at least one other.
  • Understand the hardware and software architecture of computer systems.
  • Demonstrate the ability to participate in professional practices related to software engineering.
  • Be able to communicate effectively about computer science-related topics.
  • Demonstrate the ability to be responsible practitioners of computer science and understand the social and ethical implications of computing.

Careers for this Major:
  • Chief Information Officer
  • Chief Technical Officer
  • Computer Support Specialist
  • Information Systems Manager
  • Network Administrator
  • Software Engineer
  • Software Tester
  • Systems Administrator

B.S. in Computer Science - Curriculum Map

Freshman
FallCreditsSpringCredits
CS 100 Foundations of Computer Science and Information Assurance3CS 140 Programming and Computing4
EN 101 Composition and Literature I3EN 102 Composition and Literature II3
General Education History3MA 121 Calculus I (General Education Math)4
MA 107 Precalculus Mathematics14General Education Arts & Humanities3
 Free Elective3
 13 17
Sophomore
FallCreditsSpringCredits
CS 228 Introduction to Data Structures3CS 240 Database Management4
EE 215 Fundamentals of Digital Design4CS 212 Assembly Language & Reverse Engineering3
General Education Lab Science4General Education Lab Science4
MA 122 Calculus II (General Education Math)4QM 213 Business and Economic Statistics I3
Free Elective3Free Elective3
 18 17
Junior
FallCreditsSpringCredits
CS 301 Software Engineering3CS 260 Data Communications and Networks3
EE 321 Embedded Systems4CS 270 Operating Systems & Parallelism3
MA 306 Discrete Mathematics3MA 380 Theory of Computation3
Technical Elective23Technical Elective23
Free Elective3Free Elective3
 16 15
Senior
FallCreditsSpringCredits
CS 420 Computer Science capstone I or 430 Computer Science Undergraduate Thesis I3CS 421 Computer Science Capstone II or 431 Computer Science Undergraduate Thesis II3
General Education Literature3General Education Social Science3
PH 303 Survey of Ethics or 322 Business Ethics (General Education Ethics)3Mathematics Elective33
Technical Elective23Technical Elective23
Free Elective3Free Elective3
 15 15
Total Credits: 126
1

Requires math placement score of 2. Students scoring below 2 must complete the appropriate necessary prerequisite math courses first. Waived with math placement score of 3

2

CS 302 or higher, or IA 241 or higher, or DF 241 or higher, or EE 201 or higher

3

MA 223, MA 224, MA 240, MA 241, MA 309, MA 318, or MA 421

Computer Science Minor

All six courses require a grade of C or higher.

CS 140Programming and Computing 14
CS 228Introduction to Data Structures3
EE 215Fundamentals of Digital Design4
MA 306Discrete Mathematics 23
Minor Elective Courses: choose two of the following6
Assembly Language & Reverse Engineering3
Database Management3
Virtual Systems Administration3
Data Communications and Networks3
Operating Systems & Parallelism3
Software Engineering3
Total Credits20
1

Prerequisite: C or higher in IS 100 or CS 100, or permission of instructor

2

Prerequisite: MA 108 or MA 121 and knowledge of computer programming. Offered fall semesters.

Courses

CS 100 Foundations of Computer Science and Information Assurance 3 Credits

This survey of computing and information assurance fundamentals is required for computer science and information assurance majors. The course focuses on learning to use key concepts and terminology in information technology, computer science, networking, and information security. Discussions regarding computing ethics, safety, and professionalism are included throughout. Prerequisites: By permission only for non-computer science and non-CSIA majors.

CS 120 Business Applications & Problem Solving Techniques 3 Credits

An introductory course in management information processing. The course explores the most important aspects of information systems with specific emphasis on business applications, practical usage, and current information. The student will obtain skills in word processing, spreadsheet analysis, and presentation tools using professional software packages. Structured problem-solving techniques will be emphasized throughout the course. Practical implementation projects and case studies will be used to reinforce topics such as computer, academic, and professional ethics for an information-based society. Not open to CS or CSIA majors.

CS 140 Programming and Computing 4 Credits

An introduction to fundamental computing concepts and programming, designed for students with little programming background. The course uses a high-level language and emphasizes object-oriented design and implementation techniques. Good software engineering practice and language-specific concepts are introduced by means of programming projects that illustrate the importance of software quality attributes. This course serve s as the basis for more advanced programming classes. Classroom 3 hours, laboratory 2 hours. Prerequisite: C or higher in IS 100 or CS 100, or by instructor permission.

CS 212 Assembly Language & Reverse Engineering 3 Credits

CS 221 GUI Programming 3 Credits

CS 228 Introduction to Data Structures 3 Credits

An introduction to the basic concepts of algorithm analysis, data representation, and the techniques used to operate on the data. Topics include searching, sorting, linked lists, stacks, queues, trees, hash tables, graphs, Prerequisite: C or higher in IS 131 or CS 140.

CS 240 Database Management 3 Credits

A study of the concepts and structures necessary to design and implement a database management system. Various data models will be examined and related to specific examples of database management systems including Structured Query Language (SQL). Techniques of system design, system implementation, data security, performance, and usability will be examined. Prerequisite: C or higher in IS131 or CS 140.

CS 250 Virtual Systems Administration 3 Credits

This course includes a combination of classroom lecture on network and virtualization theory as well as a variety of hands on exercises to provide students with an understanding of how to configure and manage a VMware ESX environment. Students will also learn how to carry out administration tasks specific to the day-to-day operations of the NUCAC-DF. Some of these tasks will include how to build and maintain classroom environments, understanding requirements given by professors and instructors for classrooms, and overall maintenance of the systems in the Center for Advanced Computing and Digital Forensics.

CS 260 Data Communications and Networks 3 Credits

An introductory study in fundamental concepts of computer networks and data communication including a survey of major protocols, standards, and architectures. Students use concepts and terminology of data communications effectively in describing how software applications and network services communicate with one another. Students read and analyze network traces to monitor communications, diagnose issues, and evaluate protocols. Prerequisite: C or higher in IS 131 or CS 140.

CS 270 Operating Systems & Parallelism 3 Credits

An introduction to the theory and structure of modern operating systems, including hardware abstraction, process management, memory management, system performance, and security. Specific attention to multi-threaded processing, semaphores, locking and interprocess communication. Prerequisites: C or higher in IS 131 or CS 140.

CS 300 Management Information Systems 3 Credits

This course provides an overview of information systems, their role in organizations, and the relationship of information systems to the objectives and structure of an organization. Management of software projects, decision making with regard to systems development, and organizational roles with regard to information systems is also discussed. Not open to CS or CSIA students.

CS 301 Software Engineering 3 Credits

An in-depth introduction to the software development life cycle, the techniques of information analysis, testing, and the logical specification of software. Particular attention to project management, documentation, and interpersonal communication. Utilizing industry-standard methods, the student progresses through the phases of specification, design, implementation, and testing of information systems. Object-oriented design techniques are used to design new logical and new physical systems for business-related problems. Prerequisite C” or higher in IS 131 or CS 140.

CS 330 Ethics in Computing and Technology 3 Credits

The course examines ethical dilemmas resulting from current technological trends, as well as the ethical standards and creeds of a variety of organizations (e.g., Association for Computing Machinery). Students learn to evaluate case studies from an ethical perspective. Students are expected to conduct literature surveys, produce bibliographies, write literature reviews, and present oral summaries of research as well as offer critical evaluation of writings related to ethics and technology. This course meets the General Education Ethics requirement.

CS 406 Special Topics in Computer Science 3 Credits

A study of topics chosen from areas of current interest that are not offered as part of the permanent curriculum. Topics are chosen by instructors on a semester-by semester basis. Students may take the course more than once, provided each semester taken covers a substantively different topic. Prerequisite: By permission of instructor.

CS 407 Politics of Cyberspace 3 Credits

This course explores the interrelations of modern computing and communications technology with politics, power, news, privacy, crime, and creativity. The course assumes only a rudimentary familiarity with the basic concepts and terminology of modern Internet usage and computing and is not a technology-focused course. Prerequisite: Open to 2nd-semester sophomores or higher, or by instructor permission.

CS 410 Computing Internship 3 Credits

Internships in computing and information technology provide computing majors with the opportunity to apply and expand their knowledge within the computing discipline. Students must be Junior standing, or higher and have good academic standing. The student must have the internship approved beforehand by a computing faculty member and have the written consent of the Chair or Director of Computing. In addition, a supervisor within the sponsoring organization must agree to provide a written description of the internship beforehand, and provide progress reports during and after the internship experience. Prerequisites: Good Academic Standing, Junior or higher status.

CS 420 Computer Science capstone I 3 Credits

A two-semester course sequence normally taken in the Senior year. Based on the subject matter mastered during their previous coursework, students (individually or in a group) identify a current topic to study in depth. As part of their studies, they develop either a working software project or produce a substantial data or hardware artifact. This course represents the first semester of a students work towards such a project. Prerequisites: Junior standing or higher, Computer Science majors only.

CS 421 Computer Science Capstone II 3 Credits

As the second semester of the two-course capstone sequence, this course serves as a continuation of CS420. Prerequisites: CS420.

CS 430 Computer Science Undergraduate Thesis I 3 Credits

The computer science undergraduate thesis is a two-semester course sequence normally taken in the Senior year. The course introduces students to the breadth of tasks involved in independent research, including library work, problem formulation, experimentation, and writing and speaking. Based on the subject matter mastered during previous coursework, students (individually or in a group) identify a current topic to study in depth. Students produce an original research paper. This course represents the first semester of a student’s work towards such a project. Prerequisites: Junior standing or higher, Computer Science majors only.

CS 431 Computer Science Undergraduate Thesis II 3 Credits

As the second semester of the two-course thesis sequence, this course serves as a continuation of CS430. Prerequisite: CS430.