what cs course teaches unit testing

by Willa Volkman 10 min read

What are the topics of the TCS seminar series?

Seminar series in theoretical computer science. Topics include algorithms, complexity theory, and related areas of TCS. Speakers will be a mix of internal and external researchers, mostly presenting recently published research papers.

What is a computer science workshop?

Computer Science Workshop provides a student with an opportunity to apply theory and concepts of computer science to a significant project of mutual interest to the student and a Computer Science faculty member. Permission to enroll in CSW is granted by the faculty sponsor after his/her approval of a project proposal from the student. Interested students are advised to consult with Computer Science faculty members before preparing a Computer Science Workshop project proposal.

What is guided study?

Individual, guided study for undergraduate students under the direction of a faculty member in the department. The program of study, including the credit to be assigned, must be worked out in advance between the student and the faculty member involved.

What is the course on processing human language?

This course is an in-depth overview of techniques for processing human language. How should linguistic structure and meaning be represented? What algorithms can recover them from text? And crucially, how can we build statistical models to choose among the many legal answers? The course covers methods for trees (parsing and semantic interpretation), sequences (finite-state transduction such as morphology), and words (sense and phrase induction), with applications to practical engineering tasks such as information retrieval and extraction, text classification, part-of-speech tagging, speech recognition and machine translation. There are a number of structured but challenging programming assignments. [Applications] (www.cs.jhu.edu/~jason/465)

When did the CS course area designators change?

New Area Designators - CS course area designators are changed effective July 2019. Previously there were 3 designations - Analysis, Systems, Applications - and these still appear in the course descriptions below for grandfathering purposes. Going forward there are 5 areas and many courses have been reclassified. These areas will be implemented as POS (program of study) tags in SIS and are listed below each course number in the listings table. There are also 2 extra tags for undergraduates. Here are the new areas and tags:

What is a programming course?

This course introduces fundamental programming concepts and techniques, and is intended for all who plan to develop computational artifacts or intelligently deploy computational tools in their studies and careers. Topics covered include the design and implementation of algorithms using variables, control structures, arrays, functions, files, testing, debugging, and structured program design. Elements of object-oriented programming, algorithmic efficiency and data visualization are also introduced. Students deploy programming to develop working solutions that address problems in engineering, science and other areas of contemporary interest that vary from section to section. Course homework involves significant programming. Attendance and participation in class sessions are expected.

What is the prereq for AP CS?

Prereq: 500.132/133/134 OR (C+/S*/S** or better grade in 500.112/113/114) or AP CS or equivalent.

What is a ROS course?

This course surveys the development of robotic systems for navigating in an environment from an algorithmic perspective. It will cover basic kinematics, configuration space concepts, motion planning, and localization and mapping. It will describe these concepts in the context of the ROS software system, and will present examples relevant to mobile platforms, manipulation, robotics surgery, and human-machine systems. [Analysis]

What is a computer science workshop?

Computer Science Workshop provides a student with an opportunity to apply theory and concepts of computer science to a significant project of mutual interest to the student and a Computer Science faculty member. Permission to enroll in CSW is granted by the faculty sponsor after his/her approval of a project proposal from the student. Interested students are advised to consult with Computer Science faculty members before preparing a Computer Science Workshop project proposal. Permission of faculty sponsor is required.

What are the topics covered in the ICMP course?

Topics covered will include application layer protocols (e.g. HTTP, FTP, SMTP), transport layer protocols (UDP, TCP), network layer protocols (e.g. IP, ICMP), link layer protocols (e.g. Ethernet) and wireless protocols (e.g. IEEE 802.11). The course will also cover routing protocols such as link state and distance vector, multicast routing, and path vector protocols (e.g. BGP). The class will examine security issues such as firewalls and denial of service attacks. We will also study DNS, NAT, Web caching and CDNs, peer to peer, and protocol tunneling. Finally, we will explore security protocols (e.g. TLS, SSH, IPsec), as well as some basic cryptography necessary to understand these. Grading will be based on hands-on programming assignments, homeworks and two exams. [Systems] Prerequisites: EN.601.226 and EN.601.229 or permission. Students can only receive credit for one of 601.414/614.

How long are SIS courses?

Courses without end times are presumed to meet for 50 minute periods. Final room assignments will be available on the Registrar's website in January. Changes to the original SIS-posted schedule are noted in red.

Getting jUnit

jUnit is available as a single Java archive (jar) file which contains everything you need to both define and execute tests. The jUnit jar is included with Eclipse's Java Development Tools, or can be downloaded from the project's download page (hosted from the github account of its creator Kent Beck).

jUnit Basics

The concept of annotations may be new to some so we'll digress for a moment to describe them. Annotations are a facility Java provides that allow metadata to be added to the compilation output of a class. This metadata is then accessible within the virtual machine as part of the class.

Running jUnit

There are two common ways to perform testing using jUnit: from the command line and within Eclipse.

Test Fixtures

Often when testing you'll need to do the same basic set-up or tear-down activities for several tests. jUnit provides an easy way to aggregate tests and handle the set-up and tear-down activities in separate methods that get called before and after running each test.

Coverage

Coverage is a metric of how much of a program's source code is exercised by a given test suite. There are many different types of code coverage, but we'll discuss three of the most popular coverage notions here:

Unit Tests

By the end of this course, you’ll be able to manipulate files and processes on your computer’s operating system. You’ll also have learned about regular expressions -- a very powerful tool for processing text files -- and you’ll get practice using the Linux command line on a virtual machine.

Skills You'll Learn

Setting up your Development Environment, Regular Expression (REGEX), Testing in Python, Automating System Administration Tasks with Python, Bash Scripting

image