Computer Science 100 - Homework 1: Areas of Study in Computer Science

Assigned: Monday, February 5

Due: Monday, February 12 in class

Evaluation:

For this homework exercise only, you may work in groups of up to two people. In addition (again for this exercise only), you may consult any computer science major, any faculty member on campus, or the worldwide web for help. You may not consult with any person off-campus (by, say, posting on a public website.)

This homework asks you to determine what area(s) of computer science are studied in some of the upper-division electives offered at Truman. The areas of computer science that you should use are listed and briefly described below.

Select any five of the following courses from the Truman CS curriculum. Find a description of each course in the current Truman State University catalog (available online from the registrar's office at catalog.truman.edu). Using the course description (plus possible additional help, as outlined above) determine which area of computer science is studied in the course. If the course covers multiple areas of computer science, list the top two areas the course covers. Be sure to justify your selection of each area.

What to turn in: Turn in a printed document (produced by some computer printer) with the five courses you have chosen listed and, for each course, a list of the areas/sub-fields of computer science that it covers, and a justification for why you think that area/sub-field is covered in the course. Keep in mind the grading criteria when preparing your submission. Make sure that all names are at the top of the submission.

Course List:

Sub-fields and areas of computer science

Algorithms and Data Structures: The formal study of problems and their step-by-step solutions. The solutions are known as algorithms. The study of the best ways to represent information for problem-solving purposes.

Artificial Intelligence: The study of computer systems that simulate the use of human intelligence in computer problem solving.

Computer Architecture: The study of the physical components of the computer (circuits, disk drives, CPUs, etc.)

Computer programming: The art and science of translating algorithms into a form that a computer can follow.

Concurrent, Parallel and Distributed Systems: Concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other. Parallel and Distributed Systems are types of concurrent systems.

Databases and Information Management: The study of how to gather, organize, protect, efficiently store and retrieve large amounts of information (including textual, numeric and graphic)

Human-computer interface: The study of the ways people interact with computers; the study of input and output.

Information and Coding Theory: The properties of codes and their use in representing information.

Information Systems: The study of how computer technology is used in an organization.

Networks: The study of collections of communicating computers and the transmission of information between computers.

Programming Language Theory: A branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual features.

Security: The protection of information from unauthorized access, disruption, or modification.

Software Engineering: Software engineering is the study of designing, implementing, and modifying software in order to ensure it is of high quality, affordable, maintainable, and fast to build. It is a systematic approach to software design, involving the application of engineering practices to software.

Theory of Computation: The study of what types of problems are theoretically solvable and theoretically impossible for a computer to solve; theoretical machines (automatons); the study of the difficulty associated with solvable problems.