CS A253: Principles in System Design
| Item | Value |
|---|---|
| Eff Term | Fall 2026 |
| Curriculum Committee Approval Date | 12/02/2020 |
| Top Code | 070600 - Computer Science (Transfer) |
| Units | 4 Total Units |
| Hours | 72 Total Hours (Lecture Hours 72) |
| Total Outside of Class Hours | 144 |
| Total Student Learning Hours | 216 |
| Course Credit Status | Credit: Degree Applicable (D) |
| Material Fee | No |
| Basic Skills | Not Basic Skills (N) |
| Repeatable | No |
| Open Entry/Open Exit | No |
| Grading Policy | Standard Letter (S) |
Course Description
This lab is required by four-year institutions, coupled with CS A253, to satisfy lower-division work that prepares students for upper-division work in Computer Science. PREREQUISITE: CS A150 and CS A170. Transfer Credit: CSU; UC.
Course Level Student Learning Outcome(s)
- Solve problems using the C programming language.
- Describe the operation of a basic dynamic memory allocator and virtual memory.
- Use low-level operating system APIs such as POSIX, to interface between user programs and the operating system.
Course Objectives
- 1. Describe the operation of a basic dynamic memory allocator and virtual memory.
- 2. Program using POSIX API functions in the C programming language.
- 3. Navigate in the *nix command-line environment.
- 4. Understand the fundamentals of program execution within an operating system.
- 5. Program in a "low-level" language, such as C.
- 6. Understand the client-server networking model.
- 7. Understand the complexities in concurrent programming.
Lecture Content
A. Unix/Linux command-line environment
1. Navigating in the file system
a. Directories
i. Current working directory and root
ii. Pathnames Absolute/Relative
b. Changing Directories
c. Listing the contents of a directory
2. Files and Directories
a. Creating Files
b. Creating Directories
c. Copying Files and Directories
3. Redirection
a. Redirecting Standard Input, Output and Error
b. Pipes
c. Filters
4. Permissions
a. Read, Write and Execute (chmod)
5. Processes
a. What is a process
b. Viewing current processes
c. Pausing/Interrupting a process
6. Using the vim command-line text editor
B. C Programming Language
1. Variables and Data types
2. Operators and Expressions
3. The main function
a. Command line arguments
Method(s) of Instruction
- Lecture (02)
- DE Live Online Lecture (02S)
- DE Online Lecture (02X)
Instructional Techniques
Lecture, discussion, demonstration, live coding, in-class exercises.
Reading Assignments
Students will spend a minimum of 4 hours per week reading the textbook and/or other reading material assigned. Students will be expected to follow along with the exercises in the reading material
Writing Assignments
Students will spend a minimum of 6 hours per week writting code.
Out-of-class Assignments
Students will spend a minimun of 6 hours per week completing weekly programming assignments.
Study Non-Contact Hours Recommended
144
Methods of Student Evaluation
- Midterm Exam
- Final Exam
- Short Quizzes
- Problem Solving Exercises
Demonstration of Critical Thinking
Written examinations and laboratory exercises.
Required Writing, Problem Solving, Skills Demonstration
Successful performance of the laboratory assignments.
Eligible Disciplines
Computer science: Master's degree in computer science or computer engineering OR bachelor's degree in either of the above AND master's degree in mathematics, cybernetics, business administration, accounting or engineering OR bachelor's degree in engineering AND master's degree in cybernetics, engineering mathematics, or business administration OR bachelor's degree in mathematics AND master's degree in cybernetics, engineering mathematics, or business administration OR bachelor's degree in any of the above AND a master's degree in information science, computer information systems, or information systems OR the equivalent. Note: Courses in the use of computer programs for application to a particular discipline may be classified, for the minimum qualification purposes, under the discipline of the application. Master's degree required.
Textbooks Resources
1. Required Bryant, R.E., O'Hallaron, D.R.. Computer Systems: A Programmer's Perspective, 3rd ed. Santa Monica, CA: Pearson, 2016
