Evaluation and Class material
Evaluation
Evaluation will be done based on:
20% - Labs.25% - Quizzes including lab quizzes.
25% - Midsem exam - online.
30% - Endsem exam - online.
Semester schedule (lectures, quizzes, lab quizzes)
Month | Date |
Aug. | 18, 21, 25, 28 |
Sep. | 1, 4, 8, 12, 15, 18(Quiz), 22, 25, 29 |
Oct. | 2(H), 6, 7-12(ME), 13(H), 16, 20, 23, 27, 30(Lab Quiz) |
Nov. | 3, 6, 10, 13(Quiz), 17, 20, 24, 27(Lab Quiz) |
Dec. | 1, 7-16(EE) Endsem slot: 9/12/21, 9.00am-12.30pm |
In Class
Some books that are useful for the course.- BW Kernighan, DM Ritche, The C Programming Language (ANSI C), 2nd Ed.,Pearson, 1988.
- KN King, C Programming: A Modern Approach, 2nd Ed., WW Norton, 2008.
A book reference is given by first authors's name from the list above.
- L1: Course logistics, about course, platform
- Source:
- Logistics, about course, CS 50 IDE
- Other references and links:
- CS 50 IDE link.
- Github.
- Course website.
- Github.
- L2: Very Simple Computer (VSC)
- Source:
- Very Simple Computer
- Other references:
- Look at sections 1.1-1.4 and 2.1-2.3 Brookshear's book (there is a copy in the digital repository).
- L3: VSC contd.
- Source:
- VSC code examples
- Other references:
- Same as L2.
- L4: VSC examples, C beginnings
- Source:
- More VSC + C started
- Check out the recorded lecture on BB for VSC details.
- Other references:
- Download the VSC interpreter from BB and try running your VSC programs.
- Start reading Chps 1, 2, 3 Kernighan's book.
- Start reading Chps 1,2, 3 of King's book.
- Start reading Chps 1, 2, 3 Kernighan's book.
- L5: C - basics
- Source:
- Overview of basic C
- Code discussed in class
- Other references:
- See the reading recommendations for L4.
- L6: C - basics Overview
- L7: Operators, expressions
- Source:
- Arithmetic Operators
- Code discussed in class
- Other references:
- Kernighan secs 2.1-2.5, King chp 4.
- L8: More operators, esp. &, * ops
- Source:
- More Operators
- Code discussed in class
- Other references:
- King chp 4, sec 11.2, Kernighan 2.6-2.12, 5.1-5.3
- L9: break, continue, functions
- Source:
- break, continue functions
- Code discussed in class
- Other references:
- Kernighan secs 3.7 (also see 3.5, 3.6), 4.1, 4.2. King secs 6.4, 9.1-9.5
- L10: Switch
- Source:
- Switch statement
- Code discussed in class
- Other references:
- King sec 5.3. Kernighan sec 3.4
- L11: printf details
- Source:
- printf
- Code discussed in class
- Other references:
- Kernighan Appendix B - see library details for stdio.h, limits.h, floats.h
- King sec 22.3
- L12: scanf
- Source:
- scanf
- Code discussed in class(do what-if experiments with this code)
- Other references:
- King sec 22.3 (see details for C99 - most of these apply for gcc standard library).
- Kernighan see scanf description in Appendix B, stdio library.
- L13: Other I/O functions, strings
- Source:
- Character I/O, strings
- Code discussed in class
- Other references:
- Kernighan Appendix B stdio library.
- King chp 22.
- L14:Matrices, 2D arrays, Gauss Elimination
- Source:
- Matrices, 2D arrays, Gauss Elimination
- Code discussed in class
- Other references:
- Look at this Wikipedia entry on Gaussian elimination. The 3x3 example is from this entry.
- L15: Blocks, scope, properties of variables
- Source:
- Blocks, scope etc.
- Code discussed in class
- Other references:
- King chp 10, sec 18.2
- Kernighan secs 4.8, 4.4, 4.6, 4.3
- L16: Recursion
- Source:
- Recursion
- Code discussed in class
- Other references:
- King sec 9.6
- L17: Recursion: Quicksort, Mergesort
- Source:
- Quicksort, mergesort, basic complexity
- Code discussed in class
- Other references:
- Quicksort (Wikipedia page)
- Mergesort (Wikipedia page)
- L18: Complexity
- Source:
- Complexity
- This lecture was not recorded. The material will be reviewed in L19.
- Other references:
- L19: O() complexity, intro to pointers
- Source:
- O() complexity, pointers
- Code discussed in class
- Other references:
- Kernighan ch 5
- King chp 11
- L20: Pointers, structures
- Source:
- Pointers, structures
- Code discussed in class
- Other references:
- Kernighan chps 5, 6
- King Chps 11, 12, 16-1 to 16.3
- L21: Structures, dynamic memory, pointers
- Source:
- Structures, dynamic memory
- Code discussed in class
- Other references:
- Kernighan Chp 6, also see 8.7 and App. B-5 (stdlib)
- King Chps 16.1-16.3, 17.1-17.4
- L22: Linked structures, Stack, Queque
- Source:
- Linked structures
- Code discussed in class
- Other references:
- King 19.4
- Kernighan pp68-71 for an application of stack
- L23: Implementation of lists, Stacks, Queues
- Source:
-
- Code discussed in class
- Other references:
- See previous lecture.
- L24: Library creation, use; function pointers
- Source:
- Libraries; function pointers
- Code discussed in class
- Other references:
- King 17.7 for function pointers.
- Library creation in C
- L25: Files, I/O redirection, command line arguments
- Source:
- Files, etc.
- Code discussed in class
- Other references:
- King Chp 22.
- Kernighan Appendix B1 (on stdio.h).
- L26: Debugging - GDB
- Source:
- GDB
- Code discussed in class (code has the bug)
- Other references:
- The GDB manual
- GDB reference card
- L27: GCC and Make
- Source:
- GCC, make
- makefile discussed in class
- Other references:
- GCC documentation (use the right version for your compiler)
- GNU make