软件工程第一周作业(陆遥)

一、个人情况介绍

(一)经历

       本人本科专业为非计算机相关专业,有过计算机基础理论(如微机原理)和编程语言(如C语言程序设计)的相关课程学习经历,没有软件开发方面的工作经历。曾经做过最复杂的软件作业是“学生成绩管理系统”。

(二)认识

       因为计算机是我喜欢的领域,所以选择了跨专业(本科专业为测控技术与仪器)报考。由于缺乏相关课程的学习和实践,计算机并不是我擅长的领域,甚至显得基础薄弱。

(三)规划

       本人为非全日制研究生,目前在单位从事的工作与计算机操作有关,与软件开发无关,未来很长一段时间很可能都要从事当前的工作。技术道路方面,计划打牢基础,熟练掌握两种编程语言;职业道路方面,计划长期在BuDui工作,把手头的工作专研得更深入、更透彻;社会道路方面,没有具体的规划。

(四)目标

       学习软件工程这门课是为了给开发软件提供技术上的解决方法。通过学习这门课,我期望能够熟练运用某种编程语言,并具初步备独立开发初级软件的能力。一周里,如果工作上没有加班,除了正常的上班时间(周一至周五0600至1800)和适当的休息时间(周五和周六的晚上),其余时间我都愿意用在这门课上。如果精力和时间够用,在不影响工作和个人健康的情况下,我愿意为了感兴趣的项目、或为了得到实战锻炼而付出更多的时间和精力。

二、理论学习

(一)完成内容

详见工作记录表

(二)《人月神话》读后感(前三章)

       ”焦油坑”:编写出真正有用的产品,是大多数软件开发的目标,但是编程所付出的成本和心血却出奇的高。编程可以带来创造新事物的快乐,也会被随时出现的各种错误所折磨,甚至有时在付出大量辛苦劳动之后发现产品显得过时。

       “人月神话”:人月之所以是神话,是因为人月作为衡量一项工作的规模是危险的和带有欺骗性的。增加人员未必会减少开发时间,人员的加入会增加更多的沟通工作量。沟通包括培训和相互交流,恶劣情况下,增加的沟通负担会超过任务分解产生的作用。假设所有的编程人员都是乐观主义者,那么缺乏合理的进度安排是是项目滞后的主要原因。

       “外科手术团队”:编程人员的水平相差很大,人员增加沟通又会增加工作量,出于效率和概念的完整性考虑,最好有小而精干的队伍设计和开发。但是对于大型系统团队,“外科医生-副手”团队架构从效率、概念的完整性和开发周期而言,才是可取的。

三、实践学习

(一)完成内容

详见工作记录表

(二)第1章作业题

参考博文链接:https://blog.csdn.net/weixin_43796223/article/details/85112041

#Calculator of Python
def calculator():
    formula00 = input('请输入算式:')
    formula01 = ''

    for i in formula00:
        if i.isspace():
            pass
        else:
            formula01 += i
    num01 = ''
    num_list = [] 
    symbol = [] 
    count = 0 

    for i in str(formula01):
        if count > 1:
            print('输入有误,请重新输入!')
            break
        elif i.isdigit() or i == '.':
            num01 += i   
            count = 0     
        elif i == '*' or i == '/' or i == '+' or i == '-':
            num_list.append(float(num01))
            num01 = ''
            symbol.append(i)
            count += 1 
        else:
            print('输入有误,请重新输入!')
            break
    num_list.append(float(num01)) 

    while symbol:
        while "*" in symbol or "/" in symbol: 
            for i in symbol:
                if i == "*":
                    j = symbol.index("*")
                    result = num_list[j] * num_list[j+1]
                    del num_list[j:j+2]
                    num_list.insert(j,result)
                    symbol.remove("*")
                    break
                if i == "/":
                    j = symbol.index("/")
                    result = num_list[j] / num_list[j + 1]
                    del num_list[j:j + 2]
                    num_list.insert(j, result)
                    symbol.remove("/")
                    break

        while "+" in symbol or "-" in symbol:
            for i in symbol:
                if i == "+":
                    j = symbol.index("+")
                    result = num_list[j] + num_list[j+1]
                    del num_list[j:j + 2]
                    num_list.insert(j, result)
                    symbol.remove("+")
                    break
                if i == "-":
                    j = symbol.index("-")
                    result = num_list[j] - num_list[j + 1]
                    del num_list[j:j + 2]
                    num_list.insert(j, result)
                    symbol.remove("-")
                    break
    return num_list
print(' '. join('%s' %id for id in calculator()))

四、工作记录

学习时段 学习内容 主要收获 存在问题

 2.18  

1900~2100

理论学习

慕课《软件工程》

(清华大学 刘强) 

1.1~1.6、第1章测验题、第1章讨论题

 对软件工程这门课有了一个初步的认识。  无

 2.19  

1900~2100

理论学习

慕课《软件工程》

(清华大学 刘强) 

2.1~2.5

对于如何编写高质量的代码有了初步的了解 。  对于具体的编程规范还比较陌生。

 2.20 

1900~2100

理论学习

慕课《软件工程》

(清华大学 刘强) 

2.6~2.7、2.7讨论、第2章测验题

对于如何编写高质量的代码的方法和过程有了初步的了解 。  测验题错误较多,基础知识掌握不牢固。

 2.22  

0830~1100

理论学习

慕课《Python语言程序设计》

(北京理工大学 嵩天) 

【第1周】Python基本语法元素

熟悉了Python的基本语法、 编写方法、开发环境等。 初学Python语言,缺乏实践。

 2.22 

1500~1700

实践学习

配置Python编程环境,

在码云建立代码仓库。

 了解了代码仓库的pull、push、fork等关键操作。

运行Pycharm时,出现“fail to load jvm dll”的错误,后通过添加环境变量java_home得以解决。 

 2.23 

0830~1030

理论学习

慕课《数据结构》

(浙江大学 陈越) 

第一讲基本概念

 熟悉了数据结构和算法的基本定义。 无 

 2.23 

1500~1630

理论学习

书籍《人月神话》 

第1章焦油坑、第2章人月神话、第3章外科手术队伍

 学到了一些软件开发的方法论和观点。  对于某些句子的理解还有些模棱两可。

2.23 

1800~2000

实践学习

慕课《软件工程》

(清华大学 刘强) 

第1章作业题

采用参考的形式, 一边看一边学,一边学一边写,提升了对Python语言的理解和编写能力。 对Python语言运用的熟悉程度还需加强。

五、评价

       本周在本课程的学习投入约为16小时,由于本人基础较差,其中大多数的时间都用于打基础、补短板。由于是本学期开的第一门课,学习状态不是很好,学习效率有待提高。计划在今后的学习中,一边学Python语言(因为慕课使用Python教学)和相关基础课程,一边推进本课程由浅入深的学习。争取在本课程学完后,编程水平有一个质的飞跃。

附录(相关截图):

 第1章学习完成截图

 

第2章学习完成截图

 

 本地代码上传截图

 

多次提交记录截图

猜你喜欢

转载自www.cnblogs.com/19luyao/p/12343642.html