Computer Science

Professors Michael Battig, Mich Kabay and Huw Read; Associate Professors Matthew Bovee, Jeremy Hansen, and Charles Snow; Assistant Professor Ahmed Abdeen Hamed; Lecturer 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 will enter 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 operating systems, parallelism, software engineering, computer networking, and information security. The graduates of this program have the in-depth knowledge of hardware, software, and applications, required to perform complex trade-off 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 computer-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; and
  • 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; and,
  • 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

Computer Science (B.S.) – Curriculum Map 2020-2021 Catalog

New PlanGrids
Freshman
Fall Cr. Comp. Spring Cr. Comp.
CS 100 Foundations of Computer Science and Information Assurance 13CS 142 Introduction to Python Programming3
CS 111 Personal & Professional Cyber Safety1EN 102 Composition and Literature II3
EN 101 Composition and Literature I3MA 121 Calculus I (General Education Math)4
General Education History3 General Education Arts & Humanities3 
MA 107 Precalculus Mathematics 24General Education Leadership1-3 
      
Fall Semester Total Cr.: 14Spring Semester Total Cr.: 14-16
Sophomore
Fall Cr. Comp. Spring Cr. Comp.
CS 140 Programming and Computing 14CS 228 Introduction to Data Structures3
EE 215 Fundamentals of Digital Design4CS 240 Database Management3
General Education Lab Science4 CS 260 Data Communications and Networks3
MA 122 Calculus II (General Education Math)4General Education Lab Science4 
   Free Elective3 
      
Fall Semester Total Cr.: 16Spring Semester Total Cr.: 16
Junior
Fall Cr. Comp. Spring Cr. Comp.
EE 321 Embedded Systems4CS 270 Operating Systems & Parallelism3
CS 212 Assembly Language & Reverse Engineering3CS 301 Software Engineering3
MA 306 Discrete Mathematics3MA 380 Theory of Computation3
Technical Elective 3,43 Technical Elective 3,43 
QM 213 Business and Economic Statistics I
or MA 232 Elementary Statistics
3Free Elective3 
      
Fall Semester Total Cr.: 16Spring Semester Total Cr.: 15
Senior
Fall Cr. Comp. Spring Cr. Comp.
CS 420 Computer Science capstone I
or 430 Computer Science Undergraduate Thesis I
3CS 421 Computer Science capstone II
or 431 Computer Science Undergraduate Thesis II
3
PH 215 Survey of Ethics (General Education Ethics)
or 322 Money, Meaning and Morality
3General Education Social Science3 
General Education Literature3 Mathematics Elective 53 
Technical Elective 3,43 Technical Elective 3,43 
Free Elective3 Free Elective3 
      
Fall Semester Total Cr.: 15Spring Semester Total Cr.: 15
TOTAL CREDITS FOR THIS MAJOR: 121-123

Computer Science Minor - Curriculum Map 2020-2021

All six courses require a grade of C or higher. Please also refer to the course descriptions for any course prerequisites.

CS 140Programming and Computing4
CS 228Introduction to Data Structures3
EE 215Fundamentals of Digital Design4
MA 306Discrete Mathematics3
Minor Elective Courses: choose two of the following6
Assembly Language & Reverse Engineering3
Database Management3
Virtual Systems Administration3
Data Communications and Networks3
Operating Systems & Parallelism3
Introduction to Data Science3
Contemporary Data Visualization3
Software Engineering3
Advanced Data Science3
Intro to Data & Web Mining3
Machine Learning & Artificial Intelligence3
Total Cr.20

Courses

CS 100 Foundations of Computer Science and Information Assurance 3 Cr.

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. 3 Lecture hours. Prerequisites: Open to Computer Science or Computer Security & Information Assurance majors; others by permission. Offered: Fall, Spring.

CS 111 Personal & Professional Cyber Safety 1 Cr.

An introductory, self-paced, instructor-facilitated, online individual study course recommended for freshmen, or any student wanting to use computers, email, and social media safely. Topics include: information attributes to be protected by information security; reducing identity theft risk; preventing disasters by keeping adequate backups; preventing malware attacks; enabling firewalls; using strong authentication; resisting phishing and advance-fee frauds; rejecting telephone frauds; analyzing and resisting false rumors; using email effectively and professionally; avoiding embarrassment by controlling information-sharing; avoiding violations of anti-hacking and anti-piracy laws; and, avoiding accidental plagiarism. 1 Lecture hour. Offered: Fall, Spring.

CS 120 Business Applications & Problem Solving Techniques 3 Cr.

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. Prerequisite: Closed to Computer Science or Computer Security & Information Assurance majors. Offered: Fall, Spring.

CS 140 Programming and Computing 4 Cr.

An introduction to computing concepts and programming including the design and implementation of classes and complex data types. The course uses a high-level object-oriented 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 serves as the basis for more advanced programming classes. 3 Lecture hours and 2 Lab hours. Prerequisite: CS 100 and CS 142, Grade of C or higher or instructor permission. Offered: Fall, Spring.

CS 142 Introduction to Python Programming 3 Cr.

A first course in fundamental computing concepts and object oriented programming using Python applied to problem solving. Designed for students with no programming background. Students learn object oriented programming concepts and syntax, variables and data types, input and output, control of the flow of logic, use of different data sources and structures, functions, modules and exception handling. Examples are drawn from diverse areas. 3 Lecture hours. Offered: Fall, Spring.

CS 188 No Norwich Equivalent 6 Cr.

CS 1XX Computer Science Elective 1-6 Cr.

This course is used for transfer when no equivalent Norwich course exists.

CS 212 Assembly Language & Reverse Engineering 3 Cr.

An introduction to assembly language and reverse engineering, including relationship among machine language, assemblers, disassemblers, compilers, and interpreters. This courses provides requisite skills for computer forensics, malware analysis, and cryptology. 3 lecture hours. Prerequisites: Grade of C or higher in CS 140. (Spring).

CS 221 GUI Programming 3 Cr.

A study of the design and implementation of the graphical user interface. The course will present fundamentals of usability and human factors in GUI design. One or more of the following will be studied and implemented in a student project: Visual Basic programming, Web programming, GUI code generators. Prerequisite: Grade of C or higher in CS 140. (Occasionally).

CS 228 Introduction to Data Structures 3 Cr.

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. 3 lecture hours. Prerequisite: C or higher in CS 140. (Fall).

CS 240 Database Management 3 Cr.

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. 3 lecture hours. Prerequisite: Grade of C or higher in CS 140. (Spring).

CS 250 Virtual Systems Administration 3 Cr.

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. 3 lecture hours. Prerequisite: instructor permission. (Occasionally).

CS 260 Data Communications and Networks 3 Cr.

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. 3 lecture hours. Prerequisite: C or higher in CS 140. (Spring).

CS 270 Operating Systems & Parallelism 3 Cr.

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. 3 lecture hours. Prerequisites: C or higher in CS 140. (Spring) 202140.

CS 280 Introduction to Data Science 3 Cr.

Students learn data science foundations of data collection, manipulation, formulation, summarization, visualization and analytics by applying and mastering the use of data containers (e.g."data frames") to problems or questions of focal interest. 3 Lecture hours. Prerequisite: CS 142 or instructor permission. Offered: Fall, Spring.

CS 288 No Norwich Equivalent 6 Cr.

CS 290 Contemporary Data Visualization 3 Cr.

Students study and apply exploratory analysis and visual representation of data using contemporary software tools, algorithms and large data sets. Students discover, display and convey meaningful data relationships that target audiences may readily and correctly understand and use. 3 Lecture hours. Prerequisite: CS 142 or instructor permission. Offered: Fall.

CS 299 Pilot Course 3 Cr.

CS 2XX Computer Science Elective 6 Cr.

This course is used for transfer when no equivalent for a Norwich course exists.

CS 300 Management Information Systems 3 Cr.

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. Prerequisite: not open to Computer Science or Computer Security & Information Assurance majors. (Fall, Spring).

CS 301 Software Engineering 3 Cr.

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. 3 lecture hours. Prerequisite: Grade of C or higher in CS 140.

CS 305 Advanced Data Science 3 Cr.

Students learn and apply advanced data science concepts and methods to a research topic of their interest chosen in consultation with the instructor. 3 Lecture hours. Restriction: Junior or higher or instructor permission. Prerequisite: CS 280 and EN 201 or instructor permission. Offered: Fall, Spring.

CS 315 Intro to Data & Web Mining 3 Cr.

Students learn and apply fundamentals of Data and Web-mining such as classification, clustering, association-rule mining and pattern mining through hands-on exploration of Web resources and other large sets of structured and unstructured data. Students examine and use a variety of broadly applicable, practical techniques to discover and extract meaningful patterns from both example data sets and real world data sources of particular interest to their academic and professional interests. 3 Lecture hours. Prerequisite: CS 280 or instructor permission. Offered: Fall.

CS 323 Surveillance and Privacy in Germany 3 Cr.

An introduction to and comparison between legal, social, historical, political, and technical issues surrounding surveillance and privacy in Germany and the United States. In addition to surveillance and privacy, students research, analyze, and discuss issues of transparency, free speech, democratic dissent, social control, corporate and governmental power, and political parties. 3 lecture hours. Prerequisite: Grade of C or higher in CS 100. (Summer).

CS 330 Ethics in Computing and Technology 3 Cr.

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. (Occasionally).

CS 388 No Norwich Equivalent 6 Cr.

CS 399 Pilot course 3 Cr.

A course is permitted to run as a pilot, without seeking faculty approval for one academic year. The section will include the title of the course. A student will not earn credit for a pilot course and the course when approved as its own course.

CS 3XX Computer Science Elective 6 Cr.

This course is used for transfer when no equivalent Norwich course exists.

CS 406 Special Topics in Computer Science 1-4 Cr.

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. 3 Lecture hours. Prerequisite: Instructor permission. (Occasionally).

CS 407 Politics of Cyberspace 3 Cr.

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: Sophomore 2 status or higher. (Fall, Spring).

CS 410 Computing Internship 1-6 Cr.

Written academic products are required. A supervisor within the sponsoring organization must provide a written description of the internship beforehand, and a final performance evaluation of the student. Students may take the course more than once, up to a maximum of 18 hours earned credit, provided each semester taken covers a substantively different topic. Earned internship credit may be applied to not more than two required CS/CSIA major technical/concentration electives. Prerequisites: Junior status or higher; good academic standing; faculty approval and CS/CSIA Chair or Director approval. (Fall, Spring).

CS 420 Computer Science capstone I 3 Cr.

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 status or higher; Computer Science major. (Fall).

CS 421 Computer Science capstone II 3 Cr.

As the second semester of the two-course capstone sequence, this course serves as a continuation of CS 420. Prerequisite: CS 420. (Spring).

CS 430 Computer Science Undergraduate Thesis I 3 Cr.

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 major. (Fall) 202140.

CS 431 Computer Science Undergraduate Thesis II 3 Cr.

The second semester of the two-course thesis sequence. Prerequisite: CS 430. (Spring).

CS 437 Machine Learning & Artificial Intelligence 3 Cr.

Students learn and apply fundamental concepts of machine learning and artificial intelligence through reading and synthesizing current research, hands-on application of artificial neural networks, construction of applications using machine and deep learning algorithms and contrasting current methods with significant, relevant alternatives. Students apply artificial intelligence paradigms such as expert system shells to approach practical, complex problems of particular relevance to their areas of study. Example areas include image and video analysis and classification, medical diagnosis and disease response, cybersecurity, drug discovery, dosage and content management in social media. 3 Lecture hours. Restriction: Junior or higher. Prerequisite: CS 315 and MA 306 or instructor permission. Offered: Spring.

CS 488 No Norwich Equivalent 6 Cr.

CS 4XX Computer Science Elective 4 Cr.

This course is used for transfer when no equivalent for a Norwich course exists.