2024-2025课程目录

请注意:此处显示的信息是截至2025年4月18日星期五的最新信息,但赢博体育官方规划应使用官方课程目录。

计算机科学

答:Sivasamy
教授 k . Krebsbach(休假期I)
副教授 j·格雷格
助理教授 答:Ackles(计算机科学助理教授)查克拉博蒂

计算机科学结合了经验方面(涉及实现特定算法)和理论方面(涉及使用赢博体育数学方法分析抽象过程)。这门学科的两个方面都有助于理解什么问题可以用计算机解决,什么方法是最佳的。

今天,计算服务于学术研究的重要性不亚于商业企业。此外,在文科和理科的背景下,有纪律地接触计算机科学,可以培养学生在分析、逻辑和表达方面的清晰和精确。

校园里有丰富的计算机设施,为学生提供了使用赢博体育主要操作系统和编程语言的机会。


计算机科学专业的必修课

计算机科学专业培养学生在独立项目背景下的独立学习能力:建立一个适当范围的项目;识别适当的方法和解决问题的策略,包括适用于项目的适当抽象层次,以设计和实现满足项目需求的软件;并使用适合计算机科学学科的方法将项目工作的结果清楚地传达给其他人。

计算机科学专业要求:

  1. 以下数学课程:
    1. 数学140微积分
    2. 数学155多变量微积分
    3. 数学230离散数学
  2. 以下计算机科学课程:
    1. CMSC 150 计算机科学概论
    2. CMSC 250 中级编程概念
    3. CMSC 270 数据结构概论
    4. CMSC 510 数据结构和算法分析
  3. 下列课程之一:
    1. CMSC 205 Data-Scientific编程
    2. CMSC 208 机器学习
  4. 三门额外的六单元CMSC课程,编号为400或以上,不包括辅导,指导学习和任何原因的独立学习课程。
  5. 以下是大四的课程:
    1. CMSC 698 高级项目或CMSC 699计算机科学独立学习(6个单元),如果不提供CMSC 698
    2. CMSC 600 高级研讨会(3)单位

辅修计算机科学必修课程

  1. 以下数学课程:
    1. 数学140微积分
  2. 以下计算机科学课程:
    1. CMSC 150 计算机科学概论
    2. CMSC 250 中级编程概念
    3. CMSC 270 数据结构概论
  3. 一门额外的六单元CMSC课程,编号200或以上
  4. 一门额外的六单元CMSC课程,编号为400或以上

计算机科学教师资格证(4-12年级)

计算机科学专业的学生可以申请证书,在中学阶段教授计算机科学。学生可以通过完成适当的辅修课程在第二领域添加背书。计划申请教师资格认证的学生应查看目录中教育部分的要求,并与教师教育主任会面,最好是在大二结束之前。


教程

辅导课是加强常规课程的机会,而不是复制它们。为了达到这一目的而保留辅导课,通常开设的课程不提供辅导课或指导学习,而且系里通常不允许为满足毕业的主要或次要要求而开设辅导课。


放置

  • 在大学理事会举办的计算机科学A考试中获得4分或5分,可以获得大学先修课程和6个劳伦斯学分(CMSC 150)。有关细节和适当的位置,请咨询部门。
  • 在大学理事会举办的计算机科学原理考试中获得4或5分,可以获得6个学分的劳伦斯学分(但通常没有大学先修课程)。

具有计算机科学方面的高级经验

计算机科学专业的学生在大四的时候可以在秋季学期的高级项目课程(CMSC 698)中完成一个独立的项目,如果没有提供高级项目课程,则可以在6个单元的独立学习中完成一个项目。他们在冬季学期的高级研讨会(CMSC 600, 3个单元)上展示他们的项目结果。该项目必须由系里的一名教员批准和监督。学生应该在大四前的春天咨询系里的老师,以便为他们的大四经历做计划。



课程-计算机科学

CMSC 106: Web客户端编程

介绍万维网的一些基础技术,重点是客户端编程。所涵盖的主题包括HTML、CSS和JavaScript的介绍。本课程适合没有编程经验的学生。
单位: 6

CMSC 140: Python编程入门

为非专业或其他对建立基本编程技能感兴趣的学生提供的计算机编程入门。主题包括基本的编程结构,如决策语句、迭代和函数。学生将在本学期完成一些编程作业,最终形成一个期末项目。Python语言的指令。
单位: 6

CMSC 150: 计算机科学概论

为潜在的数学/计算机科学专业学生和其他对计算机有浓厚兴趣的学生介绍计算机编程。主题包括基本的编程结构,算法的设计和实现,以及面向对象的编程。Java语言的入门指导。
单位: 6

CMSC 191: 计算机科学定向学习

定向学习遵循主要由教师设定的教学大纲,以满足单个学生或一小群学生的需求或兴趣。定向学习的主要目标是获取知识或技能,而不是研究或创造性工作。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 195: 计算机科学实习

实习的学术部分包括与实习内容相关的阅读,与教师主管的讨论,以及一份适合本学科的书面报告。课程成绩以这些学术工作为基础。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表

CMSC 205: Data-Scientific编程

编程入门,强调从数据中学习以获得有用的见解。主题集中在R语言的基本编程概念和必要的工具来处理,分析和解释数据。本课程将以研讨会形式授课,学生将完成常规作业和期末项目,提供动手编程/分析经验。先决条件:一个先前的课程数学,统计,或CMSC课程,或BIOL 170,或BIOL 280,或教师的同意
单位: 6
也被列为统计205
先决条件: 一个先前的课程数学,统计,或CMSC课程,或BIOL 170,或BIOL 280,或教师的同意

CMSC 208: 统计机器学习

概述用于发现结构模式和使用当今世界流行的复杂数据集进行预测的技术。将探讨分类、聚类和回归等机器学习的核心任务,以及训练模型和评估预测的方法。本课程将以工作坊形式讲授。作业将涉及统计软件的使用。先决条件:CMSC 150,或CMSC 205,或CMSC 210,或教师的同意
单位: 6
也被列为语言学208,统计学208
先决条件: CMSC 150,或CMSC 205,或CMSC 210,或教师的同意

CMSC 210: 科学程序设计概论

计算机程序设计导论,强调数值在数学和科学中的赢博体育。主题包括Python语言的基本编程概念,数值算法的设计和实现,以及符号计算的介绍。先决条件:一个学期的微积分(无论是数学140或数学120),或教师的同意
单位: 6
先决条件: 一个学期的微积分(数学140或数学120),或教师的同意

CMSC 250: 中级编程概念

学习Java语言中更高级的编程技术。主题包括图形用户界面、异常处理、多线程、网络、数据库和web赢博体育程序。先决条件:数学140和C-或更好的CMSC 150
单位: 6
先决条件: 数学140和C-或更好的CMSC 150

CMSC 270: 数据结构概论

高级程序设计的研究和数据结构的介绍。主题集中于设计和实现标准数据结构(如列表、树和图)及其相关算法所需的编程技能。其他主题包括递归、算法分析和c++语言中面向对象编程的高级方面。先决条件:C-或更好的CMSC 250
单位: 6
先决条件: CMSC 250 C-或更高

CMSC 390: 计算机科学导师制研究

先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 391: 计算机科学定向学习

定向学习遵循主要由教师设定的教学大纲,以满足单个学生或一小群学生的需求或兴趣。定向学习的主要目标是获取知识或技能,而不是研究或创造性工作。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 395: 计算机科学实习

实习的学术部分包括与实习内容相关的阅读,与教师主管的讨论,以及一份适合本学科的书面报告。课程成绩以这些学术工作为基础。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表

CMSC 399: 计算机科学独立学习

先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 405: 高级数据计算

本课程以CMSC/STAT 205为基础,深入探讨R语言中的统计计算。课程内容可能包括高效编程技术、并行化、统计算法、高级数据可视化和R软件包的创建。统计软件将在本课程中广泛使用。本课程将以互动实验的形式进行。会有定期的作业和一个项目。先决条件:CMSC 205
单位: 6
也被列为统计405
先决条件: CMSC 205

CMSC 406: Web开发

介绍客户端和服务器端web开发与HTML, CSS和JavaScript。涉及的主题包括客户端和服务器端JavaScript框架的使用。学生将在本学期完成一些小项目。先决条件:CMSC 270
单位: 6
先决条件: CMSC 270

CMSC 410: 系统分析与设计

介绍以计算机程序形式实现的系统分析和建模技术。主题包括结构化和面向对象系统的建模方法的调查和系统开发的案例研究。分析与设计方法在数据库设计和分布式系统设计中的赢博体育。先决条件:CMSC 250
单位: 6
先决条件: CMSC 250

CMSC 420: 计算机图形学

计算机图形学的基本原理及其在可视化各种科学现象中的赢博体育。主题包括图形原语,二维和三维转换,三维观看技术,样条曲线,表面补丁,隐藏线算法,光线追踪,辐射,纹理映射和分形。先决条件:数学155和CMSC 270
单位: 6
先决条件: 数学155和CMSC 270

CMSC 435: 计算机组织与体系结构

从硬件/软件界面看计算机的结构和功能。硬件主题包括基本数字逻辑、数据存储设备、数据流路径和中央处理器组织,特别强调并行性。相应的软件主题包括数据表示和操作、指令集、寻址技术和程序控制机制。先决条件:CMSC 250和CMSC 270
单位: 6
先决条件: CMSC 250和CMSC 270

CMSC 445: 移动赢博体育开发

介绍现代赢博体育程序开发框架的移动赢博体育程序开发。所涉及的框架可能包括Swift/iOS, Kotlin/Android或其他类似的框架。涵盖的主题将包括移动赢博体育程序的用户界面和后端服务的使用。学生将在本学期完成一系列赢博体育程序开发项目。先决条件:CMSC 270
单位: 6
先决条件: CMSC 270

CMSC 455: 后端编程

为现代web和移动赢博体育程序构建服务器端后端软件的工具和技术。所涵盖的主题将包括使用SQL和NoSQL数据库以及构建后端赢博体育程序的框架。本课程将以传统的讲座形式进行,并附有定期的编程作业。先决条件:CMSC 250
单位: 6
先决条件: CMSC 250

CMSC 460: 编程语言

对程序设计语言的设计和实现问题的检查。学生将首先熟练掌握函数式编程范式(使用Scheme),然后用Scheme设计和实现一种全新编程语言的解释器。先决条件:CMSC 250和CMSC 270
单位: 6
先决条件: CMSC 250和CMSC 270

CMSC 470: 人工智能

详细研究了人工智能的基本概念:搜索、知识表示和自动规划。具体的主题包括不知情和启发式搜索技术,基于逻辑的知识表示,自动定理证明,逻辑编程(Prolog),动作表示,手段-目的分析,回归和部分顺序规划,以及使用图的可达性分析。先决条件:CMSC 250和CMSC 270
单位: 6
先决条件: CMSC 250和CMSC 270

CMSC 480: 系统编程

计算机操作系统的一些基本方面及其对软件性能的影响的调查。主题包括进程和内存管理、系统级输入/输出、并发和并行编程。先决条件:CMSC 270
单位: 6
先决条件: CMSC 270

CMSC 490: 神经网络

神经网络的现代赢博体育和用于实现它们的编程工具包的调查。调查的赢博体育将包括图像识别、自然语言处理和机器学习赢博体育。学生将使用现代神经网络构建工具包完成编程项目。课程结构为传统的讲座课程,并附有编程作业。先决条件:CMSC 270
单位: 6
先决条件: CMSC 270

CMSC 500: 计算机科学专题

最新体育赛事资讯、实时赔率分析及在线投注平台探索先进的计算技术,如人工生命、约束逻辑、延续传递、惰性评估、生产系统和机器人编程,仅举几例。任何学期的主题选择将根据学生和教师的兴趣而有所不同。
单位: 6
先决条件: CMSC 270

CMSC 510: 数据结构和算法分析

先进的数据结构和操作这些结构的算法的时间和空间效率。主题包括算法的正确性证明、递归、动态规划、优化树结构、并集查找问题、图、寻路算法和字符串搜索算法。先决条件:数学230,和C-或更好的CMSC 270
单位: 6
先决条件: 数学230,和C-或更好的CMSC 270

CMSC 515: 计算理论

对抽象程序设计的研究,使人们了解计算机器的精确性质和局限性。主题包括通用计算机器,如图灵机,可确定和不可确定的谓词,规则和下推自动机,以及规则和上下文无关的语法。先决条件:CMSC 150和数学230
单位: 6
先决条件: CMSC 150和数学230

CMSC 590: 计算机科学导师制研究

在导师的指导下安排和进行的高级学习。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 591: 计算机科学定向学习

定向学习遵循主要由教师设定的教学大纲,以满足单个学生或一小群学生的需求或兴趣。定向学习的主要目标是获取知识或技能,而不是研究或创造性工作。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 595: 计算机科学实习

实习的学术部分包括与实习内容相关的阅读,与教师主管的讨论,以及一份适合本学科的书面报告。课程成绩以这些学术工作为基础。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表

CMSC 599: 计算机科学独立学习

先进的研究。考虑荣誉项目的学生应该注册这门课程,学习一个或多个学期。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 600: 计算机科学高级研讨会

本课程旨在为数学-计算机科学专业的学生提供一个顶点体验,为高年级学生提供一个论坛,正式展示他们所要求的独立研究项目的结果。我们也邀请CMSC的未成年学生和其他正在做高级计算机项目的学生在研讨会上展示他们的研究成果。
单位: 3

CMSC 690: 计算机科学导师制研究

在导师的指导下安排和进行的高级学习。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 691: 计算机科学定向学习

定向学习遵循主要由教师设定的教学大纲,以满足单个学生或一小群学生的需求或兴趣。定向学习的主要目标是获取知识或技能,而不是研究或创造性工作。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。

CMSC 695: 计算机科学实习

实习的学术部分包括与实习内容相关的阅读,与教师主管的讨论,以及一份适合本学科的书面报告。课程成绩以这些学术工作为基础。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表

CMSC 698: 计算机科学高级项目

设计为一个包容性的替代单独安排,要求独立研究(CMSC 699)。即将毕业的学生将展示他们自主设计的高级项目的提案、进度报告和初步结果,并由同龄人进行评估,同时了解彼此在计算机科学领域的顶尖项目。先决条件:需要教练批准
单位: 6
先决条件: 需要教练批准

CMSC 699: 计算机科学独立学习

先进的研究。考虑荣誉项目的学生应该注册这门课程,学习一个或多个学期。先决条件:注册学生必须在指导教师的咨询下完成学生发起课程表格。
单位: 1 ~ 98
先决条件: 注册学生必须在指导老师的咨询下填写学生发起课程表。