CCOG for CS 133U Fall 2024
- Course Number:
- CS 133U
- Course Title:
- C Programming
- Credit Hours:
- 4
- Lecture Hours:
- 30
- Lecture/Lab Hours:
- 0
- Lab Hours:
- 30
Course Description
Addendum to Course Description
Students will complete several lab/programming exercises techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.
Intended Outcomes for the course
On completion of this course students should be able to:
? Follow the software development process (requirements analysis, design, implementation, and test) in the development of small programs.
? Use an understanding of cultural differences in user populations and global software design requirements in order to design effective software.
? Employ good software engineering practices such as incremental development, data integrity checking, and adherence to style guidelines.
? Construct appropriate user interfaces for simple programs, and design systems with minimal complexity and maximal functionality.
? Analyze and construct efficient and effective algorithms and translate to appropriate control structures in an implementation language.
? Effectively use software development tools including libraries, compilers, editors, linkers and debuggers when writing software programs.
Outcome Assessment Strategies
Outcome Assessment Strategies
Programming Labs
Students will complete software project(s) comprised of designs, implementations, and test plans.
- Designs will demonstrate the use of structured and modular design principles.
- The implementations will demonstrate the use of a variety of basic components including alternation and repetition; modular programming; primitive and structured data types; interactive and file-based I/O.
- Test plans will include test cases demonstrating both black and glass box testing strategies.
- Project work will involve peer review.
Examinations
Students will demonstrate competency on exam(s) which are constructed to demonstrate:
- Written technical communication and effective use of terminology
- Facility with programming language syntax and semantics
- Ability to read and understand specifications, designs and programs
- Application of course concepts
- Individual capability in design, implementation and testing of small program components
Recitation and Class Discussions
Students will actively participate in classes and demonstrate an understanding of class concepts, through:
- Class discussions
- In-class presentation
Course Content (Themes, Concepts, Issues and Skills)
Course Content (Themes, Concepts, Issues and Skills)
Course Content
- Software Engineering Process
- Problem-Solving
- Software development cycle
- Requirements
- Structured program design (including use of pseudocode)
- Program testing (discussion of black and white box)
- Basic program control structures
- Sequence
- Alternation
- Repetition
- Modularization
- Data organization
- Built-in data types (int, char, float, double)
- One dimensional arrays
- Strings (as arrays of char)
- Sequential file input/output
-
Optional (time and student interest permitting)
- Structs
- Unions
- Pointers
- Modular program design
- Functions and parameters
- Data and control coupling
- Modular cohesion
- Use of Pre- and post-conditions
- Implementation
- Coding style guidelines
- Defensive programming
- Efficiency
- Errors
- Syntax errors
- Semantics errors
- Logic errors
- Debugging process
- Overview of Machine Organization
- Binary
- ASCII codes
- Built-in data types
- Integers
- Floating point numbers
- Characters
- Strings of characters
- Machine language
- Assembler language
- Compiler languages
- Reading and writing technical documentation (e.g. language reference)
-
Other Optional Topics (based on time and student interest)
- Header files
- Multi-file projects
- GUI based integrated development environment