In Computer Science 50 you will learn how to design & build large, reliable, maintainable, and understandable software systems. In the process you will learn to program in C with Unix development tools.
Let’s break that down. The objectives of this course are
- to be capable working at the Unix command line;
- to be capable coding in C;
- to understand pointers and memory management;
- to be capable using core Unix development tools: editors, Makefiles, gdb, and git;
- to be able to design and implement a large, complex program with a structured approach;
- to develop a strong sense of programming style and ‘clean’ coding;
- to develop good documentation practices;
- to develop good testing practices;
- to be able to work effectively in a team.
The first few weeks of this course are a crash course in Unix and C. After that, you’ll build your very own Search Engine application. Finally, you’ll join a team of other students to design, build, document, and test a large software project.