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 |