Explain memory, binary numbers, and memory addresses. [CSCI 1100] Know how to use computers (basic skills). [PREU 0000] Use API documentation to instantiate objects or call functions from external libraries. Design Java programs on an integrated development environment such as JCreator. [CSCI 1100] Explain and use the concept of arrays to store aggregate data. [CSCI 1100] Use pseudo-code to specify an algorithm [CSCI 1100] [INFX 1615] Implement a linked list data structure. [CSCI 1101] Implement the stack, queue, dequeue, and list abstract data types (ADT) using arrays and linked-lists. [CSCI 1101] Write a reasonably-complex (200-250 line) modular procedural program. [CSCI 1100]
Describe basic program design paradigms, such as pipe-filter, simulator, event driven, state machine, front-end/back-end, search, client-server, etc.Describe the life cycle of a software project.Explain the role and function of build tools.Describe the various testing methodologies and their purpose.Execute the program development cycle starting with a problem specificationSelect and justify an appropriate design paradigm given a problem specification.Use pointers in C and manage memory.Use the command line of the UNIX environment.Design a program to solve a problem of moderate complexity given a problem specification.Design regular expressions and use tools such as grep and sed to manipulate text streams.Explain the C build cycle (preprocess, compile, assemble, link).Implement an appropriate design paradigm given a problem specification.Select an appropriate testing methodology given a problem specification.Use the UNIX command-line environment to perform all parts of the software development cycle.Write short (50 line) shell scripts to solve a simple problem such as running regression tests.Use a standard build tool, such as `make', by creating makefiles, given the source dependencies of a software project.Write command pipe-lines comprising multiple tools in the UNIX environment to solve simple problems.Describe the various kinds of software errors that can occur and their causes.Implement a test suite for a given module, program, function, or library.Implement moderately complex programs in C.Implement simple data structures (linked lists, queues, stacks) in C.Explain the purpose of a revision control system.Explain the role of software testing and testing methods.Identify methodologies for dealing with various software errors.Select appropriate methodologies given a piece of software and a list of exhibited symptoms.Use a revision control system to manage a medium size software project. (10s of files, 1000s lines of code)Identify and rectify software errors within a piece of software of moderate complexity.