有哪些好的项目可以努力学习(或重新学习)C?理想情况下,类似于大学课堂上的作业。在线提供的实际任务/项目规范的链接是理想的。
注意:它们不必是专门来自 C 类或类似的作业。只是那种可以很好地在低级别实现的东西。同时学习其他有趣的东西是奖励!
如果这个问题已经在某个地方问过,请指出给我。我尝试的搜索词(课程,作业......!)不利于我的搜索,正如你想象的那样。
有哪些好的项目可以努力学习(或重新学习)C?理想情况下,类似于大学课堂上的作业。在线提供的实际任务/项目规范的链接是理想的。
注意:它们不必是专门来自 C 类或类似的作业。只是那种可以很好地在低级别实现的东西。同时学习其他有趣的东西是奖励!
如果这个问题已经在某个地方问过,请指出给我。我尝试的搜索词(课程,作业......!)不利于我的搜索,正如你想象的那样。
我建议实现最常用的数据结构和算法,如链表、树、排序、搜索等。它们既简短又富有洞察力。如果您了解基础知识,请选择高级数据结构和算法。
大型程序的一些想法。你说的类似于课堂作业,所以它们很有教育意义,但不是很有用:-)
创建一个简单的shell,可以用来启动其他程序。实现管道(“|”)、后台执行(“&”)、顺序执行(“&”)、条件执行(“&&”和“||”)。您将了解操作系统环境、进程创建和进程之间的通信。
实现一些 RFC 定义的协议,例如NTP。这将学习你的网络编程,以及他们阅读和理解 RFC 的方式。
实现多线程 Web 服务器或 ftp 服务器。这将学习网络编程,处理文件和多线程。
在所有情况下,从速度和内存使用的角度考虑性能。选择最好的数据结构和算法。这就是运行 C 的重点。完成后,将您的解决方案与相同的开源变体进行比较。你会学到很多东西。此外,在 valgrind 中运行程序以检查内存错误。
如果您对数学感兴趣,请查看以下问题: http ://projecteuler.net
你知道如何编写什么类型的应用程序?一个选择可能是拿一本像 Charles Petzold 的 Programming Windows 这样的书,通读并使用示例代码。
(更新)Miro Samek 撰写了一本针对嵌入式开发的书,“C/C++ 中的实用 UML 状态图”。我真的很喜欢这本书的早期版本,你可能想看看。
这是我去年秋天使用的一组作业。该课程被称为“计算机体系结构”,但实际上是一门机器级编程课程。我们为将来更改了标题。该课程是所需顺序中的第三门课程,学生们发现它具有挑战性。
Here's some assignments from a course I took last spring. They were very helpful and a good introduction to c. If you go to the schedule link at the top of that page, it will have all the class notes, which included a lot of code examples.
The assignments included a String data type, Symbol Table, Heap Manager, and a Unix Shell.