Cleveland State University Department of Electrical and Computer Engineering

advertisement
Cleveland State University
Department of Electrical and Computer Engineering
CIS 340: System Programming
Catalog Description:
CIS 340 System Programming
Pre-requisite: CIS 265
This course is designed for CIS/ECE major students and serves as the
introduction system-level course. In this course, students will work on
Linux systems and use C/C++ programming language to develop the
system programs in Unix/Linux systems. While no C programming skill is
required, students are expected to be proficient in at least one high level
programming language, e.g., Java.
Textbook:
1. W. Richard Stevens and Stephen A. Rago, Advanced Programming in
the UNIX Environment, 3rd Edition, 2013, Addison Wesley, ISBN: 0321-63773-9
2. Online C Programming (Wikibook)
Coordinator:
Dr. Haodong Wang
Phone: 216-687-4730
Email: hwang@cis.csuohio.edu
Expected Outcomes:
At the end of this course, a successful student will be able:
1. Master in using the C programming language to create system software;
2. Master in the usage of makefiles, linking, object files, loading, symbol
resolution, debugging, and execution of system programs;
3. Master in file I/O (i.e. open, close, read, write, seek);
4. Be familiar with basic UNIX OS concepts such as: process, program,
process groups, signals, running programs, process control, address
space, user and kernel modes, and system calls.
Fulfillment of CS Program Objectives, Outcomes and Characteristics:
Objectives:
1. Graduates will apply the concepts of the discipline including analysis, design,
and implementation of information and computing systems.
2. Graduates of will be employed in the computing profession, and will be
engaged in life-long learning, understanding, and applying new ideas and
technologies as the field evolves.
3. Graduates will be informed and involved members of their communities, and
responsible engineering and computing professionals.
Outcomes:
2) An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
3) An ability to function effectively on teams to accomplish a common goal
5) An ability to translate fundamental computing concepts to a variety of
emerging technologies
7) An ability to apply design and development principles in the construction of
software systems of varying complexity.
Characteristics:
(b) An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
(c) An ability to design, implement, and evaluate a computer-based system,
process, component, or program to meet desired needs
(d) An ability to function effectively on teams to accomplish a common goal
(e) An understanding of professional, ethical, legal, security and social issues
and responsibilities
(i) An ability to use current techniques, skills, and tools necessary for
computing practice.
(k) An ability to apply design and development principles in the construction of
software systems of varying complexity.
Contribution of Course to Meeting the Professional Component:
Math & Basic Science: 1 credit;
Engineering Topics: 2 credits;
General Education: 0 credit
Prerequisites by Topic:
Data Structures and Algorithms
Topics:
Computer Usage:
1. Class introduction
2
2. Linux
2
3. C Programming Review
8
4. Debug and File I/O system calls
3
5. Linux Files, File Systems, File System I/O and Example
6
6. Processes
3
7. Programmable Shell and Shell Environment
3
8. Pipe and Redirection, Named Pipes
3
9. Terminal I/O
3
10. Socket
3
11. Signal
3
12. CVS
3
13. Test
3
Total
45
Linux
Download