一个不合时宜的人开的不合时宜的课

一个不合时宜的人开的不合时宜的课

——我的《面向对象方法与技术》课

北京理工大学计算机学院教师 金旭亮


对高校计算机教育脱离实际的批评由来己久,似乎大学毕业生找不着工作,都是现有教学体制与学校的问题。然而作为一名高校教师,为学生准备了跟上技术前进步伐,直接为就业服务的课程,其实情又是怎么样的呢?

这篇文章的后面,详细列出了我为这门课所准备的教学模块,包容我所开发的相关教学示例的截图。这里头介绍的技术与知识不算陈旧落伍吧?也不是严重脱离实际吧?

让我比较困惑的是,这门在我看来很有用很现实的专业选修课,居然到了难以为继的境界,教务处规定选课不足15人的课将停开,而这门课就位于这条危险线上。我教学水准真的差到这个份上?

其实这门课开不开无所谓,于我并没有什么损失,只是很有些奇怪:为什么现在的学生不愿学软件开发技术?仅因为这门课难和累所以不学?还是觉得成为一名程序员会被人称为“码农“,看不起?

当局者迷,可有高人解惑?


===========================================================================


《面向对象方法与技术》

教学模块列表

说明:以下为本课程可选择之教学模块列表,远超规定的上课学时,可依据实际情况进行剪裁。

模块一:面向对象编程语言与平台

C#和.NET Framework面向对象编程精要

委托构建的技术大厦 

•       委托技术内幕

•       .NET事件内部机理

•       如何自定义事件

•       Lambda表达式

•       扩展方法与LINQ toObject

实例:构建文件监控系统

(1)使用FileSystem组件监控指定文件夹

(2)向指定文件夹上传文本文件,程序自动地将其内容加入到数据库中


插件系统开发

•       程序集内部结构

•       反射技术基础

•       实例分析:如何基于反射直接构建插件系统

•       基于MEF框架开发插件式系统

(1)桌面WPF应用的插件


(2)ASP.NET MVC4的插件系统

 

开发高性能软件系统

•       多线程开发基础

•       基于委托的异步调用

•       线程同步方法

•       拥有UI界面的多线程应用

•       NET 4.0并行计算组件

•       IIS与ASP.NET Web应用的线程模型

实例:

大文件多线程查找


Android开发技术基础

Android开发平台概述

Activity编程基础

界面布局与常见界面元素

多线程

文件与数据存取

网络功能

模块二:面向对象理论与实践指导

面向对象的软件开发过程

•       引例:

解决困惑:为何在信息系统开发中要使用面向对象方法?

•       明确一些开发术语,具备必要的背景理论知识:

(1)何谓OOA、OOD、OOP?

(2)采用面向对象方法开发软件的整个开发过程是什么样的?

重构理论与实践   

•       什么是好的代码,什么是差的代码?

•       如何使用重构提升代码质量?

(1)重构的基本原则

(2)重构的基本方法

(3)使用Visual Studio提供的重构工具进行重构实践

动手实践        

•使用Code Review发现缺陷,进行重构

(1)典型问题代码Code Review

(2)讨论如何重构这些差的代码

测试驱动开发  

•       何谓单元测试?

•       何谓数据驱动的测试

•       测试驱动开发是怎样进行的?

动手实践        

•       学会使用VisualStudio编写单元测试

•       学会使用VisualStudio编写数据驱动的测试

版本管理工具

•       分布式版本管理系统Git简介,使用GitHub

•       使用MicrosoftTeam Foundation Server管理C#和Java项目

设计模式及其应用     

•       什么是设计模式?

•       典型的设计模式介绍

Factory、Singleton、Unit Of Work、Repository……

实例分析

一个工具软件的演化过程


(1)数据结构与算法的面向对象实现

(2)用户体验友好性的考虑

(3)实施组件化

(4)在Web中重用组件

(5)移植到手机中:

 

模块三:数据的呈现与处理

ADO.NET基础
ORM框架EntityFramework 5/6使用速成

(1)EF支持的几种开发方式

(2)使用EF完成CRUD

(3)处理并发冲突

(4)绕开EF,直接向数据库发送命令

(5)在数据存取层中使用EF

•       数据绑定

实例分析


(1)算法及数据结构

(2)技术选型

(3)组件化分割

(4)分层的支持演化的架构

(6)使用TFS和GIT进行版本管理


模块四 经典网络应用开发

使用Socket开发经典网络应用

网络编程中的IP地址

检测网络连通性

Socket初步

Socket开发中的TCP消息缓冲区

UDP编程

Socket实例分析

 (1)网络文件服务器


 (2)基于UDP开发的网络幻灯片


 

集成Android构建短群发服务器

手机端:

PC端:


模块五 分布式开发技术

基于WCF开发分布式软件系统

WCF概述

提供与访问WCF服务

异常处理

并发与实例管理

数据协定

消息交换模式

会话与状态保存

数据传播方式与流

事务处理

实例:

 (1)基于WCF流模式构建的文件服务器

WPF桌面客户端


基于NServiceBus构建服务总线

MSMQ基础

基于NServiceBus开发单向、双向、发布/订阅的分布式应用

模块六 Web应用开发技术

Web应用开发技术基础  

•       开发ASP.NET MVC应用必须了解的HTTP协议知识:

HTTP数据包格式:Header与Body

HTTP请求与响应格式

HTTP状态码

MIME与数据编码

HTTP认证流程

•       Web前端网页设计

新加的HTML5标签,CSS页面设计基本原理

•       学会使用浏览器所提供的开发者工具

•       快速掌握JavaScript编程精华

函数、对象、原型、闭包

•       常用JavaScript库:

jQuery、jQuery Validation、knockoutjs等

ASP.NET MVC基础

•       认识ASP.NET MVC

•       ASP.NET MVC技术框架构成

•       了解VisualStudio生成的MVC项目结构

•       信息的传送方式

•       视图编写

•       URL与路由

•       异常处理

•       数据验证

•       分部视图、ChildAction和Area

•       权限管理

(1)理解ASP.NET MVC的身份验证与授权机制

(2)如何定制ASP.NET MVC身份验证与授权机制的底层组件

•       ASP.NET MVC的Bundle机制

•       使用jQuery实现AJAX

•       使用缓存

构建移动互联应用

使用Web Api构建RESTful服务

使用jQuery Mobile构建支持手机浏览器的HTML5网页

实例:手机、PC图片共享网站

使用手机上传图片,集成Android本地应用与Web页面,与PC用户共享图片资源

 

模块七 软件架构设计

架构设计模式与原则
Dependency和IoC
数据存取层设计   

•       在独立的类库项目中封装数据存取层

•       设计独立于底层数据库类型的数据存取层

•       如何使用EF高效地实现CRUD

•       在数据存取层开发中进行单元测试

业务逻辑层设计   

•       如何隔离底层数据库变化对整个应用的影响

•       如何应对多变的业务处理逻辑

实例展示     

•       使用插件动态修改业务逻辑

将新的业务逻辑封装为插件

Web应用监控插件文件夹,当发现有新插件加入时,自动使用MEF装入插件。

服务层设计

•       为什么要加入服务层

•       多种服务层对外接口:

本应用内部使用的接口

与外部系统进行数据交换的接口

供手机等智能移动设备应用访问的接口

真实案例分析

“京东商城”电子商务网站的OOAD分析与设计

 

  • 42
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 76
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值