c# cst_CST407教学大纲-通过.NET学习C#

2023-10-29

c# cst

OREGON INSTITUTE OF TECHNOLOGY

俄勒冈理工学院

Software Engineering Technology

软件工程技术

CST 407 Seminar - C# and the .NET Framework

CST 407研讨会-C#和.NET Framework

Course Syllabus - Fall 2003

课程大纲-2003秋季

Instructor Information:       

讲师信息:       

Name:  Scott Hanselman        Email:  scott -a-t- hanselman.com

姓名: Scott Hanselman电子邮件: scott -at-hanselman.com

Phone:  880-2486       Office Location:  The Ether

电话: 880-2486办公地点:以太

课程表:          (Class Schedule:          )
讲座/实验室:14053星期五6:00p-8:50p波特兰-CC1045(Lecture/Lab:   14053             Friday  6:00p-8:50p                Portland - CC1045      )

Class Web Site:  http://www.computerzen.com/cst407

课堂网站: http : //www.computerzen.com/cst407

Textbook:

教科书:

Required Text:            C# Primer, Stanley Lippman

必填文本:C#Primer,Stanley Lippman

Optional References:         Essential .NET, Don Box and Chris Sells

可选参考:Essential .NET,Do​​n Box和Chris Sells

                                    Programming Pearls, Second Edition, Jon Bentley

编程珍珠,第二版,乔恩·本特利

                                    The Pragmatic Programmer, Andrew Hunt and David Thomas

实用程序员,Andrew Hunt和David Thomas

Software Tools:

软件工具:

Minimal development:

最少的开发:

·         The Windows .NET Framework SDK - Most work will happen at the command-line

·         Windows .NET Framework SDK-大多数工作将在命​​令行进行

·         SharpDevelop - Open Source IDE written in C# w/source

·         SharpDevelop-用C#编写的带有源代码的开源IDE

Minimal web development (there may be small web projects, nothing major)

最少的Web开发(可能有小的Web项目,没什么大不了的)

·         Cassini - Simple ASP.NET Web Server (IIS not needed) w/source

·         Cassini-带有源代码的简单ASP.NET Web服务器(不需要IIS)

·         The ASP.NET Web Matrix

·         ASP.NET Web矩阵

Preferred development

首选发展

·         Visual Studio.NET Academic Edition – Great to have, but we won’t lean on it

·         Visual Studio.NET Academic Edition –很棒,但我们不会依赖它

For homework

作业

·         Lutz Roeder's Reflector - Decompiler

·         卢茨·罗德的反光镜-反编译器

·         NUnit - Testing framework

·         NUnit-测试框架

Philosophy and Prerequisites

哲学与先决条件

This class is a 400 level class and while it may look easy (most syllabi do) I will have high expectations.  C# is a 3rd generation 'C' family language.   This class assumes you've programmed in some language that includes a if-then construct of some kind.  An understanding of Object Oriented design will be important.

这门课是400级的课,虽然看起来很简单(大多数教学大纲都这样),但我会有很高的期望。 C#是第三代“ C”家庭语言。 此类假定您已使用某种语言进行编程,其中包括某种if-then构造。 对面向对象设计的理解将很重要。

For those of you who feel advanced now and think this class may be too easy, I will ratchet up the difficulty after class as far as you'd like.  I will stay as long after class talking tech as you like. 

对于那些现在觉得自己很高级并且认为这堂课太简单了的人,我会在下课后尽可能增加您的难度。 上课后,我会根据您的意愿停留多长时间。

Coding is an art and all art has its associated literature.   I expect you to read as much code as you write.  Every week, bring in a snippet (10-20 lines) of someone else's code that you've found on the web.  Two places to start are www.gotdotnet.com and www.codeproject.com.  Email the cool snippets to me and we'll discuss some of them in the last 30-45 minutes of class. 

编码是一门艺术,所有艺术都有其相关的文献。 我希望您阅读的代码与编写的代码一样多。 每周,输入您在网上找到的别人代码段(10-20行)。 两个起点是www.gotdotnet.comwww.codeproject.com 。 通过电子邮件将很酷的摘要发送给我,我们将在课程的最后30-45分钟内讨论其中的一些摘要。

.NET is very powerful, but it can turn bad programmers into very bad programmers very quickly.

.NET非常强大,但是它可以很快将不良的程序员转变为不良的程序员。

Library Services:

图书馆服务:

OIT Library:  OIT library web site

OIT库: OIT库网站

Homework:

家庭作业:

Homework should be zipped (just code, no bin or obj folders) and sent to my email address before 9AM each Friday.  The subject must contain [CST407] including the brackets.  I'm not kidding here, and this is not a suggestion.  Include '[CST407]' in the subject or the homework goes in the bit bucket and you get a zero grade for that assignment.  Learn to love netiquette.  J

作业应压缩(仅代码,无binobj文件夹),并在每个星期五上午9点之前发送到我的电子邮件地址。 拍摄对象必须包含[CST407],包括括号。 我不是在开玩笑,这不是建议。 在主题中包含“ [CST407]”,否则作业会归于“零头”,则该作业的成绩为零。 学会爱网络礼仪。 Ĵ

We'll be writing Unit Tests for all our homework programs using NUnit 2.x.  Include them with your homework.

我们将使用NUnit 2.x为所有家庭作业程序编写单元测试。 将它们包括在作业中。

Tentative Outline:

暂定大纲:

Week

Date
Topic(s)

Text

HW/Lab Assignment
DUE Date

1

10/3

Course overview, class logistics.

The Gist of .NET

Files and Compiling

Decompiling

Namespaces

Classes

Assemblies

Value Types and Reference Types

Intro to NUnit

Ch1

Visit Class web site.

1. Print syllabus.

2. Purchase book.

3. Write HelloDOTNETWorld.exe without the IDE, compile it, and successfully email the code to me following the guidelines above.

4. Write an NUnit Test for HelloWorld

(4 points - the only freebie)

Next Fri

9:00am

2

10/10

More on deployment

C# keywords

Garbage Collection

Arrays

Strings and Formatting

System.Collections (brief)

Exceptions

Ch1

Read Chapter 1.

1. Create and populate a multidimensional array of value types

2. Spin through the array and pretty print their contents to the console.

3. Write tests

(4 points)

Next Fri

9:00am

3

10/17

Class Design

Constructors

Private/Public

This, static, const, readonly

Delegates

Passing by ref and value

Overloading, function and operator

Casting

Debug/Trace

ConfigFiles

Ch2

Read Chapter 2

1. Create a class Car with and Engine, Windows, Wheels

2. Create behavioral methods on all classes

3. How will you structure your class?  Does the Car contain Wheels?

4. Test it

(4 points)

2 points Extra Credit:

1. Write a C# console app that prints out true or false if a year is a leap year.  Ex: leapyear.exe 1996 outputs 'true'

How many lines of code did it take? Why?

2. Test it

Next Fri

9:00am

4

10/24

OOPapolooza

Class Hierarchies

Abstract

Single Inheritance

New and base

Overriding

Exceptions

Type/typeof

Binding/Activator

Read Chapter 3 and 4

1. Extend your Car and create Planes and Trains. 

2. How does OOP help? How does it Hinder?

3. Test it

(4 points)

1. Dynamically instantiate a class from a Fully Qualified Assembly Name in your app.config file

3. Test it

(4 points)

Next Fri

9:00am

5

10/31

Exploring the System namespace

System.IO

System.Net

System.Data

Threading

Ch5

Study for Midterm

NO HOMEWORK THIS WEEK

Next Fri

9:00am

6

11/7

All XML all the Time

System.Xml

Everything you need to know about Xml in 3 hours. J

Take Midterm (90 minutes)

1. Multiple Choice and Short Answers

(20 points)

Homework:

1. Take a Books Xml file I'll give you and read it into memory

2. Setup arbitrary searching like findbooks.exe 'author = 's*''

3. Do it with XmlTextReader

4. Do it with XmlDocument

5. Do it with XPathNavigator

(4 points)

Write up ~500 words on what the ramifications of moving the software industry to a “Managed“ environment over previous kinds of Software Development.

(4 points)

Next Fri

9:00am

7

11/14

C# applied to WinForms

Homework: TBD

(4 points)

Next Fri

9:00am

8

11/21

C# applied to WebForms

Homework: TBD

(4 points)

NEXT WEEK: THANKSGIVING

Next Fri

9:00am

9

12/5

The CLR

Attributes

Reflection

Inside Serialization

Interop/PInvoke

Homework: Show me the status of your Final! Something better be working by now. ;)

(4 points)

Next Fri

9:00am

10

12/12

TURN IN FINAL

9AM: TURN IN FINAL.  We'll have a formal 'egoless' code review and I'll grade them (anonymously) on the projector and we'll discuss them.

日期
主题)

文本

硬件/实验室分配
截止日期

1个

10/3

课程概述,课堂后勤。

.NET的要点

文件和编译

反编译

命名空间

班级

装配体

值类型和引用类型

NUnit简介

通道1

访问班级网站。

1.打印教学大纲。

2.购买书。

3.在不使用IDE的情况下编写HelloDOTNETWorld.exe,对其进行编译,然后按照上述指南将代码成功通过电子邮件发送给我。

4.为HelloWorld编写一个NUnit测试

(4分-唯一的免费赠品)

下周五

9:00 AM

2

10/10

有关部署的更多信息

C#关键字

垃圾收集

数组

字符串和格式

System.Collections(简要)

例外情况

通道1

阅读第1章。

1.创建并填充值类型的多维数组

2.旋转阵列并将其内容漂亮地打印到控制台。

3.编写测试

(4分)

下周五

9:00 AM

3

10/17

类设计

建设者

私人/公共

静态,常量,只读

代表们

通过引用和值

重载,功能和运算符

铸件

调试/跟踪

配置文件

通道2

阅读第二章

1.使用,引擎,Windows,车轮创建类汽车

2.在所有类上创建行为方法

3.您将如何组织课程? 汽车是否装有车轮?

4.测试

(4分)

2分额外 积分

1.编写一个C#控制台应用程序,如果年份是a年,则输出true或false。 例如:jumpyear.exe 1996输出'true'

它需要多少行代码? 为什么?

2.测试

下周五

9:00 AM

4

10/24

OOPapolooza

类层次结构

抽象

单继承

新和基础

覆写

例外情况

类型/类型

绑定/激活剂

阅读第3章和第4章

1.扩展您的汽车并创建飞机和火车。

2. OOP有什么帮助? 它如何阻碍?

3.测试

(4分)

1.从app.config文件中的完全合格程序集名称动态实例化一个类

3.测试

(4分)

下周五

9:00 AM

5

10/31

探索系统名称空间

系统

系统网

系统数据

穿线

通道5

期中学习

这周没有家庭作业

下周五

9:00 AM

6

11/7

一直都是XML

系统文件

您需要在3小时内了解有关Xml的所有信息。 Ĵ

参加期中考试(90分钟)

1.多项选择和简短答案

(20分)

家庭作业:

1.拿一个我会给您的Books Xml文件并将其读入内存

2.设置任意搜索,例如findbooks.exe'author ='s *'

3.用XmlTextReader完成

4.用XmlDocument做

5.用XPathNavigator来做

(4分)

写出约500个字,以说明在过去的软件开发中,将软件行业转移到“托管”环境所带来的影响。

(4分)

下周五

9:00 AM

7

11/14

C#应用于WinForms

作业:待定

(4分)

下周五

9:00 AM

8

11/21

C#应用于WebForms

作业:待定

(4分)

下周:感恩

下周五

9:00 AM

9

12/5

CLR

属性

反射

内部序列化

互操作/ P调用

作业:告诉我您决赛的状态! 最好现在开始工作。 ;)

(4分)

下周五

9:00 AM

10

12/12

上交最后

上午9点:最后提交。 我们将进行正式的“无人参与”代码审查,并在投影机上对它们进行分级(匿名),然后进行讨论。

Class Scoring:

班级评分:

First, the obvious. 100 Points possible.

首先,显而易见。 100分可能。

A  >=90

A> = 90

B  >=80

B> = 80

C  >=70

C> = 70

D  >=60

D> = 60

F  < 60

F <60

Midterm - 20 points - on 11/7 (in class)

期中-20分-11/7(课堂上)

Final - 40 points - on 12/12 (take home, given 12/5)

决赛-40分-12/12得分(带回家,给出12/5)

Homework - 10 programs @ 4 points each, gives 40 points, one or more a week for ten weeks.

家庭作业-10个课程,每个课程4分,每学分40分,每周一次或多于10周。

Homework programs will be graded on:

作业计划的评分标准如下:

1. Correct use of Basics (foreach, classes, namespaces, BCL libraries)

1.正确使用基础知识(foreach,类,名称空间,BCL库)

2. Appropriate Use of OOP (no gratuitous object hierarchies, please)

2.适当地使用OOP(请没有免费的对象层次结构)

3. Robustness (did you test it?)

3.健壮性(您测试过吗?)

4. Attention to Detail (did you think?)

4.注意细节(您认为吗?)

Extra Credit: Elegance/Flair (my discretion)

额外信用:优雅/天赋(我自行决定)

翻译自: https://www.hanselman.com/blog/the-syllabus-for-cst407-learning-c-with-net

c# cst

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# cst_CST407教学大纲-通过.NET学习C# 的相关文章

  • 向Java类库添加函数

    我使用的 Java 类库在很多方面都不完整 有很多类我认为应该内置其他成员函数 但是 我不确定添加这些成员函数的最佳实践 让我们调用不足的基类A class A public A long arbitrary arguments publi
  • AcceptSocket 超时?

    是否有可能AcceptSocket on a TcpListener具有超时的对象 以便它偶尔被中断 TcpListener server new TcpListener localIP port server Start while sh
  • 应用新设置时如何防止 GraphicsDevice 被丢弃?

    我的游戏窗口允许手动调整大小 这意味着它可以像任何其他普通窗口一样通过拖动其边缘来调整大小 游戏还利用了RenderTarget2D rt2d 在主 Draw 方法中设置主渲染目标 GraphicsDevice SetRenderTarge
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • 从二进制文件读取字节到 long int

    我有两个问题 我有二进制文件的数据 我想使用 read 函数读取前 8 个字节以签署 long int 但我不能 你知道我该怎么做吗 如何直接读取一块数据到字符串中 我可以像所示那样阅读吗 前任 ifstream is is open te
  • 如何在golang中获得两个切片的交集?

    Go 中有没有有效的方法来获取两个切片的交集 我想避免嵌套 for 循环之类的解决方案slice1 string foo bar hello slice2 string foo bar intersection slice1 slice2
  • 如果我重新分配并且新大小为 0,会发生什么情况。这与释放等效吗?

    给出以下代码 int a NULL a calloc 1 sizeof a printf d n a a realloc a 0 printf d n a return 0 它返回 4078904 0 这个 realloc 相当于 free
  • 何时分离或加入 boost 线程?

    我有一个方法 大约每 30 秒触发一次 我需要在一个线程中包含它 我有一个可以从类外调用的方法 像 call Threaded Method 这样的东西会创建一个线程 该线程本身会调用最终的线程方法 这些是 MyClass 的方法 void
  • 禁用实体框架的默认值生成(Code First)

    我数据库中有一个列不能为空 我想将其设置为默认值在数据库中 问题是实体框架似乎自己创建了一个默认值 例如 int gt 0 并且完全忽略了数据库中的默认值约束 有没有办法禁用实体框架的默认值 我发现您可以使用以下属性来装饰您的字段 Data
  • 如何更改 JAX-WS Web 服务的地址位置

    我们目前已经公开了具有以下 URL 的 JAX RPC Web 服务 http xx xx xx xx myservice MYGatewaySoapHttpPort wsdl http xx xx xx xx myservice MYGa
  • 如何在 ASP.NET Core 项目中使用 MStest 测试 Ok() 结果

    我正在使用 MStest 来测试我的控制器 我想测试这个动作 HttpGet Name GetGroups public async Task
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • 如何在 SQLite 中检查数据库是否存在 C#

    我目前正在用 C 编写一个应用程序 并使用 sqlite 作为嵌入式数据库 我的应用程序在启动时创建一个新数据库 但如何让它检查数据库是否存在 如果它确实存在 我如何让它使用它 如果不存在如何创建一个新数据库 这是我到目前为止所拥有的 pr
  • C# 模式匹配

    我对 C 有点陌生 我正在寻找一个字符串匹配模式来执行以下操作 我有一个像这样的字符串 该书将在 唐宁街 11 号接待处 并将由主要医疗保健人员参加 我需要创建一个 span 标签来使用 startIndex 和 length 突出显示一些
  • FragmentMap + ActionBar 选项卡

    我一直在尝试插入一个MapView进入一个ActionBar Tab 但我什至无法解决问题 即使谷歌搜索 这是主要活动 Override public void onCreate Bundle savedInstanceState supe
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I
  • Graphics2D setfont() 严重减慢了 java 应用程序的启动速度

    我正在用java制作一个游戏 它每秒刷新60次 每次执行循环时 我都会使用 g2d 来绘制图像和字符串 如果我这样做的话一切都会很好g2d setFont new Font Arial Font PLAIN 8 和抽绳 这将是正常的 但如果
  • 如何获取运行或段落的高度

    我找到了Run or Paragraph in FlowDocument现在我需要知道HEIGHT of it i e while navigator CompareTo flowDocViewer Document ContentEnd

随机推荐

  • 调制与解调(1)——初认识

    在深入项目前 还需要对调制解调做深入学习 1 基本概念 调制 调制就是使一个信号 如光 高频电磁振荡等 的某些参数 如振幅 频率等 按照另一个欲传输的信号 如声音 图像等 的特点变化的过程 调制是通过改变高频载波的幅度 相位或者频率 使其随
  • 基于VS2019配置opencv4.0

    文章目录 1 前言 2 不说废话 直接上图干净利落 2 1 创建新空白项目 2 2 添加一个主文件 2 3 配置opencv环境 2 4 链接器配置 2 5 将opencv添加到计算机环境中 2 6 文件复制 3 运行测试环境 1 前言 不
  • 安信可SX1278LORA通讯试验

    LoRa 的名字是远距离无线电 Long Range Radio 作为一种线性调频扩频的调制技术 最早由法 国几位年轻人创立的一家创业公司 Cycleo 推出 2012 年 Semtech 收购了这家公司 并将这一调制技术 封装到芯片中 基
  • 3D游戏第八次作业

    3D游戏第八次作业 一 简单粒子制作 按参考资源要求 制作一个粒子系统 参考资源 使用 3 3 节介绍 用代码控制使之在不同场景下效果不一样 1 模拟烟花发射 效果展示 实现 给空对象挂载一个名为moveup的粒子系统模拟烟花发射 Emis
  • java中对象属性可以是另外一个对象或对象的参考

    7 对象的属性可以是另外一个对象或对象的参考 通过这种方法可以迅速构建一个比较大的系统 class Motor Light lights Handle left right KickStart ks Motor lights new Lig
  • 改变MySQL的默认编码

    etc mysql my cnf mysqld character set server utf8 collation server utf8 unicode ci init connect SET collation connection
  • 论文阅读-Exploring Frequency Adversarial Attacks for Face Forgery Detection(探索用于人脸伪造检测的频率对抗性攻击)

    一 论文信息 论文名称 Exploring Frequency Adversarial Attacks for Face Forgery Detection 会议 CVPR 2022 作者团队 二 动机 虽然现有的人脸伪造分类器在检测伪造图
  • Java实现异步的几种方式

    Java实现异步的几种方式 异步编程在对响应时间近乎严苛的今天 受到了越来越多的关注 尤其是在IO密集型业务中 对比传统的同步模式 异步编程可以提高服务器的响应时间和处理业务的能力 从而达到快速给用户响应的效果 代码前置 方法中会直接使用到
  • spring boot引入logback.xml

    logback xml
  • 使用@Value("${xxxx}")注解从配置文件读取值

    使用 Value xxxx 注解从配置文件读取值 记录一下自己学习配置文件读取的方法 假设配置文件为 config properties 1 从配置文件中读取值的用法 Value user username private String u
  • SpringCloud快速入门

    文章目录 1 初识 SpringCloud 1 1 微服务 1 2 简介 2 Eureka 注册中心 2 1 简易模拟一个微服务 2 1 1 搭建EurekaServer 2 1 2 注册到Eureka 2 1 3 从Eureka获取服务
  • golang 将字符串变量中的单引号、双引号和反单引号进行转义

    package main import strconv fmt func main var a string a qwe wer f lopg uiii 随便写的例子 因为字符串变量中的单双引号是我们不能提前知道的 b strconv Qu
  • 企业如何通过CRM系统做好客户管理?

    每一位客户对于企业都是非常宝贵的资源 也是企业赖以生存和发展的基础 做好客户管理和关系维护是企业必备的一种能力 如今 随着信息化的发展 很多企业为了更好的管理客户引进了CRM系统 CRM系统可以帮助企业建立 以客户为中心 的管理方式 将市场
  • 奥特曼系列赛文飞踢是哪个服务器,盘点奥特兄弟最强飞踢技,第一名实至名归你能猜到吗?...

    奥特曼系列较之拳头威力 飞踢这种技能的对比更为奥迷津津乐道 其中最具代表性的无疑是 雷欧飞踢 毕竟有数次杀敌纪录 而提起飞踢的威力对比 雷欧飞踢则不见得一定能傲视群雄 平成系暂且不论 在奥特兄弟中 也不乏能与雷欧飞踢分庭抗礼的飞踢技 力 解
  • 创建数据库(脚本实现)

    创建历史数据库 if object id dbo spr create his db is not null drop procedure dbo spr create his db go create proc dbo spr creat
  • matlab 正弦波 fft,【求助】正弦信号序列fft频谱分析!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就是正弦包含频率是20hz 20 5hz 40hz 采样频率fs是100hz 分析栅栏效应 先是128个点fft 补零到512个点进行fft 再512个点fft 程序是这样的 N1 128 N2
  • innoDB数据收集方式—永久性&非永久性(四十三)

    上篇文章说了连接查询的成本 主要由驱动表的扇出值和被驱动表的查询方法决定 而成本这些都是可以在 cost 表查看的 因为分为server和engine表 server不管理数据成本 里面包含连接管理 查询缓存 sql解码 sql优化 eng
  • 动态类型语言和静态类型语言的区别

    一 概念 动态类型语言 动态类型语言是指在运行期间才去做数据类型检查的语言 也就是说 在用动态类型的语言编程时 永远也不用给任何变量指定数据类型 变量使用之前不需要类型声明 该语言会在你第一次赋值给变量时 在内部将数据类型记录下来 Pyth
  • MySQL · myrocks · 相关tools介绍

    概述 MyRocks提供了丰富的tools 如sst dump mysql ldb等 这些工具对我们的运维和分析问题非常有用 sst dump 可以导出sst中的数据和属性信息 sst dump help sst dump file
  • c# cst_CST407教学大纲-通过.NET学习C#

    c cst OREGON INSTITUTE OF TECHNOLOGY 俄勒冈理工学院 Software Engineering Technology 软件工程技术 CST 407 Seminar C and the NET Framew