Northeastern UniversityWebsiteAcademic Catalog
Khoury College of Computer SciencesDepartment Website
BS Degree in Computer Science/Physicssource 1source 2source 3
CS Courses
- Discrete StructuresCS 1800 (4)mathCS 1800: Discrete Structures
Introduces the mathematical structures and methods that form the foundation of computer science. Studies structures such as sets, tuples, sequences, lists, trees, and graphs. Discusses functions, relations, ordering, and equivalence relations. Examines inductive and recursive definitions of structures and functions. Discusses principles of proof such as truth tables, inductive proof, and basic logic. Also covers the counting techniques and arguments needed to estimate the size of sets, the growth of functions, and the space-time complexity of algorithms.
- Fundamentals of Computer Science 1CS 2500 (4)introCS 2500: Fundamentals of Computer Science 1
Introduces the fundamental ideas of computing and the principles of programming. Discusses a systematic approach to word problems, including analytic reading, synthesis, goal setting, planning, plan execution, and testing. Presents several models of computing, starting from nothing more than expression evaluation in the spirit of high school algebra. No prior programming experience is assumed; therefore, suitable for freshman students, majors and nonmajors alike who wish to explore the intellectual ideas in the discipline.
- Fundamentals of Computer Science 2CS 2510 (4)introCS 2510: Fundamentals of Computer Science 2
Continues CS 2500. Examines object-oriented programming and associated algorithms using more complex data structures as the focus. Discusses nested structures and nonlinear structures including hash tables, trees, and graphs. Emphasizes abstraction, encapsulation, inheritance, polymorphism, recursion, and object-oriented design patterns. Applies these ideas to sample applications that illustrate the breadth of computer science.
- Logic and ComputationCS 2800 (4)theoryCS 2800: Logic and Computation
Introduces formal logic and its connections to computer and information science. Offers an opportunity to learn to translate statements about the behavior of computer programs into logical claims and to gain the ability to prove such assertions both by hand and using automated tools. Considers approaches to proving termination, correctness, and safety for programs. Discusses notations used in logic, propositional and first order logic, logical inference, mathematical induction, and structural induction. Introduces the use of logic for modeling the range of artifacts and phenomena that arise in computer and information science.
- Algorithms and DataCS 3000 (4)algsCS 3000: Algorithms and Data
Introduces the basic principles and techniques for the design, analysis, and implementation of efficient algorithms and data representations. Discusses asymptotic analysis and formal methods for establishing the correctness of algorithms. Considers divide-and-conquer algorithms, graph traversal algorithms, and optimization techniques. Introduces information theory and covers the fundamental structures for representing data. Examines flat and hierarchical representations, dynamic data representations, and data compression. Concludes with a discussion of the relationship of the topics in this course to complexity theory and the notion of the hardness of problems.
- Object-Oriented DesignCS 3500 (4)introCS 3500: Object-Oriented Design
Presents a comparative approach to object-oriented programming and design. Discusses the concepts of object, class, meta-class, message, method, inheritance, and genericity. Reviews forms of polymorphism in object-oriented languages. Contrasts the use of inheritance and composition as dual techniques for software reuse: forwarding vs. delegation and subclassing vs. subtyping. Fosters a deeper understanding of the principles of object-oriented programming and design including software components, object-oriented design patterns, and the use of graphical design notations such as UML (unified modeling language). Basic concepts in object-oriented design are illustrated with case studies in application frameworks and by writing programs in one or more object-oriented languages.
- Theory of ComputationCS 3800 (4)theoryCS 3800: Theory of Computation
Introduces the theory behind computers and computing aimed at answering the question, “What are the capabilities and limitations of computers?” Covers automata theory, computability, and complexity. The automata theory portion includes finite automata, regular expressions, nondeterminism, nonregular languages, context-free languages, pushdown automata, and noncontext-free languages. The computability portion includes Turing machines, the Church-Turing thesis, decidable languages, and the Halting theorem. The complexity portion includes big-O and small-o notation, the classes P and NP, the P vs. NP question, and NP-completeness.
- CS CapstoneorArtificial IntelligenceorCS 4100 (4)aiCS 4100: Artificial Intelligence
Introduces the fundamental problems, theories, and algorithms of the artificial intelligence field. Includes heuristic search; knowledge representation using predicate calculus; automated deduction and its applications; planning; and machine learning. Additional topics include game playing; uncertain reasoning and expert systems; natural language processing; logic for common-sense reasoning; ontologies; and multiagent systems.
Game Artificial IntelligenceorCS 4150 (4)aiCS 4150: Game Artificial IntelligenceOffers an overview of classical and modern approaches to artificial intelligence in digital games. Focuses on the creation of believable agents and environments with the goal of providing a fun and engaging experience to a player. Covers player modeling, procedural content generation, behavior trees, interactive narrative, decision-making systems, cognitive modeling, and path planning. Explores different approaches for behavior generation, including learning and rule-based systems. Requires students to complete several individual assignments in these areas to apply the concepts covered in class. Students choose a group final project to explore one aspect of artificial intelligence for games in further depth. Offers students an opportunity to learn team management and communication. Students who do not meet course prerequisites may seek permission of instructor.
Computer GraphicsorCS 4300 (4)graphicsCS 4300: Computer GraphicsCharts a path through every major aspect of computer graphics with varying degrees of emphasis. Discusses hardware issues: size and speed; lines, polygons, and regions; modeling, or objects and their relations; viewing, or what can be seen (visibility and perspective); rendering, or how it looks (properties of surfaces, light, and color); transformations, or moving, placing, distorting, and animating and interaction, or drawing, selecting, and transforming.
CompilersorCS 4410 (4)plsCS 4410: CompilersStudies the construction of compilers and integrates material from earlier courses on programming languages, automata theory, computer architecture, and software design. Examines syntax trees; static semantics; type checking; typical machine architectures and their software structures; code generation; lexical analysis; and parsing techniques. Uses a hands-on approach with a substantial term project.
Web DevelopmentCS 4550 (4)sysCS 4550: Web DevelopmentDiscusses Web development for sites that are dynamic, data driven, and interactive. Focuses on the software development issues of integrating multiple languages, assorted data technologies, and Web interaction. Considers ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL, and Web services. Requires each student to deploy individually designed Web experiments that illustrate the Web technologies and at least one major integrative Web site project. Students may work as a team with the permission of the instructor. Each student or team must also create extensive documentation of their goals, plans, design decisions, accomplishments, and user guidelines. All source files must be open and be automatically served by a sources server.
Physics Capstone + CS ElectivePrinciples of Experimental PhysicsPHYS 5318 (4)sciPHYS 5318: Principles of Experimental PhysicsDesigned to introduce students to the techniques of modern experimental physics. Topics include communication and information physics, signal processing and noise physics, applied relativity physics, detector techniques, semiconductor and superconductor physics, nanoscale microscopy and manipulation, and lasers and quantum optics.
- Software DevelopmentorCS 4500 (4)softengCS 4500: Software Development
Considers software development as a systematic process involving specification, design, documentation, implementation, testing, and maintenance. Examines software process models; methods for software specification; modularity, abstraction, and software reuse; and issues of software quality. Students, possibly working in groups, design, document, implement, test, and modify software projects.
Fundamentals of Software EngineeringCS 4530 (4)softengCS 4530: Fundamentals of Software EngineeringCovers the fundamentals of software engineering, including software development life cycle models (e.g., waterfall, spiral, agile); requirements analysis; user-centered design; software design principles and patterns; testing (functional testing, structural testing, testing strategies); code refactoring and debugging; software architecture and design; and integration and deployment. Includes a course project in which some of the software engineering methods (from requirements analysis to testing) are applied in a team-based setting.
- Two Spring (or two Fall) semesters in full-time industry "Co-op"
Math/Stat Courses
- Calculus 1 for Science and EngineeringMATH 1341 (4)mathMATH 1341: Calculus 1 for Science and Engineering
Covers definition, calculation, and major uses of the derivative, as well as an introduction to integration. Topics include limits; the derivative as a limit; rules for differentiation; and formulas for the derivatives of algebraic, trigonometric, and exponential/logarithmic functions. Also discusses applications of derivatives to motion, density, optimization, linear approximations, and related rates. Topics on integration include the definition of the integral as a limit of sums, antidifferentiation, the fundamental theorem of calculus, and integration by substitution.
- Calculus 2 for Science and EngineeringMATH 1342 (4)mathMATH 1342: Calculus 2 for Science and Engineering
Covers further techniques and applications of integration, infinite series, and introduction to vectors. Topics include integration by parts; numerical integration; improper integrals; separable differential equations; and areas, volumes, and work as integrals. Also discusses convergence of sequences and series of numbers, power series representations and approximations, 3D coordinates, parameterizations, vectors and dot products, tangent and normal vectors, velocity, and acceleration in space. Requires prior completion of MATH 1341 or permission of head mathematics advisor.
- Calculus 3 for Science and EngineeringMATH 2321 (4)mathMATH 2321: Calculus 3 for Science and Engineering
Extends the techniques of calculus to functions of several variables; introduces vector fields and vector calculus in two and three dimensions. Topics include lines and planes, 3D graphing, partial derivatives, the gradient, tangent planes and local linearization, optimization, multiple integrals, line and surface integrals, the divergence theorem, and theorems of Green and Stokes with applications to science and engineering and several computer lab projects. Requires prior completion of MATH 1342 or MATH 1252.
- Probability and StatisticsMATH 3081 (4)mathMATH 3081: Probability and Statistics
Focuses on probability theory. Topics include sample space; conditional probability and independence; discrete and continuous probability distributions for one and for several random variables; expectation; variance; special distributions including binomial, Poisson, and normal distributions; law of large numbers; and central limit theorem. Also introduces basic statistical theory including estimation of parameters, confidence intervals, and hypothesis testing.
Science Courses
- Physics 1PHYS 1161 (4)sciPHYS 1161: Physics 1
Covers calculus-based physics. Offers the first semester of a two-semester integrated lecture and laboratory sequence intended primarily for science students. Covers Newtonian mechanics and fluids. Emphasizes the underlying concepts and principles. Takes applications from a wide variety of fields, such as life sciences and medicine, astro- and planetary physics, and so on. Includes topics such as forces, torque and static equilibrium, one-dimensional and three-dimensional motion, Newton’s laws, dynamics friction, drag, work, energy and power, momentum and collisions, rotational dynamics, oscillations, pressure, fluids, and gravity.
- Physics 2PHYS 1165 (4)sciPHYS 1165: Physics 2
Continues PHYS 1161. Offers the second semester of a two-semester integrated lecture and laboratory sequence intended primarily for science students. Includes topics such as electrostatics; capacitors; resistors and direct-current circuits; magnetism and magnetic induction; RC, LR, and LRC circuits; waves; electromagnetic waves; and fluids.
- Modern PhysicsPHYS 2303 (4)sciPHYS 2303: Modern Physics
Reviews experiments demonstrating the atomic nature of matter, the properties of the electron, the nuclear atom, the wave-particle duality, spin, and the properties of elementary particles. Discusses, mostly on a phenomenological level, such subjects as atomic and nuclear structure, properties of the solid state, and elementary particles. Introduces the special theory of relativity.
- ElectronicsPHYS 2371 (3)sciPHYS 2371: Electronics
Covers the physics underlying computers and our modern electronic world. Focuses on principles of semiconductor devices (diodes, transistors, integrated circuits, LEDs, photovoltaics); analog techniques (amplification, AC circuits, resonance); digital techniques (binary numbers, NANDs, logic gates, and circuits); electronic subsystems (operational amplifiers, magnetoelectronics, optoelectronics); and understanding commercial electronic equipment. Lab experiments are designed to investigate the properties of discrete and integrated devices and use them to design and build circuits.
- Lab for PHYS 2371PHYS 2372 (1)sciPHYS 2372: Lab for PHYS 2371
Accompanies PHYS 2371. Illustrates topics from the lecture course through various hands-on experimental projects. Covers the process of electronics design from a goal-oriented perspective. Students are expected to consider their own electronics design project and build a prototype device that accomplishes a specific purpose.
- Advanced Physics LaboratoryPHYS 3600 (4)sciPHYS 3600: Advanced Physics Laboratory
Introduces research through experiments that go beyond the simple demonstration of basic physical principles found in introductory physics courses. Data are taken to higher precision and the analysis is more in-depth. Experiments focus on lasers, fiber-optic communication, spectroscopy, Faraday rotation, speed of light, semiconductor physics, Hall effect, fuel cells, and Fourier analysis of music and sound. Lab reports are assessed on organization, format, grammar, and style. Offers students an opportunity to significantly improve their abilities in written scientific communication.
- Electricity and Magnetism 1PHYS 3602 (4)sciPHYS 3602: Electricity and Magnetism 1
First course of a two-course sequence in electricity, magnetism, and electromagnetic theory. Covers electrostatics and dielectric materials, magnetostatics and magnetic materials, currents in conductors, induction, displacement currents, computer solutions of EM problems, and Maxwell’s equations.
- Thermodynamics and Statistical MechanicsPHYS 4305 (4)sciPHYS 4305: Thermodynamics and Statistical Mechanics
Focuses on first and second laws of thermodynamics, entropy and equilibrium, thermodynamic potentials, elementary kinetic theory, statistical mechanics, and the statistical interpretation of entropy. Utilizes the principles of quantum mechanics to describe the behavior of thermodynamic/statistically-large systems such as quantum gases.
Other Courses
- oror
- Knowledge in a Digital WorldorIS 1300 (4)impactIS 1300: Knowledge in a Digital World
Examines the impact that information technologies (such as the internet, search engines, blogs, wikis, and smartphones); information processing techniques (such as big data analysis, machine learning, crowdsourcing, and cryptography); and information policies (such as privacy norms and speech restrictions) have on what we know and how much we know, as individuals and as a society. The digital world can enhance our ability to acquire knowledge by providing us with fast and cheap access to huge amounts of information. However, it can also undermine our cognitive abilities and provide us with inaccurate or misleading information. Studies normative frameworks from epistemology and ethics (such as epistemic value theory, the extended mind hypothesis, and moral rights) to evaluate these technologies and policies.
The Law, Ethics, and Policy of Data and Digital TechnologiesorCY 4170 (4)impactCY 4170: The Law, Ethics, and Policy of Data and Digital TechnologiesDescribes the legal and ethical issues associated with collection, use, disclosure, and protection of digital information. Emphasizes legal infrastructure relating to privacy, data ethics, data security, hacking, automation, and intellectual property. Articulates the basic set of rules and rights that are relevant to data practices and protection, evaluates how these rules apply in context, and critically analyzes their efficacy and social impact.
Cyberlaw: Privacy, Ethics, and Digital RightsorororororCY 5240 (4)impactCY 5240: Cyberlaw: Privacy, Ethics, and Digital RightsDescribes the legal and ethical issues associated with information security including access, use, and dissemination. Emphasizes legal infrastructure relating to information assurance, such as the Digital Millenium Copyright Act and Telecommunications Decency Act, and emerging technologies for management of digital rights. Examines the role of information security in various domains such as healthcare, scientific research, and personal communications such as email. Examines criminal activities such as computer fraud and abuse, desktop forgery, embezzlement, child pornography, computer trespass, and computer piracy.
Technology and Human ValuesorPHIL 1145 (4)sciPHIL 1145: Technology and Human ValuesStudies philosophy of technology, as well as ethics and modern technology. Considers the relationship between technology and humanity, the social dimensions of technology, and ethical issues raised by emerging technologies. Discusses emerging technologies such as biotechnology, information technology, nanotechnology, and virtual reality.
Knowledge in a Digital WorldorororPHIL 1300 (4)sciPHIL 1300: Knowledge in a Digital WorldExamines the impact that information technologies (such as the internet, search engines, blogs, wikis, and smartphones); information processing techniques (such as big data analysis, machine learning, crowdsourcing, and cryptography); and information policies (such as privacy norms and speech restrictions) have on what we know and how much we know, as individuals and as a society. The digital world can enhance our ability to acquire knowledge by providing us with fast and cheap access to huge amounts of information. However, it can also undermine our cognitive abilities and provide us with inaccurate or misleading information. Studies normative frameworks from epistemology and ethics (such as epistemic value theory, the extended mind hypothesis, and moral rights) to evaluate these technologies and policies.