




Please take note of the reading assigned each week. There will be a common project goal for all teams, but students are free to develop their own ideas beyond this common goal - show your entrepreneurial side! There are no lectures in the last part of the course but the projects are run with design reviews and progress meetings where the team can brainstorm problems and come up with solutions. The last part (about 2 weeks) is devoted to the team project. The course includes six Unix shell and C programming assignments for the first part of the course these assignments are to be done individually. Thematic programming assignments: building a search engine (crawler, indexer, query engine).Software development methodology: design, implement, unit test/debug, integration, demo, maintenance.Programming tools: gcc (GNU compiler), make (maintain groups of programs), gdb (GNU debugger), git (source code management), and valgrind (profiling and memory leak checker).C: structure, arrays, pointers, dynamic memory, files.Unix: shell, commands, shell programming.So, unless it really matters, I will use the term Unix to refer to them all. All of the others, including Solaris, AIX, BSD and all the variants of Linux, are derivations of that original effort. That’s the message.Ī note about Unix/Linux: Unix came first. The second part of the course is all about the project and team work. The first part of the course serves to develop design, programming and other systems skills such as source-code management, testing, and debugging. The challenge of the course is to quickly get people up to speed so there is sufficient time to get into the details of a complex software design project. The aim of this course is to develop the necessary systems programming skills in C and Unix as a foundation to tackle the design, implementation, and integration of a large software project working in small teams. In this lecture, we discuss the aim and schedule of the course, and take a brief look at Unix, C programming, and computer architecture.
