
- Enseignant: ABDELOUAHAD El Hassen
Course Focus: The Language of Computer Science
Objective: To understand and master the specialized vocabulary, conceptual metaphors, documentation styles, and communication conventions used by computer scientists and software engineers.
Module 1: Core Lexicon & Terminology
· Study: The foundational vocabulary, its etymology, and precise meanings.
· Concepts:
· Basic Operations: compile, execute, parse, iterate, invoke, assign.
· Data Structures: stack, queue, tree, graph, hash. Why are they named with these metaphors?
· Paradigms: object-oriented, functional, procedural. What do these words imply about structure and philosophy?
· Common Verbs: to debug, to deploy, to refactor, to abstract away, to serialize.
· Activity: Create a glossary. Trace word origins (e.g., "bug," "daemon," "thread"). Differentiate between similar terms (e.g., parameter vs. argument, error vs. exception).
Module 2: Conceptual Metaphors & Mental Models
· Study: How abstract computing concepts are explained through physical-world analogies.
· Concepts:
· Spatial Metaphors: high-level/low-level, deep copy/shallow copy, background/foreground.
· Physical Metaphors: memory, pipe, stream, buffer, firewall, package, container.
· Biological/Organizational Metaphors: tree, inheritance, parent/child processes, port, socket.
· Activity: Analyze how these metaphors shape understanding. For example, how does thinking of a "stack" as a stack of plates clarify LIFO (Last-In, First-Out) behavior?
Module 3: Syntax & Semantics of Code Comments & Documentation
· Study: The formal and informal rules of writing about code.
· Concepts:
· Inline Comments: Explaining why, not what.
· Docstrings & API Documentation: Standard formats (Javadoc, Python docstrings). The use of imperative mood ("Returns the value") vs. descriptive.
· READMEs: Conventions for open-source projects.
· Activity: Compare documentation for different languages (Python's requests library vs. Java's Spring Framework). Rewrite poor comments into effective ones.
Module 4: Technical Writing & Communication Genres
· Study: The specific types of writing required in the field.
· Concepts:
· Specifications & RFCs: Precise, unambiguous language. Use of "shall," "must," "may."
· Error Messages: How to write user-friendly vs. developer-focused messages.
· Commit Messages: Conventional commits style (e.g., feat:, fix:, docs.
· Post-mortems & Incident Reports: A specific narrative structure (timeline, root cause, impact, remediation).
· Technical Blog Posts & Tutorials: Balancing expertise with accessibility. The use of code snippets, diagrams, and narrative.
· Activity: Write a technical specification for a simple function. Analyze famous RFCs (like RFC 791 for IP). Write a commit history for a mock feature.
Module 5: Spoken Discourse & Collaboration
· Study: How language is used in meetings, stand-ups, code reviews, and pair programming.
· Concepts:
· Code Reviews: The linguistics of giving constructive feedback ("Consider...", "What if...?", "This might be simpler if...").
· Explaining Technical Concepts: The art of the "whiteboard explanation." Using analogies effectively.
· Stand-up Updates: The three-part formula (What I did, what I'm doing, blockers).
· Asynchronous Communication (Slack, Teams): Brevity, use of code blocks, and threading.
· Activity: Role-play a code review session. Record yourself explaining a concept like "REST API" to a non-technical person.
Module 6: The Evolution of CS Language
· Study: How jargon emerges, changes, and sometimes becomes standard English.
· Concepts:
· Neologisms & Portmanteaus: blog (weblog), DevOps (Development + Operations), cryptocurrency.
· Acronyms & Initialisms: From CPU and HTTP to YAML and K8s (Kubernetes).
· Verbing of Nouns: "To Google," "to SSH into a server," "to cron a job."
· Cultural & Humorous Terms: yak shaving, heisenbug, bikeshedding.
· Activity: Research the history of a term like "cloud computing" or "agile." Follow a new term emerging on platforms like Hacker News.
- Enseignant: Salah BENAISSA
this course is divided into four chapter the first chapter covers the basics algoritmwhere wi ell have an introduv=ctio to computer science and algorithm basic
- Enseignant: ouahiba Merdji
Course Overview:
This course is divided into four chapters. The first chapter covers the basics of algorithmic, where we will have an introduction to computer science and algorithmic, basic operators, basic operations, and basic instructions. The second chapter introduces conditions. The third chapter covers loops. The final chapter discusses arrays and strings.
To begin, please access the course page by entering a password for anonymous access. We appreciate your feedback; if anything is unclear or not functioning correctly, please report it. Please use the discussion space to introduce yourself and let us know what you are working on.
The course will last approximately 3 hours per week for 14 weeks, including lectures, practical work, additional readings, and assessments. The final week of the course is dedicated to the final exam.
We will address each question; therefore, please use the discussion forums to share questions and comments.
The (TD+TP)/2 mark for the module represents 40% of the final mark, and the final exam accounts for the remaining 60%. You must obtain a score of 50% to pass the module.
To obtain the password, please contact me at the following address: benabadji.nazim@univ-mascara.dz
Course Objectives:
At the end of this course, the student will be able to:
Understand fundamental concepts of algorithmic formalism, including the structure of an algorithm, basic actions, and control structures.
Analyze and solve computational problems using efficient algorithms.
Implement various data structures.
Develop proficiency in programming.
Enhance programming skills through hands-on coding assignments.
Course Prerequisite:
Prerequisites for this course are :
Demonstrate the ability to think critically and solve problems methodically
Exhibit a strong foundation in mathematics.
Target audience: PHD students
- Enseignant: Benabadji Nazim
