Advanced Programming Language 2025 Autumn

Quick links: schedule, policies, Ketangpai (assignment submission)



This course is based on Harvard University's CS50 (available at https://cs50.harvard.edu/x/) and extends its content with a deeper focus on C language memory management and low-level implementation details. Students are expected to watch the CS50 video lectures and related materials in advance, and the weekly in-class sessions will further explore the underlying mechanisms, advanced examples, and additional theoretical concepts. In addition to completing the CS50 programming assignments, students will also work on supplementary programming exercises designed to strengthen their understanding of system-level programming and algorithmic problem-solving. By the end of this course, students will have gained a solid foundation in computer science fundamentals, an understanding of how computers work, and the ability to program effectively and solve problems methodically.

Instructor: QI Lin (qilin -at- ouc.edu.cn)

Lectures: Tuesday, 10:10AM-12:00AM
7508, Section 7, Teaching Building, Laoshan Campus

Labs: Tuesday, 13:30PM-15:20PM
7508, Section 7, Teaching Building, Laoshan Campus

TAs:

Instructor and TA office hours: Tuesday, 15:30PM-16:00PM

Contacting the course staff: For emergencies and special circumstances, please email the instructor. For questions about lectures and assignments, use Ketangpai. For questions about your scores (including regrade requests), email the responsible TAs.

Prerequisites: Basic operations of computer. No previous exposure to programming is required.

Grading scheme:

  • Programming assignments: 50% of the grade
    • SOLO work
    • Will be using C, Python and CS50.dev
  • Attendence: 10% of the grade
  • Final exam: 40% of the grade
Be sure to read the course policies!

Schedule (tentative)

Date Topic Assignments
September 23 Introduction: Slides Self-study: How to Take CS50
September 30 Data representation: Slides Optional study: Scratch
October 14 Data types: Slides Problem Set 1
October 21 Arrays: Slides Problem Set 2
October 28 Arrays cont.  
November 4 Arrays cont.  
November 11 Pointers: Slides  
November 18 Pointers cont.  
November 25 Pointers cont.  
December 2 Memory: Slides  
December 9 Memory cont.  
December 16 Memory cont.  
December 23 Compiling: Slides  
December 30  
January 6  
January 13 Final Examination  

Website template credit: SVETLANA LAZEBNIK.