27 courses with the subject CMSC, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CMSC 103Overview of Computer Science Credits: 33
Breadth-first overview of computer science introducing students to a wide range of topics, including algorithms, hardware design, computer organization, system software, language models, programming, compilation, theory of computation, artificial intelligence, or social issues involving computing.
Studies structured algorithm design, developing algorithmic solutions to problems, the Python programming language, and SQL. Students will learn how to write programs in Python to solve various problems. Additionally, students will learn the basics of SQL and how to use it to aid in managing data. The course is not available to computer science (B.S.) for major credit.
An introduction to computer programming from an object-oriented perspective. Students will be introduced to the basic concepts of computer programming. Topics include: fundamental programming techniques including algorithm design, documentation, style, and debugging; fundamental program constructs including simple data types, and control structures; fundamental object oriented techniques including classes, abstraction, polymorphism, inheritance, and encapsulation; and fundamental computer science principles.
Students will reinforce their proficiency with core programming techniques by developing more challenging programs than in CS1. Students will apply new techniques such as pointers, structures and unions to create advanced programs and solutions. Students will also need to improve their solutions to enhance efficiency and soundness. Topics include intermediate programming techniques; using advanced data types including multi-dimensional arrays, queues, stacks, linked lists, recursion , sorting and searching algorithms.
CMSC 310Design and Analysis of Algorithms Credits: 44
Examines various techniques for designing algorithms and analyzing their efficiencies, and examines and compares their efficiency of execution. Studies the theoretical foundations for analysis of algorithms and the ramifications of design strategies on efficiency.
CMSC 111 or ENGR 120 with minimum grade of C and MATH 225 with minimum grade of C.
CMSC 350Introduction to Computer Graphics Credits: 44
Provides a non-mathematical introduction to the basic concepts and techniques of computer graphics. Topics include real-world vs. synthetic image creation; graphics primitives; interaction and animation; I/O hardware environment; 3-D modeling and viewing; color, light, and shading; segments; textures; realistic effects. A typical graphics API (e.g., OpenGL) is used to create computer-generated images.
This course will look at the key concepts needed to build 2D and 3D video games using an existing game engine. The course will look at asset management, animation, collision detection and physics, and managing user input. Additionally, It will look at some key design patterns related to game programming.
Requires junior standing or permission of instructor.
CMSC 399Independent Study in Computer Science Credits: 33
Independent study affords students the opportunity to engage in independent study related to their major field, a supporting area, or specialized interest.
We are living in data-intensive world. Efficiently extracting, interpreting, and learning from very large datasets requires efficient and scalable algorithms as well as new data management technologies. Machine learning techniques and high performance computing make the efficient analysis of large volumes of data. In this course we explore big dataset analysis techniques and apply it to the distributed. This course is highly interactive. Students are expected to make use of technologies to design highly scalable systems that can process and analyze Big Data for a variety of scientific, social, and environmental challenges.
This introductory course gives an overview of machine learning. This is a wide ranging field including topics such as: classification, linear regression, Principal Component Analysis (PCA), neural networks, bagging and boosting, support vector machines, hidden Markov models, Bayesian networks, Q-learning, reinforcement learning.
(One course from: MATH 117 , MATH 217 , or MATH 375 ) and CMSC 310 Graduate Credit: This course is not available for graduate credit.
CMSC 410Theoretical Foundations of Computer Science Credits: 33
Topics include finite automata, regular languages, regular expressions, and regular grammars; pushdown automata and context-free languages; Turing machines; Church-Turing Thesis; the Halting Problem; undecidability; classes of languages, including the Chomsky hierarchy and the classes P, NP, and NP-Complete. Proof techniques for showing language (non)membership in a class.
CMSC 310 with a C or better. Graduate Credit: This course is not available for graduate credit.
CMSC 431Computer Networks Credits: 44
Studies protocol suites, emphasizing the TCP/IP 4-layer model. Topics included are network addresses, sub netting, client/server network programming via the sockets API, network utilities, architecture of packets, routing, fragmentation, connection and termination, connection-less applications, data flow, and an examination of necessary protocols at the link layer, particularly Ethernet. Other topics may include FDDI, wireless, ATM, congestion control, and network security.
CMPE 220 or SWEN 200 with minimum grade of C or better. Graduate Credit: This course is available for graduate credit.
CMSC 462Artificial Intelligence Credits: 44
Overview of artificial intelligence. Emphasis on basic tools of AI, search and knowledge representation, and their application to a variety of AI problems. Search methods include depth-first, breadth-first, and AI algorithms; knowledge representation schemes include propositional and predicate logics, semantic nets and frames, and scripts. Planning using a STRIPS-like planner will also be addressed. Areas that may be addressed include natural language processing, computer vision, robotics, expert systems, and machine learning.
SWEN 200 with minimum grade of C Graduate Credit: This course is available for graduate credit.
CMSC 471Database Management Systems Credits: 33
Detailed examination of theory and practical issues underlying the design, development, and use of a DBMS. Topics include characteristics of a well-designed database; high-level representation of an application using ER modeling; functional dependency theory, normalization, and their application toward a well-designed database; abstract query languages; query languages; concurrency; integrity; security. Advanced topics may be included (e.g., distributed databases; object-oriented databases). Theory to practice is applied in a number of projects involving the design, creation, and use of a database.
Students will learn basic research strategies including conducting literature reviews, designing experiments, defining hypotheses, and writing proposals. Topics include finding and evaluating sources of information, defining topics, developing and supporting hypotheses, and acceptable research and experimental practices. Graduate students are not permitted to take this course.
MATH 117 or MATH 217 or MATH 375 Graduate Credit: This course is not available for graduate credit.
CMSC 499Senior Research and Development Credits: 33
Students will independently, but under the direction of the instructor, execute the proposal developed in CMSC 498 . Students will conduct the experiments outlined in their testing / implementation plan. Students will then analyze the results and determine if their hypothesis was supported or not. The goal is to gain experience with a formal development process and understand how the scientific method, mathematical reasoning, logic, and algorithmic thinking will generate concrete answers to problems.