CSCD240 — C and Unix Programming
Program development tools of the UNIX operating system and C language programming. UNIX topics include shells, text editors, file systems, libraries and system calls. C topics include pointers, structures, arrays, and linked lists.
Learning Objectives & Matches
Navigate and use UNIX/Linux command-line tools, shells, and development environments
Write, compile, test, and debug C programs using pointers and manual memory management
Monitor program performance to ensure efficient and problem-free operations.
Direct the analysis, development, and operation of complete computer systems.
Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
Confer with clients regarding the nature of the information processing or computation needs a computer program is to address.
Train users on the use and function of computer programs.
Analyze problems to develop solutions involving computer hardware and software.
Write new functions or applications in programming languages to conduct analyses.
Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.
Use the computer in the analysis and solution of business problems, such as development of integrated production and inventory control and cost analysis systems.
Implement data structures including arrays, structures, and linked lists in C
Prepare and structure data warehouses for storing data.
Design database applications, such as interfaces, data transfer mechanisms, global temporary tables, data partitions, and function-based indexes to enable efficient access of the generic database structure.
Analyze information processing or computation needs and plan and design computer systems, using techniques such as structured analysis, data modeling, and information engineering.
Write new functions or applications in programming languages to conduct analyses.
Develop or implement data analysis algorithms.
Direct the analysis, development, and operation of complete computer systems.
Develop data models describing data elements and how they are used, following procedures and using pen, template, or computer software.
Develop data model describing data elements and their use, following procedures and using pen, template or computer software.
Develop data models for applications, metadata tables, views or related database structures.
Design and implement data repositories to integrate data.
Make system calls and use UNIX libraries for file operations and process management
Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
Use object-oriented programming languages, as well as client and server applications development processes and multimedia and Internet technology.
Implement controls to provide security for operating systems, software, and data.
Develop system interaction or sequence diagrams.
Assess the usefulness of pre-developed application packages and adapt them to a user environment.
Write and execute scripts to automate tasks, such as parsing large data files.
Communicate with system users to ensure accounts are set up properly or to diagnose and solve operational problems.
Direct the analysis, development, and operation of complete computer systems.
Develop efficient and effective system controllers.
Identify or develop reverse-engineering tools to improve system capabilities or detect vulnerabilities.
Use version control systems and development tools for collaborative software development