What Do CS1 Syllabi Reveal About Our Expectations of Introductory Programming Students?

University of Illinois at urbana-champaign - Intro to Computer Science

Country: USA
University: University of Illinois at urbana-champaign
Course code: CS 125
Course title: Intro to Computer Science
Date of Syllabus:
Source: Manual search
Associated Degrees: Computer Science
Prerequisits: no
Course for Majors: yes
Course stage: 1
Semester:
Programming language: Java
Language of Instruction: English
URL: https://courses.engr.illinois.edu/cs125/su2017/info1.php#syllabus
Explicit or !Explicit LOs: Explicit
Learning Outcomes:

Learn and reason about a simple machine model with a tiny CPU instruction set and addressable memory.

Create simple imperative programs in Java solving a variety of tasks on different data types e.g., text processing, simple substitution ciphers, interactive graphical programs (2D games), image processing effects using strings, 2D arrays and bit functions.

Create and use simple OO classes (e.g. student implements a list,queue,map using arrays). Advanced OO topics (inheritance, polymorphism,runtime-type checking) are briefly introduced.

Use a visual debugger with breakpoints to determine code-path of complex code under different data conditions.

Use an industry-standard fully-featured modern IDE (e.g. Eclipse).

Use an industry-standard code repository system

Write simple recursive methods (e.g. recursive search on a family tree, recursive search of a shortest path through a cyclic maze).

Find and fix common errors in small code snippets.

Use simple data structures (1D,2D-Arrays, linked lists, simple trees).

Determine the output and expected order-of-growth running time of iterative and recursive algorithms (including recursive implementations of binary search, selection sort, quicksort and merge sort).

Work with a variety of data sources and formats.

Reason about simple parallel examples, and interleaved statements operating on a shared data structure, and identify or use simple parallelism concepts (Amdahl's law, embarrassingly parallel problems, race condition analysis).

Be able to develop programs using industry-standard pair programming techniques.

Work with and manipulate image and sound data

Write simple mobile applications (Android, Swift).

Lead code reviews.

LO categories:

Writing programs

How Computers & computational systems work & history of computing

Teamwork skills & Communication

Basic OOP

Classes & objects

Polymorphism

Inheritance

Data Structures (general or implied complex like stacks, queues etc)

Arrays, Lists, dictionaries, vectors, sets

Variables, assignment, arithmetic expressions, declarations, data types

Searching algorithms

Sorting Algorithms

Testing & Debugging code

IDE use

Recursion